class Wallaby::ActiveRecord::ModelServiceProvider::Validator

Validate values for record create / update

Public Class Methods

new(model_decorator) click to toggle source

@param model_decorator [Wallaby::ModelDecorator]

# File lib/adapters/wallaby/active_record/model_service_provider/validator.rb, line 9
def initialize(model_decorator)
  @model_decorator = model_decorator
end

Public Instance Methods

valid?(resource) click to toggle source

@param resource [Object] resource object @return [true] if the resource object is valid @return [false] otherwise

# File lib/adapters/wallaby/active_record/model_service_provider/validator.rb, line 16
def valid?(resource)
  resource.attributes.each do |field_name, values|
    metadata = @model_decorator.fields[field_name]
    next if valid_range_type? values, metadata

    resource.errors.add field_name, 'required for range data'
  end
  resource.errors.blank?
end

Protected Instance Methods

valid_range_type?(values, metadata) click to toggle source

@param values [Array] @return [true] if the values are valid range values @return [false] otherwise

# File lib/adapters/wallaby/active_record/model_service_provider/validator.rb, line 31
def valid_range_type?(values, metadata)
  !metadata \
    || !%w(daterange tsrange tstzrange).include?(metadata[:type]) \
    || !values.try(:any?, &:blank?)
end