metaprogramming/extend_sees_later_methods.rb

tests/_examples/metaprogramming/extend_sees_later_methods.rb in the metorex repository.

module Rates
  def load_rates = :first_version
  extend(self)
end

module Rates
  def load_rates = :second_version
end

module Tariffs
  def lookup = :first_version
end

module Registry
  extend(Tariffs)
end

module Tariffs
  def lookup = :second_version
end

p(Rates.load_rates)
p(Registry.lookup)

Output:

:second_version
:second_version