Method: JSON::Ext::Generator::State#method_missing

Defined in:
lib/oj/state.rb

#method_missing(m, *args, &block) ⇒ Boolean

Handles requests for Hash values. Others cause an Exception to be raised.

Parameters:

  • m (Symbol|String)

    method symbol

Returns:

  • (Boolean)

    the value of the specified instance variable.

Raises:

  • (ArgumentError)

    if an argument is given. Zero arguments expected.

  • (NoMethodError)

    if the instance variable is not defined.



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/oj/state.rb', line 114

def method_missing(m, *args, &block)
  if m.to_s.end_with?('=')
    raise ArgumentError.new("wrong number of arguments (#{args.size} for 1 with #{m}) to method #{m}") if args.nil? or 1 != args.length

    m = m.to_s[0..-2]
    m = m.to_sym
    return @attrs.store(m, args[0])
  end
  if @attrs.has_key?(m.to_sym)
    raise ArgumentError.new("wrong number of arguments (#{args.size} for 0 with #{m}) to method #{m}") unless args.nil? or args.empty?

    return @attrs[m.to_sym]
  end
  return @attrs.send(m, *args, &block)
end