Method: Chef::Node::Attribute#method_missing

Defined in:
lib/chef/node/attribute.rb

#method_missing(symbol, *args) ⇒ Object



353
354
355
356
357
358
359
360
361
362
363
364
365
366
# File 'lib/chef/node/attribute.rb', line 353

def method_missing(symbol, *args)
  if args.empty?
    if key?(symbol)
      self[symbol]
    else
      raise NoMethodError, "Undefined method or attribute `#{symbol}' on `node'"
    end
  elsif symbol.to_s =~ /=$/
    key_to_set = symbol.to_s[/^(.+)=$/, 1]
    self[key_to_set] = (args.length == 1 ? args[0] : args)
  else
    raise NoMethodError, "Undefined node attribute or method `#{symbol}' on `node'"
  end
end