class Datacaster::Validator
Public Class Methods
create_active_model(validations)
click to toggle source
# File lib/datacaster/validator.rb, line 7 def self.create_active_model(validations) @@validations[validations] ||= Class.new do include ActiveModel::Validations attr_accessor :value def self.model_name ActiveModel::Name.new(self, nil, "ValidatorModel") end if validations.present? validates :value, validations end end.new end
model_name()
click to toggle source
# File lib/datacaster/validator.rb, line 14 def self.model_name ActiveModel::Name.new(self, nil, "ValidatorModel") end
new(validations, name)
click to toggle source
# File lib/datacaster/validator.rb, line 24 def initialize(validations, name) @name = name @validator = self.class.create_active_model(validations) end
Public Instance Methods
call(object)
click to toggle source
Calls superclass method
Datacaster::Base#call
# File lib/datacaster/validator.rb, line 29 def call(object) intermediary_result = super(object) object = intermediary_result.value @validator.value = object @validator.valid? ? Datacaster.ValidResult(object) : Datacaster.ErrorResult(@validator.errors[:value]) end
inspect()
click to toggle source
# File lib/datacaster/validator.rb, line 37 def inspect "#<Datacaster::#{@name}Validator>" end