method
method_missing
method_missing(mid, *args)
public
Hide source
# File lib/ostruct.rb, line 198 def method_missing(mid, *args) # :nodoc: len = args.length if mname = mid[/.*(?==\z)/] if len != 1 raise ArgumentError, "wrong number of arguments (#{len} for 1)", caller(1) end modifiable?[new_ostruct_member!(mname)] = args[0] elsif len == 0 if @table.key?(mid) new_ostruct_member!(mid) unless frozen? @table[mid] end else err = NoMethodError.new "undefined method `#{mid}' for #{self}", mid, args err.set_backtrace caller(1) raise err end end