Method: OpenStruct#method_missing

Defined in:
lib/ostruct.rb

#method_missing(mid, *args) ⇒ Object (private)

:nodoc:



274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
# File 'lib/ostruct.rb', line 274

private def method_missing(mid, *args) # :nodoc:
  len = args.length
  if mname = mid[/.*(?==\z)/m]
    if len != 1
      raise! ArgumentError, "wrong number of arguments (given #{len}, expected 1)", caller(1)
    end
    set_ostruct_member_value!(mname, args[0])
  elsif len == 0
    @table[mid]
  else
    begin
      super
    rescue NoMethodError => err
      err.backtrace.shift
      raise!
    end
  end
end