Module: Qwe::Mixins

Defined in:
lib/qwe/mixins.rb,
lib/qwe/mixins/root.rb,
lib/qwe/mixins/thing.rb

Defined Under Namespace

Modules: Process, Root, Thing

Class Method Summary collapse

Class Method Details

.mix(inc, &block) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/qwe/mixins.rb', line 4

def self.mix(inc, &block)
  inc.define_singleton_method(:included) do |mod|
    if mod.const_defined?(:"INCLUDED_#{inc.to_s.upcase.gsub(/[^A-Z]/, "")}")
    else
      mod.const_set(:"INCLUDED_#{inc.to_s.upcase.gsub(/[^A-Z]/, "")}", true)
      inc.instance_exec(mod, &block)
    end
  end
end