Method: SugarCube::Anonymous#method_missing

Defined in:
lib/sugarcube-anonymous/anonymous.rb

#method_missing(symbol, *args) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/sugarcube-anonymous/anonymous.rb', line 31

def method_missing(symbol, *args)
  if args.size == 0
    if symbol.to_s[-1] == '?'
      symbol = symbol.to_s[0...-1].to_sym
      return_bool = true
    else
      return_bool = false
    end
    key = symbol
    key = symbol.to_s unless self.include? key
    if self.include?(key)
      self[key] = self[key].to_object
      if return_bool
        return !! self[key]
      end
      return self[key]
    end
  elsif args.size == 1 && /(.*)=$/ =~ symbol.to_s
    key = $1.to_sym
    key = key.to_s unless self.include? key
    if self.include?(key)
      return self[key] = args.first.to_object
    end
  end
  return super
end