Module: Hanami::V1::Validations

Defined in:
lib/hanami/v1/validations.rb,
lib/hanami/v1/validations/form.rb,
lib/hanami/v1/validations/namespace.rb,
lib/hanami/v1/validations/inline_predicate.rb

Overview

Hanami::Validations is a set of lightweight validations for Ruby objects.

Examples:

require 'hanami/validations'

class Signup
  include Hanami::Validations

  validations do
    # ...
  end
end

Since:

  • 0.1.0

Defined Under Namespace

Modules: ClassMethods, Form Classes: InlinePredicate, Namespace

Constant Summary collapse

DEFAULT_MESSAGES_ENGINE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Since:

  • 0.6.0

:yaml

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Override Ruby’s hook for modules.

Parameters:

  • base (Class)

    the target action

See Also:

Since:

  • 0.1.0



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/hanami/v1/validations.rb', line 51

def self.included(base)
  base.class_eval do
    extend ClassMethods

    include Hanami::Utils::ClassAttribute
    class_attribute :schema
    class_attribute :_messages
    class_attribute :_messages_path
    class_attribute :_namespace
    class_attribute :_predicates_module

    class_attribute :_predicates
    self._predicates = Set.new
  end
end

Instance Method Details

#initialize(input = {}) ⇒ Object

Initialize a new instance of a validator

Parameters:

  • input (#to_h) (defaults to: {})

    a set of input data

Since:

  • 0.6.0



364
365
366
# File 'lib/hanami/v1/validations.rb', line 364

def initialize(input = {})
  @input = input.to_h
end

#to_hHash

Returns a Hash with the defined attributes as symbolized keys, and their relative values.

Returns:

  • (Hash)

Since:

  • 0.1.0



383
384
385
# File 'lib/hanami/v1/validations.rb', line 383

def to_h
  validate.output
end

#validateRdy::Validations::Result

Validates the object.

Returns:

  • (Rdy::Validations::Result)

Since:

  • 0.2.4



373
374
375
# File 'lib/hanami/v1/validations.rb', line 373

def validate
  self.class.schema.call(@input)
end