class Baku::ComponentMask

Attributes

value[R]

Public Class Methods

from_components(components) click to toggle source
# File lib/baku/component_mask.rb, line 14
def from_components(components)
  record_components(components)

  mask_value = 0

  @@component_set.each_with_index do |component, index|
    mask_value |= (1 << index) if components.include?(component)
  end

  ComponentMask.new(mask_value)
end
new(value) click to toggle source
# File lib/baku/component_mask.rb, line 27
def initialize(value)
  @value = value
end
record_components(components) click to toggle source
# File lib/baku/component_mask.rb, line 8
def record_components(components)
  components.each do |component|
    @@component_set << component
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/baku/component_mask.rb, line 39
def ==(other)
  @value == other.value
end
add_component(component_class) click to toggle source
# File lib/baku/component_mask.rb, line 31
def add_component(component_class)

end
eql?(other) click to toggle source
# File lib/baku/component_mask.rb, line 43
def eql?(other)
  self == other
end
hash() click to toggle source
# File lib/baku/component_mask.rb, line 47
def hash
  value
end
matches?(other_mask) click to toggle source
# File lib/baku/component_mask.rb, line 35
def matches?(other_mask)
  @value & other_mask.value == @value
end