hanami-validations 1.0.0.beta1 → 1.0.0.beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -0
- data/LICENSE.md +1 -1
- data/README.md +3 -3
- data/lib/hanami/validations.rb +21 -10
- data/lib/hanami/validations/predicates.rb +1 -1
- data/lib/hanami/validations/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11ba5bd5d5dd82bd7d723d7bad916028703973d5
|
4
|
+
data.tar.gz: c721ce2fe3e43b0ce9871665067b1f1c8a63258f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9e0c5073c472ac6237c4a214f77164a0d717c7603c4fc545de6261b055cbf57e4c1f5bad7442920796c9e50ed955f4ff599e349fd718ee8813042256a2ef612
|
7
|
+
data.tar.gz: d27480a8a99a337a7673d303dfe70a2c36bd81555595f9938ab5360c813a1877fd5008ba6116636e226e4485c24e60758a2a4ba5ec5c7c320cd9728ff8a2a15c
|
data/CHANGELOG.md
CHANGED
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -682,11 +682,11 @@ To be used like this:
|
|
682
682
|
class SignupValidator
|
683
683
|
include Hanami::Validations
|
684
684
|
messages_path 'config/messages.yml'
|
685
|
-
|
685
|
+
|
686
686
|
predicate :email? do |current|
|
687
687
|
# ...
|
688
688
|
end
|
689
|
-
|
689
|
+
|
690
690
|
validations do
|
691
691
|
required(:email).filled(:str?, :email?)
|
692
692
|
required(:age).filled(:int?, gt?: 18)
|
@@ -798,6 +798,6 @@ Thanks to [dry-rb](http://dry-rb.org) Community for their priceless support. ❤
|
|
798
798
|
|
799
799
|
## Copyright
|
800
800
|
|
801
|
-
Copyright © 2014-
|
801
|
+
Copyright © 2014-2017 Luca Guidi – Released under MIT License
|
802
802
|
|
803
803
|
This project was formerly known as Lotus (`lotus-validations`).
|
data/lib/hanami/validations.rb
CHANGED
@@ -11,6 +11,7 @@ Dry::Validation::Messages::Namespaced.configure do |config|
|
|
11
11
|
).freeze
|
12
12
|
end
|
13
13
|
|
14
|
+
# @since 0.1.0
|
14
15
|
module Hanami
|
15
16
|
# Hanami::Validations is a set of lightweight validations for Ruby objects.
|
16
17
|
#
|
@@ -39,8 +40,7 @@ module Hanami
|
|
39
40
|
# @api private
|
40
41
|
#
|
41
42
|
# @see http://www.ruby-doc.org/core/Module.html#method-i-included
|
42
|
-
# rubocop:disable Metrics/MethodLength
|
43
|
-
def self.included(base)
|
43
|
+
def self.included(base) # rubocop:disable Metrics/MethodLength
|
44
44
|
base.class_eval do
|
45
45
|
extend ClassMethods
|
46
46
|
|
@@ -55,7 +55,6 @@ module Hanami
|
|
55
55
|
self._predicates = Set.new
|
56
56
|
end
|
57
57
|
end
|
58
|
-
# rubocop:enable Metrics/MethodLength
|
59
58
|
|
60
59
|
# Validations DSL
|
61
60
|
#
|
@@ -67,7 +66,9 @@ module Hanami
|
|
67
66
|
#
|
68
67
|
# @since 0.6.0
|
69
68
|
#
|
70
|
-
# @
|
69
|
+
# @see http://hanamirb.org/guides/validations/overview/
|
70
|
+
#
|
71
|
+
# @example Basic Example
|
71
72
|
# require 'hanami/validations'
|
72
73
|
#
|
73
74
|
# class Signup
|
@@ -78,8 +79,18 @@ module Hanami
|
|
78
79
|
# end
|
79
80
|
# end
|
80
81
|
#
|
81
|
-
#
|
82
|
-
|
82
|
+
# result = Signup.new(name: "Luca").validate
|
83
|
+
#
|
84
|
+
# result.success? # => true
|
85
|
+
# result.messages # => []
|
86
|
+
# result.output # => {:name=>""}
|
87
|
+
#
|
88
|
+
# result = Signup.new(name: "").validate
|
89
|
+
#
|
90
|
+
# result.success? # => false
|
91
|
+
# result.messages # => {:name=>["must be filled"]}
|
92
|
+
# result.output # => {:name=>""}
|
93
|
+
def validations(&blk) # rubocop:disable Metrics/AbcSize
|
83
94
|
schema_predicates = _predicates_module || __predicates
|
84
95
|
|
85
96
|
base = _build(predicates: schema_predicates, &_base_rules)
|
@@ -90,7 +101,6 @@ module Hanami
|
|
90
101
|
|
91
102
|
self.schema = schema.new
|
92
103
|
end
|
93
|
-
# rubocop:enable Metrics/AbcSize
|
94
104
|
|
95
105
|
# Define an inline predicate
|
96
106
|
#
|
@@ -300,15 +310,16 @@ module Hanami
|
|
300
310
|
|
301
311
|
# @since 0.6.0
|
302
312
|
# @api private
|
303
|
-
# rubocop:disable Metrics/MethodLength
|
304
|
-
def __messages
|
313
|
+
def __messages # rubocop:disable Metrics/MethodLength
|
305
314
|
result = _predicates.each_with_object({}) do |p, ret|
|
306
315
|
ret[p.name] = p.message
|
307
316
|
end
|
308
317
|
|
318
|
+
# @api private
|
309
319
|
Module.new do
|
310
320
|
@@__messages = result # rubocop:disable Style/ClassVars
|
311
321
|
|
322
|
+
# @api private
|
312
323
|
def self.extended(base)
|
313
324
|
base.instance_eval do
|
314
325
|
def __messages
|
@@ -317,6 +328,7 @@ module Hanami
|
|
317
328
|
end
|
318
329
|
end
|
319
330
|
|
331
|
+
# @api private
|
320
332
|
def messages
|
321
333
|
engine = super
|
322
334
|
|
@@ -328,7 +340,6 @@ module Hanami
|
|
328
340
|
end
|
329
341
|
end
|
330
342
|
end
|
331
|
-
# rubocop:enable Metrics/MethodLength
|
332
343
|
end
|
333
344
|
|
334
345
|
# Initialize a new instance of a validator
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-validations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-03-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hanami-utils
|