module Modularity::AsTrait

Public Class Methods

[](*args) click to toggle source
# File lib/modularity/as_trait.rb, line 30
def self.[](*args)
  blank_trait = self
  ParametrizedTrait.new(blank_trait, args)
end
included(base) click to toggle source
# File lib/modularity/as_trait.rb, line 23
def self.included(base)
  unless base.is_a?(ParametrizedTrait)
    base.class_exec(&@modularity_macro)
  end

end

Public Instance Methods

as_trait(&macro) click to toggle source
# 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