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