oop/included_hook_parens.rb

tests/_examples/oop/included_hook_parens.rb in the metorex repository.

$order = []

module Tracker
  def self.included(base)
    $order << [:included, base.name]
  end
end

module SelfExtender
  def self.included(base)
    base.extend(self)
  end

  def helper
    :helped
  end
end

module Chained
  class << Chained
    def included(base)
      $order << :chained
      super
    end
  end
end

class Host
  include(Tracker)
end

class Helped
  include(SelfExtender)
end

class Linked
  include(Chained)
end

puts($order.inspect)
puts(Helped.helper.inspect)
puts(Module.new.private_methods.include?(:included).inspect)

Output:

[[:included, "Host"], :chained]
:helped
true