class Object

Public Instance Methods

method_missing(method, *_args) click to toggle source
# File lib/super_recursive_open_struct.rb, line 46
def method_missing(method, *_args)
  raise NoMethodError, "undefined method \`#{method}' for #{self.inspect}"
end
patch_object(object) click to toggle source
# File lib/super_recursive_open_struct.rb, line 38
        def patch_object(object)
  return unless object.respond_to?(:each_pair)

  object.each_pair do |key, _|
    child = object.public_send(key)

    if child.respond_to?(:each_pair)
      child.instance_eval do
        def method_missing(method, *_args)
          raise NoMethodError, "undefined method \`#{method}' for #{self.inspect}"
        end
      end

      patch_object(child)
    end
  end
end