dry-validation 0.10.7 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c541af293c9c16eeda5e2b2e61b7cf197e8256f9
4
- data.tar.gz: e908b607bb27514a3468fdac766a1bb6e3fc313e
3
+ metadata.gz: af9da55418a70694a1054cc6fc125bffccf37d1a
4
+ data.tar.gz: cef2923c24927ee14feddb382fc90dd2b282a513
5
5
  SHA512:
6
- metadata.gz: 253b0c4d98f7ec104a9032956cc7a2354702cef2ad99229526cb67cdca9d593cffcce0f667ec41f5a02000295e720edd2050d86056e306b32c6142b36564d0d8
7
- data.tar.gz: ca229c8ea5abaf7a832c94103098dd32b9e091f8e67526e4b75956d8e65b34bd5e9c5cecf2a9500a7ac28e67f9ece6cb3490e7bfac46f30edc17fbd6560c5aa2
6
+ metadata.gz: 7b1355d156e1ff29e6b76a216c31c87c1c997f62b7557f4c1613b7a512b5fe15490d3d62cd26dc61e2e1aa313c26e4d1a801dc5dd16b25336aaf38e5a6bbc23e
7
+ data.tar.gz: 8a381ddab628f2c79c0d506bd41ff91a796397c33f8b1f6449db6f3cbeee997cca427b5ac09b4169540c26efc2d38a884459d7f31d522de5488aeac2e20f3d45
@@ -8,19 +8,14 @@ after_success:
8
8
  script:
9
9
  - bundle exec rake
10
10
  rvm:
11
- - 2.1
12
11
  - 2.2
13
12
  - 2.3
14
- - 2.4.0
13
+ - 2.4.1
15
14
  - jruby-9.1.5.0
16
- - rbx-3
17
15
  env:
18
16
  global:
19
17
  - COVERAGE=true
20
18
  - JRUBY_OPTS='--dev -J-Xmx1024M'
21
- matrix:
22
- allow_failures:
23
- - rvm: rbx-3
24
19
  notifications:
25
20
  email: false
26
21
  webhooks:
