class LunaPark::Validators::Dry

Attributes

params[R]

Public Class Methods

new(params) click to toggle source
# File lib/luna_park/validators/dry.rb, line 14
def initialize(params)
  @params = params
end
Also aliased as: validate

Private Class Methods

schema() click to toggle source
# File lib/luna_park/validators/dry.rb, line 45
def schema
  @_schema
end
validate(params)
Alias for: new
validation_schema(&block) click to toggle source
# File lib/luna_park/validators/dry.rb, line 51
def validation_schema(&block)
  unless defined?(::Dry::Validation)
    raise NameError, "uninitialized constant ::Dry::Validation\n" \
                     'Perhaps you forgot to add gem "dry-validation"'
  end

  unless defined?(::Dry::Validation::Contract)
    raise NameError, "uninitialized constant ::Dry::Validation::Contract\n" \
                     'which appears in version 1.0 of gem "dry-validation"'
  end

  @_schema = Class.new(::Dry::Validation::Contract, &block).new
end

Public Instance Methods

errors()
Alias for: errors_tree
errors_array() click to toggle source
# File lib/luna_park/validators/dry.rb, line 26
def errors_array
  result.errors.map { |error| { path: error.path, text: error.text, input: error.input } }
end
errors_tree() click to toggle source
# File lib/luna_park/validators/dry.rb, line 30
def errors_tree
  result.errors.to_h || {}
end
Also aliased as: errors
success?() click to toggle source
# File lib/luna_park/validators/dry.rb, line 18
def success?
  result.success?
end
valid_params() click to toggle source
# File lib/luna_park/validators/dry.rb, line 22
def valid_params
  (success? && result.to_h) || {}
end

Private Instance Methods

result() click to toggle source
# File lib/luna_park/validators/dry.rb, line 40
def result
  @result ||= self.class.schema.call(params)
end