Skip to content

Reimplement proxy code of ElementProxy to be less severe #127

Description

@dtognazzini

ElementProxy undefs a bunch of standard methods on objects:

# Remove all instance methods so even things like class()
# get handled by method_missing(). <lifted from activerecord>
instance_methods.each do |m|
  unless m.to_s =~ /^(?:nil\?|send|object_id|to_a|tap)$|^__|^respond_to/
    undef_method m
  end
end

This undefing is too severe and can cause issues when methods common to most objects are not available. #123 describes an issue with RSpec expectations. Additionally, inspecting instances of ElementProxy in debuggers like Rubymine can sometimes crash the debugger.

Reimplement the proxy code in ElementProxy to be less severe.

Some ideas:

  1. Use SimpleDelegator.
  2. Don't undef any methods.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions