Class: MirroringTest

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

Overview

Call a same method for multiple receivers

Instance Method Summary collapse

Constructor Details

#initialize(*receivers) ⇒ MirroringTest

Returns a new instance of MirroringTest.



5
6
7
# File 'lib/mirroring_test.rb', line 5

def initialize(*receivers)
  @receivers = receivers
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object (private)

rubocop:disable Style/MethodMissingSuper



22
23
24
25
26
# File 'lib/mirroring_test.rb', line 22

def method_missing(method_name, *args, &block) # rubocop:disable Style/MethodMissingSuper
  @receivers.map do |r|
    r.send(method_name, *args, &block) if r.respond_to?(method_name)
  end.first
end

Instance Method Details

#classObject



9
10
11
# File 'lib/mirroring_test.rb', line 9

def class
  @receivers.first.class
end

#is_a?(mod) ⇒ Boolean Also known as: kind_of?, instance_of?

Returns:

  • (Boolean)


13
14
15
# File 'lib/mirroring_test.rb', line 13

def is_a?(mod)
  @receivers.first.is_a?(mod)
end