30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/toolshed/client.rb', line 30
def method_missing(*args)
begin
if args.first.to_s.end_with?('=')
val = args.last
my_h = self
args.each_with_index do |arg, index|
arg = arg.to_s.gsub('=', '')
next_arg_val = args[index + 1].to_s.gsub('=', '')
my_h = my_h[arg] unless next_arg_val == val.to_s
my_h[arg] = val if next_arg_val == val.to_s && !my_h[arg].nil?
my_h.merge!(arg => val) if next_arg_val == val.to_s && my_h[arg].nil?
end
@struct = to_ostruct
else
struct.send(args.first)
end
rescue NoMethodError => e
Toolshed.die(e.message)
end
end
|