module Is::Factory

public

Public Instance Methods

make(definable, *namespace, name, **kwargs, &block) click to toggle source
public
# File lib/is/factory.rb, line 31
def make(definable, *namespace, name, **kwargs, &block)
  definable = __makes__.fetch(definable.to_sym)

  if (suffix = definable[:suffix])
    name = :"#{name}_#{suffix}"
  end

  definable[:object].define(*definable[:within], *namespace, name, **kwargs, &block)
end
makeables() click to toggle source
public
# File lib/is/factory.rb, line 49
def makeables
  @__makes__.keys
end
makes(definable, object, suffix: nil, within: nil) click to toggle source
public
# File lib/is/factory.rb, line 17
def makes(definable, object, suffix: nil, within: nil)
  unless object.ancestors.include?(Is::Definable)
    object.include(Is::Definable)
  end

  __makes__[definable.to_sym] = {
    object: object,
    suffix: suffix,
    within: Array(within)
  }
end
makes?(definable) click to toggle source
public
# File lib/is/factory.rb, line 43
def makes?(definable)
  @__makes__.include?(definable.to_sym)
end