Method: EvoSynth::Profile#method_missing

Defined in:
lib/evosynth/core/profile.rb

#method_missing(method_name, *args) ⇒ Object

Used to dynamically add key/value pairs.

p = EvoSynth::Profile.new
p.foo                        #=> raises ArgumentError
p.foo = "bar"                #=> adds key 'foo' to p and sets its value to 'bar'
p.foo                        #=> 'bar'


64
65
66
67
68
69
70
71
72
# File 'lib/evosynth/core/profile.rb', line 64

def method_missing(method_name, *args)
  if method_name[-1] == "="
    args = args[0] if args.size == 1
    add_symbol(method_name[0..method_name.size-2].to_sym, args)
  else
    raise ArgumentError.new("Profile does not contain a value for '#{method_name}'.") unless @properties.has_key?(method_name)
    @properties[method_name]
  end
end