Class: Maintain::BitmaskValue
- 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 |