1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# frozen_string_literal: true
module Enumerize
class Module < ::Module
attr_reader :_class_methods
def initialize
super
@_class_methods = ::Module.new
@_dependents = []
@_dependent_evals = []
end
def included(klass)
klass.extend _class_methods
@_dependent_evals.each do |block|
klass.instance_eval(&block)
end
@_dependents << klass
end
def dependent_eval(&block)
@_dependents.each do |klass|
klass.instance_eval(&block)
end
@_dependent_evals << block
end
end
end
|