class Builder

Attributes

parameters[RW]
rules[RW]
target_class[RW]

Public Class Methods

new(target_class, rules) click to toggle source
# File lib/Builder/builder.rb, line 7
def initialize(target_class, rules)
  @target_class = target_class
  @rules = rules
  @parameters = target_class.attributes
end

Public Instance Methods

build() click to toggle source
# File lib/Builder/builder.rb, line 13
def build
  validate_rules
  target_class.new(*parameter_values)
end
parameter_values() click to toggle source
# File lib/Builder/builder.rb, line 18
def parameter_values
  parameters.map do |parameter|
    send(parameter)
  end
end
validate_rules() click to toggle source
# File lib/Builder/builder.rb, line 24
def validate_rules
  rules.each do |rule|
    raise ValidationError, rule unless rule.satisfies?(self)
  end
end