Class: RedShift::World::ComponentList

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/redshift/world.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#summandsObject (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

#clearObject



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

#inspectObject



37
38
39
# File 'lib/redshift/world.rb', line 37

def inspect
  to_a.inspect # looks better in irb, but slow
end

#sizeObject



33
34
35
# File 'lib/redshift/world.rb', line 33

def size
  summands.inject(0) { |sum,enum| sum + enum.size }
end