Class: KXI::Collections::ArrayCollection
- Inherits:
-
Enumerable
- Object
- Enumerable
- KXI::Collections::ArrayCollection
- Defined in:
- lib/kxi/collections/array_collection.rb
Overview
Makes array enumerable
Defined Under Namespace
Classes: ArrayEnumerator
Instance Method Summary collapse
-
#[](index) ⇒ Object
Obtains value in array at specific index.
-
#[]=(index, value) ⇒ Object
Sets value of array at specific index.
-
#add(value) ⇒ Number
Adds value into array.
-
#initialize(array = []) ⇒ ArrayCollection
constructor
Instantiates the ArrayCollection class.
-
#remove_at(index) ⇒ Object
Removes item at specific index.
Methods inherited from Enumerable
#aggregate, #all, #any, #can_alter?, #count, #enumerator, #first, #first!, #foreach, #last, #last!, #max, #min, #of_type, #of_type!, #order_by, #order_by_descending, #select, #select_many, #skip, #take, #to_array, #where
Constructor Details
#initialize(array = []) ⇒ ArrayCollection
Instantiates the KXI::Collections::ArrayCollection class
9 10 11 12 |
# File 'lib/kxi/collections/array_collection.rb', line 9 def initialize(array = []) super() @arr = array end |
Instance Method Details
#[](index) ⇒ Object
Obtains value in array at specific index
24 25 26 27 28 29 30 |
# File 'lib/kxi/collections/array_collection.rb', line 24 def [](index) raise(KXI::Exceptions::OutOfRangeException.new(index)) if @arr.length == 0 raise(KXI::Exceptions::OutOfRangeException.new(index, 0, @arr.length - 1)) if index < 0 or index >= @arr.length lock do return @arr[index] end end |
#[]=(index, value) ⇒ Object
Sets value of array at specific index
38 39 40 41 42 43 44 45 |
# File 'lib/kxi/collections/array_collection.rb', line 38 def []=(index, value) raise(KXI::Exceptions::OutOfRangeException.new(index)) if @arr.length == 0 raise(KXI::Exceptions::OutOfRangeException.new(index, 0, @arr.length - 1)) if index < 0 or index >= @arr.length lock(true) do @arr[index] = value end return value end |
#add(value) ⇒ Number
Adds value into array
51 52 53 54 55 56 57 |
# File 'lib/kxi/collections/array_collection.rb', line 51 def add(value) idx = @arr.length lock(true) do @arr.push(value) end return idx end |
#remove_at(index) ⇒ Object
Removes item at specific index
64 65 66 67 68 69 70 71 72 |
# File 'lib/kxi/collections/array_collection.rb', line 64 def remove_at(index) raise(KXI::Exceptions::OutOfRangeException.new(index)) if @arr.length == 0 raise(KXI::Exceptions::OutOfRangeException.new(index, 0, @arr.length - 1)) if index < 0 or index >= @arr.length ret = nil lock(true) do ret = @arr.delete_at(index) end return ret end |