Explanation of the answer above:
When a method is bound, the following method is applied to the result of the first method.
Example:
class A
def method1
B.new
end
end
class B
def method2
C.new
end
end
class C
def method3
puts "It is working!!!"
end
end
The code below will work
A.new.method1.method2.method3
but it will not be
A.new.method1.method3.method2
because the instance of class B resulting from A.new.method1 does not implement method3. It is the same:
(((A.new).method1).method3).method2
, , , Test Array < , Test # < < self, @internal_array.