class RakeFactory::ParameterSet

Public Class Methods

new() click to toggle source
# File lib/rake_factory/parameter_set.rb, line 6
def initialize
  @parameter_set = {}
end

Public Instance Methods

add(name, options) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 10
def add(name, options)
  parameter = Parameter.new(name, options)
  @parameter_set[parameter.name] = parameter
  parameter
end
apply_defaults_to(instance) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 28
def apply_defaults_to(instance)
  @parameter_set.values.each do |parameter|
    parameter.apply_default_to(instance)
  end
end
each(&block) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 20
def each(&block)
  @parameter_set.values.each(&block)
end
enforce_requirements_on(instance) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 34
def enforce_requirements_on(instance)
  dissatisfied = @parameter_set.values.reject do |parameter|
    parameter.satisfied_by?(instance)
  end
  unless dissatisfied.empty?
    names = dissatisfied.map(&:name)
    names_string = names.join(',')
    pluralisation_string = names.length > 1 ? 's' : ''

    raise RequiredParameterUnset,
        "Required parameter#{pluralisation_string} #{names_string} unset."
  end
end
find(name) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 16
def find(name)
  @parameter_set[name.to_sym]
end
update_default_for(name, value) click to toggle source
# File lib/rake_factory/parameter_set.rb, line 24
def update_default_for(name, value)
  find(name).default = value
end