Class: Maintain::BitmaskValue

Inherits:
Value
  • Object
show all
Defined in:
lib/maintain/bitmask_value.rb

Instance Method Summary collapse

Methods inherited from Value

#<, #<=, #==, #===, #>, #>=, #class, #initialize, #inspect, #name, #nil?, #to_s, #value

Constructor Details

This class inherits a constructor from Maintain::Value

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object (protected)



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/maintain/bitmask_value.rb', line 20

def method_missing(method, *args)
  if (method.to_s =~ /^(.+)(\?|!)$/) && @state.states.has_key?($1.to_sym)
    compare = value_for($1)
    if $2 == '?'
      self.class.class_eval "        def \#{method}\n          @value & \#{compare.inspect} != 0\n        end\n      EOC\n      @value & compare != 0\n    else\n      self.class.class_eval <<-EOC\n        def \#{method}\n          @value = (@value || 0) | \#{compare.inspect}\n        end\n      EOC\n      @value = (@value || 0) | compare\n    end\n  else\n    super\n  end\nend\n"

Instance Method Details

#set_value(value) ⇒ Object



3
4
5
# File 'lib/maintain/bitmask_value.rb', line 3

def set_value(value)
  @value = bitmask_for(value)
end