@@ -1,3 +1,11 @@
1
+ # v0.11.0 2017-05-30
2
+
3
+ ### Changed
4
+
5
+ * [internal] input processor compilers have been updated to work with new dry-types' AST (GustavoCaso)
6
+
7
+ [Compare v0.10.7...v0.11.0](https://github.com/dry-rb/dry-validation/compare/v0.10.7...v0.11.0)
8
+
1
9
  # v0.10.7 2017-05-15
2
10
 
3
11
  ### Fixed
@@ -0,0 +1,29 @@
1
+ # Issue Guidelines
2
+
3
+ ## Reporting bugs
4
+
5
+ If you found a bug, report an issue and describe what's the expected behavior versus what actually happens. If the bug causes a crash, attach a full backtrace. If possible, a reproduction script showing the problem is highly appreciated.
6
+
7
+ ## Reporting feature requests
8
+
9
+ Report a feature request **only after discussing it first on [discuss.dry-rb.org](https://discuss.dry-rb.org)** where it was accepted. Please provide a concise description of the feature, don't link to a discussion thread, and instead summarize what was discussed.
10
+
11
+ ## Reporting questions, support requests, ideas, concerns etc.
12
+
13
+ **PLEASE DON'T** - use [discuss.dry-rb.org](http://discuss.dry-rb.org) instead.
14
+
15
+ # Pull Request Guidelines
16
+
17
+ A Pull Request will only be accepted if it addresses a specific issue that was reported previously, or fixes typos, mistakes in documentation etc.
18
+
19
+ Other requirements:
20
+
21
+ 1) Do not open a pull request if you can't provide tests along with it. If you have problems writing tests, ask for help in the related issue.
22
+ 2) Follow the style conventions of the surrounding code. In most cases, this is standard ruby style.
23
+ 3) Add API documentation if it's a new feature
24
+ 4) Update API documentation if it changes an existing feature
25
+ 5) Bonus points for sending a PR to [github.com/dry-rb/dry-rb.org](github.com/dry-rb/dry-rb.org) which updates user documentation and guides
26
+
27
+ # Asking for help
28
+
29
+ If these guidelines aren't helpful, and you're stuck, please post a message on [discuss.dry-rb.org](https://discuss.dry-rb.org).
data/Gemfile CHANGED
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
+ gem 'dry-types', git: 'https://github.com/dry-rb/dry-types', branch: 'master'
6
+
5
7
  group :test do
6
8
  gem 'i18n', require: false
7
9
  platform :mri do
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.add_runtime_dependency 'dry-configurable', '~> 0.1', '>= 0.1.3'
20
20
  spec.add_runtime_dependency 'dry-equalizer', '~> 0.2'
21
21
  spec.add_runtime_dependency 'dry-logic', '~> 0.4', '>= 0.4.0'
22
- spec.add_runtime_dependency 'dry-types', '~> 0.9', '>= 0.9.0'
22
+ spec.add_runtime_dependency 'dry-types', '~> 0.11.0'
23
23
  spec.add_runtime_dependency 'dry-core', '~> 0.2', '>= 0.2.1'
24
24
 
25
25
  spec.add_development_dependency 'bundler'
@@ -6,7 +6,7 @@ module Dry
6
6
  class InputProcessorCompiler
7
7
  attr_reader :type_compiler
8
8
 
9
- DEFAULT_TYPE_NODE = [[:type, 'string']].freeze
9
+ DEFAULT_TYPE_NODE = [:definition, [String, {}]].freeze
10
10
 
11
11
  def initialize
12
12
  @type_compiler = Dry::Types::Compiler.new(Dry::Types)
@@ -31,21 +31,24 @@ module Dry
31
31
 
32
32
  def visit_type(type, *args)
33
33
  if type.is_a?(Types::Constructor)
34
- [:constructor, [type.primitive, type.fn]]
34
+ constructor(type)
35
35
  elsif type.respond_to?(:rule)
36
36
  visit(type.rule.to_ast, *args)
37
- else
38
- DEFAULT_TYPE_NODE.first
39
37
  end
40
38
  end
41
39
 
40
+ def constructor(type)
41
+ fn_id = type.__send__(:register_fn, type.fn)
42
+ [:constructor, [[:definition, [type.primitive, {}]], fn_id, {}]]
43
+ end
44
+
42
45
  def visit_schema(schema, *args)
43
46
  hash_node(schema.input_processor_ast(identifier))
44
47
  end
45
48
 
46
49
  def visit_or(node, *args)
47
50
  left, right = node
48
- [:sum, [visit(left, *args), visit(right, *args)]]
51
+ [:sum, [visit(left, *args), visit(right, *args), {}]]
49
52
  end
50
53
 
51
54
  def visit_and(node, first = true)
@@ -55,7 +58,7 @@ module Dry
55
58
  if name.is_a?(Array)
56
59
  type
57
60
  else
58
- [:key, [name, type]]
61
+ [:member, [name, type]]
59
62
  end
60
63
  else
61
64
  result = node.map { |n| visit(n, first) }.uniq
@@ -63,7 +66,7 @@ module Dry
63
66
  if result.size == 1
64
67
  result.first
65
68
  else
66
- (result - self.class::DEFAULT_TYPE_NODE).last
69
+ result.select { |r| r != self.class::DEFAULT_TYPE_NODE }.last
67
70
  end
68
71
  end
69
72
  end
@@ -74,9 +77,9 @@ module Dry
74
77
  key = visit(left)
75
78
 
76
79
  if key.is_a?(Symbol)
77
- [:key, [key, visit(right, false)]]
80
+ [:member, [key, visit(right, false)]]
78
81
  else
79
- [:sum, [key, visit(right, false)]]
82
+ [:sum, [key, visit(right, false), {}]]
80
83
  end
81
84
  end
82
85
 
@@ -114,12 +117,13 @@ module Dry
114
117
  def type(predicate, args)
115
118
  default = self.class::PREDICATE_MAP[:default]
116
119
 
117
- if predicate == :type?
118
- const = args[0]
119
- [:type, self.class::CONST_MAP[const] || Types.identifier(const)]
120
- else
121
- [:type, self.class::PREDICATE_MAP[predicate] || default]
122
- end
120
+ type_value = if predicate == :type?
121
+ const = args[0]
122
+ self.class::CONST_MAP[const] || Types.identifier(const)
123
+ else
124
+ self.class::PREDICATE_MAP[predicate] || default
125
+ end
126
+ Types[type_value].to_ast
123
127
  end
124
128
  end
125
129
  end
@@ -38,11 +38,11 @@ module Dry
38
38
  end
39
39
 
40
40
  def hash_node(schema)
41
- [:type, ['form.hash', [:symbolized, schema]]]
41
+ [:form_hash, [schema, {}]]
42
42
  end
43
43
 
44
44
  def array_node(members)
45
- [:type, ['form.array', members]]
45
+ [:form_array, [members, {}]]
46
46
  end
47
47
  end
48
48
  end
@@ -34,11 +34,11 @@ module Dry
34
34
  end
35
35
 
36
36
  def hash_node(schema)
37
- [:type, ['json.hash', [:symbolized, schema]]]
37
+ [:json_hash, [schema, {}]]
38
38
  end
39
39
 
40
40
  def array_node(members)
41
- [:type, ['json.array', members]]
41
+ [:json_array, [members, {}]]
42
42
  end
43
43
  end
44
44
  end
@@ -36,11 +36,11 @@ module Dry
36
36
  end
37
37
 
38
38
  def hash_node(schema)
39
- [:type, ['hash', [:weak, schema]]]
39
+ [:hash, [:weak, schema, {}]]
40
40
  end
41
41
 
42
42
  def array_node(members)
43
- [:type, ['array', members]]
43
+ [:array, [members, {}]]
44
44
  end
45
45
  end
46
46
  end
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  module Validation
3
- VERSION = '0.10.7'.freeze
3
+ VERSION = '0.11.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.7
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Holland
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-15 00:00:00.000000000 Z
12
+ date: 2017-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: concurrent-ruby
@@ -85,20 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.9'
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 0.9.0
88
+ version: 0.11.0
92
89
  type: :runtime
93
90
  prerelease: false
94
91
  version_requirements: !ruby/object:Gem::Requirement
95
92
  requirements:
96
93
  - - "~>"
97
94
  - !ruby/object:Gem::Version
98
- version: '0.9'
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: 0.9.0
95
+ version: 0.11.0
102
96
  - !ruby/object:Gem::Dependency
103
97
  name: dry-core
104
98
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +168,7 @@ files:
174
168
  - ".rspec"
175
169
  - ".travis.yml"
176
170
  - CHANGELOG.md
171
+ - CONTRIBUTING.md
177
172
  - Gemfile
178
173
  - LICENSE
179
174
  - README.md
@@ -373,7 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
373
368
  version: '0'
374
369
  requirements: []
375
370
  rubyforge_project:
376
- rubygems_version: 2.6.11
371
+ rubygems_version: 2.6.12
377
372
  signing_key:
378
373
  specification_version: 4
379
374
  summary: A simple validation library