Class: PatternMatching::MatchExec::InstanceVariableAccessor

Inherits:
Object
  • Object
show all
Defined in:
lib/patternmatching/pattern.rb

Overview

Private class to access instance valiables of the receiver

Instance Method Summary collapse

Constructor Details

#initialize(receiver) ⇒ InstanceVariableAccessor

Returns a new instance of InstanceVariableAccessor.



227
228
229
# File 'lib/patternmatching/pattern.rb', line 227

def initialize(receiver)
  @receiver = receiver
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

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



231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/patternmatching/pattern.rb', line 231

def method_missing(name, *args)
  begin
    @receiver.send(name, *args)
  rescue NameError
    if name.to_s[-1,1] == "="
      field = "@" + name.to_s[0...-1]
      @receiver.instance_variable_set(field, args[0])
    else
      field = "@" + name.to_s
      @receiver.instance_variable_get(field, args[0])
    end
  end
end