Class: RedShift::World::ComponentList
- Includes:
- Enumerable
- Defined in:
- lib/redshift/world.rb
Instance Attribute Summary collapse
-
#summands ⇒ Object
readonly
Returns the value of attribute summands.
Instance Method Summary collapse
- #[](idx) ⇒ Object
- #clear ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(*summands) ⇒ ComponentList
constructor
A new instance of ComponentList.
- #inspect ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(*summands) ⇒ ComponentList
Returns a new instance of ComponentList.
24 25 26 |
# File 'lib/redshift/world.rb', line 24 def initialize(*summands) @summands = summands end |
Instance Attribute Details
#summands ⇒ Object (readonly)
Returns the value of attribute summands.
22 23 24 |
# File 'lib/redshift/world.rb', line 22 def summands @summands end |
Instance Method Details
#[](idx) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/redshift/world.rb', line 41 def [](idx) n = nil summands.each do |enum| n = enum.size return enum[idx] if idx < n idx - n end nil end |
#clear ⇒ Object
51 52 53 |
# File 'lib/redshift/world.rb', line 51 def clear summands.each {|list| list.clear} end |
#each(&block) ⇒ Object
28 29 30 31 |
# File 'lib/redshift/world.rb', line 28 def each(&block) summands.each { |enum| enum.each(&block) } self end |
#inspect ⇒ Object
37 38 39 |
# File 'lib/redshift/world.rb', line 37 def inspect to_a.inspect # looks better in irb, but slow end |
#size ⇒ Object
33 34 35 |
# File 'lib/redshift/world.rb', line 33 def size summands.inject(0) { |sum,enum| sum + enum.size } end |