simple_params 2.0.2 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9da7c3c0e1cfb3d49a5d89909ec315f935b2b62a
4
- data.tar.gz: 7862eac106b9556c7de928726a770b607df3e57a
3
+ metadata.gz: 81beac7b9d60ea3e31bcf4043568cb9700090b65
4
+ data.tar.gz: ed9d20b152f2cac724265ba086cf089ef1106ec6
5
5
  SHA512:
6
- metadata.gz: a0094bd1f1c935548e48c9c320adeee1dc80a64ed4a0c34d807f28226bf66acac63550ec377d27dfc0f567690bd7080322659dd3cd45ad437f03b78903fbe99b
7
- data.tar.gz: 561b5b358eb6bbd221cde6c26d2eb1c0b7f078f4920604573d2c0dc1c06eaf4a2013bb3107fe59dde8a5672d92adfd19e20a196cea21fef1e3305bcf439a0b92
6
+ metadata.gz: b4715f84b1ae13d318d13f165e6fd68737883bf0c16e7e6898d400726df98c40b7d30339dda1cbf19bf5429d315a28c13a34850ed7fad239f1aa5cf11b080daa
7
+ data.tar.gz: 331c41c42a4f16d0929fde4b5dd02a466b3e92134361135d5989116d225c05528660054cf4ceb1e552d9593ae4099a9b2f4a4fde60806ca6af94da9eea3d1aba
@@ -0,0 +1,30 @@
1
+ # Logfile created on 2019-07-23 01:04:55 -0400 by logger.rb/56815
2
+ I, [2019-07-23T01:04:55.252827 #83076] INFO -- : 0: rake (10.4.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/rake-10.4.2.gemspec
3
+ I, [2019-07-23T01:04:55.253099 #83076] INFO -- : 0: concurrent-ruby (1.0.5) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/concurrent-ruby-1.0.5.gemspec
4
+ I, [2019-07-23T01:04:55.253337 #83076] INFO -- : 0: i18n (0.9.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/i18n-0.9.0.gemspec
5
+ I, [2019-07-23T01:04:55.253564 #83076] INFO -- : 0: minitest (5.10.3) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/minitest-5.10.3.gemspec
6
+ I, [2019-07-23T01:04:55.253767 #83076] INFO -- : 0: thread_safe (0.3.6) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/thread_safe-0.3.6.gemspec
7
+ I, [2019-07-23T01:04:55.253995 #83076] INFO -- : 0: tzinfo (1.2.4) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/tzinfo-1.2.4.gemspec
8
+ I, [2019-07-23T01:04:55.254211 #83076] INFO -- : 0: activesupport (5.1.4) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/activesupport-5.1.4.gemspec
9
+ I, [2019-07-23T01:04:55.254435 #83076] INFO -- : 0: activemodel (5.1.4) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/activemodel-5.1.4.gemspec
10
+ I, [2019-07-23T01:04:55.254683 #83076] INFO -- : 0: bundler (1.5.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/bundler-1.5.0.gemspec
11
+ I, [2019-07-23T01:04:55.254903 #83076] INFO -- : 0: thor (0.20.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/thor-0.20.0.gemspec
12
+ I, [2019-07-23T01:04:55.255106 #83076] INFO -- : 0: appraisal (2.2.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/appraisal-2.2.0.gemspec
13
+ I, [2019-07-23T01:04:55.255294 #83076] INFO -- : 0: descendants_tracker (0.0.4) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/descendants_tracker-0.0.4.gemspec
14
+ I, [2019-07-23T01:04:55.255477 #83076] INFO -- : 0: ice_nine (0.11.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/ice_nine-0.11.2.gemspec
15
+ I, [2019-07-23T01:04:55.255661 #83076] INFO -- : 0: axiom-types (0.1.1) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/axiom-types-0.1.1.gemspec
16
+ I, [2019-07-23T01:04:55.255848 #83076] INFO -- : 0: coderay (1.1.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/coderay-1.1.0.gemspec
17
+ I, [2019-07-23T01:04:55.256053 #83076] INFO -- : 0: coercible (1.0.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/coercible-1.0.0.gemspec
18
+ I, [2019-07-23T01:04:55.256260 #83076] INFO -- : 0: diff-lcs (1.2.5) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/diff-lcs-1.2.5.gemspec
19
+ I, [2019-07-23T01:04:55.256437 #83076] INFO -- : 0: equalizer (0.0.11) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/equalizer-0.0.11.gemspec
20
+ I, [2019-07-23T01:04:55.256639 #83076] INFO -- : 0: method_source (0.8.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/method_source-0.8.2.gemspec
21
+ I, [2019-07-23T01:04:55.256841 #83076] INFO -- : 0: slop (3.6.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/slop-3.6.0.gemspec
22
+ I, [2019-07-23T01:04:55.257038 #83076] INFO -- : 0: pry (0.10.1) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/pry-0.10.1.gemspec
23
+ I, [2019-07-23T01:04:55.257239 #83076] INFO -- : 0: rspec-core (2.99.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/rspec-core-2.99.2.gemspec
24
+ I, [2019-07-23T01:04:55.257439 #83076] INFO -- : 0: rspec-expectations (2.99.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/rspec-expectations-2.99.2.gemspec
25
+ I, [2019-07-23T01:04:55.257631 #83076] INFO -- : 0: rspec-mocks (2.99.3) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/rspec-mocks-2.99.3.gemspec
26
+ I, [2019-07-23T01:04:55.257828 #83076] INFO -- : 0: rspec (2.99.0) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/rspec-2.99.0.gemspec
27
+ I, [2019-07-23T01:04:55.258027 #83076] INFO -- : 0: shoulda-matchers (3.1.2) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/shoulda-matchers-3.1.2.gemspec
28
+ I, [2019-07-23T01:04:55.258225 #83076] INFO -- : 0: virtus (1.0.5) from /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/specifications/virtus-1.0.5.gemspec
29
+ E, [2019-07-23T01:04:55.378885 #83076] ERROR -- : NoMethodError: undefined method `spec' for nil:NilClass
30
+ /Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/2.4.0/rubygems/installer.rb:262:in `spec' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/source/path/installer.rb:17:in `generate_bin' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/source/path.rb:176:in `generate_bin' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/source/path.rb:73:in `install' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:111:in `block in install_gem_from_spec' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/rubygems_integration.rb:150:in `with_build_args' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:110:in `install_gem_from_spec' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:295:in `block in install_sequentially' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/2.4.0/forwardable.rb:229:in `each' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/2.4.0/forwardable.rb:229:in `each' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:294:in `install_sequentially' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:97:in `run' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/installer.rb:15:in `install' \n/usr/local/Cellar/rbenv/1.1.2/rbenv.d/exec/gem-rehash/rubygems_plugin.rb:27:in `install' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/cli.rb:257:in `install' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/vendor/thor/command.rb:27:in `run' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_command' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/vendor/thor.rb:363:in `dispatch' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/vendor/thor/base.rb:438:in `start' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/cli.rb:10:in `start' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/bin/bundle:22:in `block in <top (required)>' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors' \n/Users/brycesenz/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.5.0/bin/bundle:22:in `<top (required)>' \n/Users/brycesenz/.rbenv/versions/2.4.1/bin/bundle:22:in `load' \n/Users/brycesenz/.rbenv/versions/2.4.1/bin/bundle:22:in `<main>'
data/Appraisals CHANGED
@@ -11,4 +11,14 @@ end
11
11
  appraise 'activemodel-5' do
12
12
  gem 'activemodel', '>= 5.0'
13
13
  gem 'shoulda-matchers', '>= 3.0'
14
- end
14
+ end
15
+
16
+ appraise 'activemodel-5_1' do
17
+ gem 'activemodel', '>= 5.1'
18
+ gem 'shoulda-matchers', '>= 3.0'
19
+ end
20
+
21
+ appraise 'activemodel-5_2' do
22
+ gem 'activemodel', '>= 5.2'
23
+ gem 'shoulda-matchers', '>= 3.0'
24
+ end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_params (2.0.1)
4
+ simple_params (2.0.2)
5
5
  activemodel (>= 3.0, <= 6.0)
6
6
  shoulda-matchers (>= 2.8)
7
7
  virtus (>= 1.0.0)
@@ -73,6 +73,3 @@ DEPENDENCIES
73
73
  rake (~> 10.1)
74
74
  rspec (~> 2.6)
75
75
  simple_params!
76
-
77
- BUNDLED WITH
78
- 1.15.4
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- simple_params (2.0.0)
4
+ simple_params (2.0.2)
5
5
  activemodel (>= 3.0, <= 6.0)
6
6
  shoulda-matchers (>= 2.8)
7
7
  virtus (>= 1.0.0)
@@ -75,6 +75,3 @@ DEPENDENCIES
75
75
  rspec (~> 2.6)
76
76
  shoulda-matchers (>= 3.0)
77
77
  simple_params!
78
-
79
- BUNDLED WITH
80
- 1.15.4
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activemodel", ">= 5.1"
6
+ gem "shoulda-matchers", ">= 3.0"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,75 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ simple_params (2.0.2)
5
+ activemodel (>= 3.0, <= 6.0)
6
+ shoulda-matchers (>= 2.8)
7
+ virtus (>= 1.0.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (5.2.3)
13
+ activesupport (= 5.2.3)
14
+ activesupport (5.2.3)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 0.7, < 2)
17
+ minitest (~> 5.1)
18
+ tzinfo (~> 1.1)
19
+ appraisal (2.2.0)
20
+ bundler
21
+ rake
22
+ thor (>= 0.14.0)
23
+ axiom-types (0.1.1)
24
+ descendants_tracker (~> 0.0.4)
25
+ ice_nine (~> 0.11.0)
26
+ thread_safe (~> 0.3, >= 0.3.1)
27
+ coderay (1.1.2)
28
+ coercible (1.0.0)
29
+ descendants_tracker (~> 0.0.1)
30
+ concurrent-ruby (1.1.4)
31
+ descendants_tracker (0.0.4)
32
+ thread_safe (~> 0.3, >= 0.3.1)
33
+ diff-lcs (1.3)
34
+ equalizer (0.0.11)
35
+ i18n (1.0.1)
36
+ concurrent-ruby (~> 1.0)
37
+ ice_nine (0.11.2)
38
+ method_source (0.9.2)
39
+ minitest (5.11.3)
40
+ pry (0.12.0)
41
+ coderay (~> 1.1.0)
42
+ method_source (~> 0.9.0)
43
+ rake (10.4.2)
44
+ rspec (2.99.0)
45
+ rspec-core (~> 2.99.0)
46
+ rspec-expectations (~> 2.99.0)
47
+ rspec-mocks (~> 2.99.0)
48
+ rspec-core (2.99.2)
49
+ rspec-expectations (2.99.2)
50
+ diff-lcs (>= 1.1.3, < 2.0)
51
+ rspec-mocks (2.99.3)
52
+ shoulda-matchers (3.1.2)
53
+ activesupport (>= 4.0.0)
54
+ thor (0.20.3)
55
+ thread_safe (0.3.6)
56
+ tzinfo (1.2.5)
57
+ thread_safe (~> 0.1)
58
+ virtus (1.0.5)
59
+ axiom-types (~> 0.1)
60
+ coercible (~> 1.0)
61
+ descendants_tracker (~> 0.0, >= 0.0.3)
62
+ equalizer (~> 0.0, >= 0.0.9)
63
+
64
+ PLATFORMS
65
+ ruby
66
+
67
+ DEPENDENCIES
68
+ activemodel (>= 5.1)
69
+ appraisal
70
+ bundler (~> 1.5)
71
+ pry
72
+ rake (~> 10.1)
73
+ rspec (~> 2.6)
74
+ shoulda-matchers (>= 3.0)
75
+ simple_params!
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activemodel", ">= 5.2"
6
+ gem "shoulda-matchers", ">= 3.0"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,75 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ simple_params (2.0.2)
5
+ activemodel (>= 3.0, <= 6.0)
6
+ shoulda-matchers (>= 2.8)
7
+ virtus (>= 1.0.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (5.2.3)
13
+ activesupport (= 5.2.3)
14
+ activesupport (5.2.3)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 0.7, < 2)
17
+ minitest (~> 5.1)
18
+ tzinfo (~> 1.1)
19
+ appraisal (2.2.0)
20
+ bundler
21
+ rake
22
+ thor (>= 0.14.0)
23
+ axiom-types (0.1.1)
24
+ descendants_tracker (~> 0.0.4)
25
+ ice_nine (~> 0.11.0)
26
+ thread_safe (~> 0.3, >= 0.3.1)
27
+ coderay (1.1.2)
28
+ coercible (1.0.0)
29
+ descendants_tracker (~> 0.0.1)
30
+ concurrent-ruby (1.1.4)
31
+ descendants_tracker (0.0.4)
32
+ thread_safe (~> 0.3, >= 0.3.1)
33
+ diff-lcs (1.3)
34
+ equalizer (0.0.11)
35
+ i18n (1.0.1)
36
+ concurrent-ruby (~> 1.0)
37
+ ice_nine (0.11.2)
38
+ method_source (0.9.2)
39
+ minitest (5.11.3)
40
+ pry (0.12.0)
41
+ coderay (~> 1.1.0)
42
+ method_source (~> 0.9.0)
43
+ rake (10.4.2)
44
+ rspec (2.99.0)
45
+ rspec-core (~> 2.99.0)
46
+ rspec-expectations (~> 2.99.0)
47
+ rspec-mocks (~> 2.99.0)
48
+ rspec-core (2.99.2)
49
+ rspec-expectations (2.99.2)
50
+ diff-lcs (>= 1.1.3, < 2.0)
51
+ rspec-mocks (2.99.3)
52
+ shoulda-matchers (3.1.2)
53
+ activesupport (>= 4.0.0)
54
+ thor (0.20.3)
55
+ thread_safe (0.3.6)
56
+ tzinfo (1.2.5)
57
+ thread_safe (~> 0.1)
58
+ virtus (1.0.5)
59
+ axiom-types (~> 0.1)
60
+ coercible (~> 1.0)
61
+ descendants_tracker (~> 0.0, >= 0.0.3)
62
+ equalizer (~> 0.0, >= 0.0.9)
63
+
64
+ PLATFORMS
65
+ ruby
66
+
67
+ DEPENDENCIES
68
+ activemodel (>= 5.2)
69
+ appraisal
70
+ bundler (~> 1.5)
71
+ pry
72
+ rake (~> 10.1)
73
+ rspec (~> 2.6)
74
+ shoulda-matchers (>= 3.0)
75
+ simple_params!
@@ -43,7 +43,7 @@ module SimpleParams
43
43
  super &&
44
44
  nested_instances.all? { |i| i.errors.empty? }
45
45
  end
46
- alias_method :blank?, :empty?
46
+ alias_method :blank?, :empty?
47
47
 
48
48
  def include?(attribute)
49
49
  if nested_attribute?(attribute)
@@ -52,7 +52,7 @@ module SimpleParams
52
52
  messages[attribute].present?
53
53
  end
54
54
  end
55
- alias_method :has_key?, :include?
55
+ alias_method :has_key?, :include?
56
56
  alias_method :key?, :include?
57
57
 
58
58
  def values
@@ -62,7 +62,7 @@ module SimpleParams
62
62
 
63
63
  def full_messages
64
64
  parent_messages = map { |attribute, message| full_message(attribute, message) }
65
- nested_messages = nested_instances.map do |i|
65
+ nested_messages = nested_instances.map do |i|
66
66
  i.errors.full_messages.map { |message| "#{i.parent_attribute_name} " + message }
67
67
  end
68
68
 
@@ -77,7 +77,7 @@ module SimpleParams
77
77
  msgs = get_messages(self, full_messages)
78
78
 
79
79
  @nested_classes.map do |attribute, klass|
80
- nested_msgs = run_or_mapped_run(klass) do |k|
80
+ nested_msgs = run_or_mapped_run(klass) do |k|
81
81
  unless k.nil?
82
82
  get_messages(k.errors, full_messages)
83
83
  end
@@ -113,12 +113,13 @@ module SimpleParams
113
113
  end
114
114
 
115
115
  def get_messages(object, full_messages = false)
116
+ valid_messages = object.messages.reject { |key, val| empty_messages?(val) }
116
117
  if full_messages
117
- object.messages.each_with_object({}) do |(attribute, array), messages|
118
+ valid_messages.each_with_object({}) do |(attribute, array), messages|
118
119
  messages[attribute] = array.map { |message| object.full_message(attribute, message) }
119
120
  end
120
121
  else
121
- object.messages.dup
122
+ valid_messages
122
123
  end
123
124
  end
124
125
 
@@ -1,3 +1,3 @@
1
1
  module SimpleParams
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
data/spec/errors_spec.rb CHANGED
@@ -251,7 +251,7 @@ describe SimpleParams::Errors do
251
251
  person = Person.new
252
252
  person.errors.add(:name, "can not be blank")
253
253
  person.dog.errors.add(:breed, "can not be nil")
254
- person.errors.to_hash.should eq({
254
+ person.errors.to_hash.should eq({
255
255
  name: ["can not be blank"],
256
256
  dog: {
257
257
  breed: ["can not be nil"]
@@ -265,7 +265,7 @@ describe SimpleParams::Errors do
265
265
  person.errors.add(:name, "can not be blank")
266
266
  person.dog.errors.add(:base, :invalid)
267
267
  person.dog.errors.add(:breed, "can not be nil")
268
- person.errors.to_hash.should eq({
268
+ person.errors.to_hash.should eq({
269
269
  base: ["is invalid"],
270
270
  name: ["can not be blank"],
271
271
  dog: {
@@ -282,7 +282,7 @@ describe SimpleParams::Errors do
282
282
  person.dog.errors.add(:base, :invalid)
283
283
  person.dog.errors.add(:breed, "can not be nil")
284
284
  person.cats.first.errors.add(:name, "can not be blank")
285
- person.errors.to_hash.should eq({
285
+ person.errors.to_hash.should eq({
286
286
  base: ["is invalid"],
287
287
  name: ["can not be blank"],
288
288
  dog: {
@@ -311,13 +311,13 @@ describe SimpleParams::Errors do
311
311
  person.errors[:name] = 'can not be nil'
312
312
  person.errors[:name].should eq(["can not be nil"])
313
313
  person.errors.as_json(full_messages: true).should eq({ name: ["name can not be nil"] })
314
- end
314
+ end
315
315
 
316
316
  it "handles nested attributes without full_messages" do
317
317
  person = Person.new
318
318
  person.errors[:name] = 'can not be nil'
319
319
  person.dog.errors[:breed] = 'is invalid'
320
- person.errors.as_json.should eq({
320
+ person.errors.as_json.should eq({
321
321
  name: ["can not be nil"],
322
322
  dog: {
323
323
  breed: ["is invalid"]
@@ -329,7 +329,7 @@ describe SimpleParams::Errors do
329
329
  person = Person.new
330
330
  person.errors[:name] = 'can not be nil'
331
331
  person.dog.errors[:breed] = 'is invalid'
332
- person.errors.as_json(full_messages: true).should eq({
332
+ person.errors.as_json(full_messages: true).should eq({
333
333
  name: ["name can not be nil"],
334
334
  dog: {
335
335
  breed: ["breed is invalid"]
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  class RailsIntegrationParams < SimpleParams::Params
4
4
  with_rails_helpers
5
-
5
+
6
6
  param :name
7
7
  param :age, type: :integer, optional: true, validations: { inclusion: { in: 18..100 } }
8
8
  param :current_time, type: :datetime, optional: true
@@ -99,4 +99,30 @@ describe SimpleParams::Params do
99
99
  expect(params.current_time).to eq(nil)
100
100
  end
101
101
  end
102
+
103
+ context "with missing required params" do
104
+ let!(:params) do
105
+ RailsIntegrationParams.new(
106
+ name: "Tom",
107
+ age: 21,
108
+ )
109
+ end
110
+
111
+ specify "correct error output" do
112
+ params.valid?
113
+ expected = {
114
+ :address => {
115
+ :street => ["can't be blank"],
116
+ :city => ["is too short (minimum is 4 characters)", "can't be blank"]
117
+ },
118
+ :dogs => [
119
+ {
120
+ :name => ["can't be blank"],
121
+ :age => ["is not included in the list", "can't be blank"]
122
+ }
123
+ ]
124
+ }
125
+ expect(params.errors.to_hash).to eq(expected)
126
+ end
127
+ end
102
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-08 00:00:00.000000000 Z
11
+ date: 2019-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -135,6 +135,7 @@ executables: []
135
135
  extensions: []
136
136
  extra_rdoc_files: []
137
137
  files:
138
+ - ".bundle/install.log"
138
139
  - ".gitignore"
139
140
  - ".rspec"
140
141
  - ".ruby-gemset"
@@ -150,6 +151,10 @@ files:
150
151
  - gemfiles/activemodel_4.gemfile.lock
151
152
  - gemfiles/activemodel_5.gemfile
152
153
  - gemfiles/activemodel_5.gemfile.lock
154
+ - gemfiles/activemodel_5_1.gemfile
155
+ - gemfiles/activemodel_5_1.gemfile.lock
156
+ - gemfiles/activemodel_5_2.gemfile
157
+ - gemfiles/activemodel_5_2.gemfile.lock
153
158
  - lib/simple_params.rb
154
159
  - lib/simple_params/api_pie_doc.rb
155
160
  - lib/simple_params/api_pie_doc/attribute.rb