# File lib/chef/node/attribute.rb, line 418 def method_missing(symbol, *args) if args.empty? if key?(symbol) self[symbol] elsif key?(symbol.to_s) self[symbol.to_s] elsif auto_vivifiy_on_read? self[symbol] = Mash.new self[symbol] else raise ArgumentError, "Attribute #{symbol} is not defined!" unless auto_vivifiy_on_read end else key_to_set = symbol.to_s[/^(.+)=$/, 1] || symbol self[key_to_set] = (args.length == 1 ? args[0] : args) end end