Module: Modularity::AsTrait

Defined in:
lib/modularity/as_trait.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](*args) ⇒ Object



30
31
32
33
# File 'lib/modularity/as_trait.rb', line 30

def self.[](*args)
  blank_trait = self
  ParametrizedTrait.new(blank_trait, args)
end

.included(base) ⇒ Object



23
24
25
26
27
28
# File 'lib/modularity/as_trait.rb', line 23

def self.included(base)
  unless base.is_a?(ParametrizedTrait)
    base.class_exec(&@modularity_macro)
  end

end

Instance Method Details

#as_trait(&macro) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/modularity/as_trait.rb', line 19

def as_trait(&macro)

  @modularity_macro = macro

  def self.included(base)
    unless base.is_a?(ParametrizedTrait)
      base.class_exec(&@modularity_macro)
    end

  end

  def self.[](*args)
    blank_trait = self
    ParametrizedTrait.new(blank_trait, args)
  end

end