class Isomer::Sources::Base
Attributes
configuration[R]
errors[R]
parameters[R]
Public Class Methods
new(parameters)
click to toggle source
# File lib/isomer/sources/base.rb, line 4 def initialize(parameters) @parameters = parameters @errors = [] end
Public Instance Methods
for(parameter)
click to toggle source
# File lib/isomer/sources/base.rb, line 29 def for(parameter) configuration.has_key?(parameter.name) ? configuration[parameter.name] : parameter.default end
load()
click to toggle source
# File lib/isomer/sources/base.rb, line 14 def load raise NotImplementedError, "You must implement 'load' in #{self.class.name}" end
load_and_validate()
click to toggle source
# File lib/isomer/sources/base.rb, line 9 def load_and_validate load validate end
validate()
click to toggle source
# File lib/isomer/sources/base.rb, line 18 def validate parameters.each do |parameter| if parameter.required? value = configuration[parameter.name] @errors << "#{parameter.name} is required" if valid(value) end end raise Isomer::RequiredParameterError, errors.join(', ') if !errors.empty? end
Private Instance Methods
valid(value)
click to toggle source
# File lib/isomer/sources/base.rb, line 35 def valid(value) if value.respond_to?(:empty) value.empty? else value.nil? end end