Class: Modifiers::Modification
- Inherits:
-
Object
- Object
- Modifiers::Modification
- Defined in:
- lib/modifiers/modification.rb
Instance Attribute Summary collapse
-
#original_visibility ⇒ Object
readonly
Returns the value of attribute original_visibility.
Instance Method Summary collapse
- #call(instance, *args, &block) ⇒ Object
-
#initialize(klass:, method:) ⇒ Modification
constructor
A new instance of Modification.
Constructor Details
#initialize(klass:, method:) ⇒ Modification
Returns a new instance of Modification.
5 6 7 8 9 |
# File 'lib/modifiers/modification.rb', line 5 def initialize(klass:, method:) @klass = klass @original_method = klass.send(:instance_method, method) @original_visibility = visibility_on(klass) end |
Instance Attribute Details
#original_visibility ⇒ Object (readonly)
Returns the value of attribute original_visibility.
11 12 13 |
# File 'lib/modifiers/modification.rb', line 11 def original_visibility @original_visibility end |
Instance Method Details
#call(instance, *args, &block) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/modifiers/modification.rb', line 13 def call(instance, *args, &block) invocation = MethodInvocation.new(method: original_method, receiver: instance, arguments: args) if block instance.instance_exec(invocation, &block) else invocation.invoke end end |