Module: TriggerSwitchD::SwitchFactory
- Defined in:
- lib/trigger_switch_d/switch.rb
Class Method Summary collapse
-
.new(values) ⇒ Object
Creates the Switch class dynamically from values, which is assumed to be an Array of attributes/keys.
Class Method Details
.new(values) ⇒ Object
Creates the Switch class dynamically from values, which is assumed to be an Array of attributes/keys
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/trigger_switch_d/switch.rb', line 22 def self.new(values) definition = " class Switch\n attr_reader \#{values.map {|name| \":\#{name}\"}.join(\",\")}\n def initialize(value)\n value.each_pair do |key,value|\n instance_variable_set(\"@\"+key.to_s,value) if respond_to?(key)\n end\n end\n \n def to_a_by_keys(keys)\n keys.map do |key|\n send(key)\n end\n end\n end\n EOS\n ::TriggerSwitchD.module_eval(definition)\n ::TriggerSwitchD.const_get(\"Switch\")\nend\n" |