simple_params 1.3.1 → 1.3.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDExOTEwZWI3ZDNmMGM0NGRhYjI3MGU1MTFmMzUyM2VhYzViM2I1OA==
4
+ Nzc0ZmQ4MWQ3NDljZjhmN2Y1OTM4Nzg3NDhlZTVhOGNhYzE4YjBlZg==
5
5
  data.tar.gz: !binary |-
6
- ZDAxMWQxYThjNTU4M2Y4NzdkZjE0MjI4OWM1ZTE5MDQyZjVlYjliMw==
6
+ MjNiNWYzOGY1NTBjODkwN2YxNTBlMDhjNmZlY2MxODFjZWUzNTAxMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTAyN2Y4YmMwNzI4YmUyOGNiZWM3NDBmYjdjYTI3Y2IzODRlNTk5ZWY5MTEy
10
- Y2ZjNzhkNzllMTlhYmM3YWQ5ZGI0Mjg5NmU5NTRiYWFhMGZmYzAxNzg0NGQx
11
- YTNkOGI2YWJmNmEzMjI4Mjk5YzRjNjVmZjJhYzhkZDY0Njk4ODY=
9
+ N2U2ZmE1OWQ4NjRlYjMwNmIyY2FiZTQwY2E5ZTZhNTA5ZTM5MzU0M2E0MmI3
10
+ OTEwNGY3OWU0YzA2ZDFhYTcxNmQ0NmNlZDdiYTc5MmE0NGE3M2Q5ZWE2OWRl
11
+ NmE5N2ViYmMwMDk4ZjhhZWRjNTdjN2U3MTE1YjMxNjlmZTI4YmI=
12
12
  data.tar.gz: !binary |-
13
- MGEwZGJjMGVjYjIyNmUyZjUxMTc5NDA0MDMwNTY4MWM4Y2ZkYjA5MmZiMTY5
14
- YjdmMDJiYmRhYmM1YjA2NDI0ODhmZTEyMDk3YmFmODgwMTQyNGYzYmZlYWNh
15
- MTBkNGJjOWY1MWNmZGZlMGFkMjBhY2E5OGVhZjRmODRhMzZiYmI=
13
+ Y2E1ZDFjNDk4ZWIwNGNjNjY5NmNlMDJlOTRlZDdhNDRhNDdlMWE5OGRmYjM2
14
+ NjM3MjY4ODlhNzhkN2I1NjFlMGY2ZmJjNGEyZTMzMmZkOWE3NmI4MWYyZDk4
15
+ YWU3NWY4MGM2OTg1MDcyMWJiNGIwZWIxZmM3NzMwNjVkNGE2ZTk=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_params (1.2.0)
4
+ simple_params (1.3.1)
5
5
  activemodel (>= 3.0, < 5.0)
6
6
  shoulda-matchers (~> 2.8)
7
7
  virtus (>= 1.0.0)
data/lib/simple_params.rb CHANGED
@@ -10,6 +10,7 @@ require 'simple_params/concerns/rails_helpers'
10
10
  require 'simple_params/concerns/strict_params'
11
11
  require 'simple_params/concerns/validations'
12
12
  require 'simple_params/params'
13
+ require 'simple_params/nil_params'
13
14
  require 'simple_params/nested_params'
14
15
  require 'simple_params/simple_params_error'
15
16
  require 'simple_params/type_mappings'
@@ -34,7 +34,7 @@ module SimpleParams
34
34
  # necessarily call valid? on every object
35
35
  nested_class.map(&:valid?).all?
36
36
  else
37
- nested_class.present? ? nested_class.valid? : true
37
+ nested_class.valid?
38
38
  end
39
39
  end
40
40
  end
@@ -36,9 +36,7 @@ module SimpleParams
36
36
  super
37
37
  @nested_classes.map do |attribute, klass|
38
38
  run_or_mapped_run(klass) do |k|
39
- if k.present?
40
- k.errors.clear
41
- end
39
+ k.errors.clear
42
40
  end
43
41
  end
44
42
  end
@@ -47,7 +45,7 @@ module SimpleParams
47
45
  super &&
48
46
  @nested_classes.all? do |attribute, klass|
49
47
  run_or_mapped_run(klass) do |k|
50
- k.nil? || k.errors.empty?
48
+ k.errors.empty?
51
49
  end
52
50
  end
53
51
  end
@@ -0,0 +1,19 @@
1
+ module SimpleParams
2
+ class NilParams < Params
3
+ def initialize(params={})
4
+ super(params)
5
+ end
6
+
7
+ def valid?
8
+ true
9
+ end
10
+
11
+ def to_hash
12
+ {}
13
+ end
14
+
15
+ def errors
16
+ Errors.new(self)
17
+ end
18
+ end
19
+ end
@@ -69,7 +69,7 @@ module SimpleParams
69
69
  else
70
70
  # This logic basically sets the nested class to an instance of itself, unless
71
71
  # it is optional.
72
- init_value = opts[:optional] ? nil : klass.new({}, self)
72
+ init_value = opts[:optional] ? NilParams.new : klass.new({}, self)
73
73
  init_value = klass.hash? ? init_value : [init_value]
74
74
  instance_variable_set("@#{name}", init_value)
75
75
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleParams
2
- VERSION = "1.3.1"
2
+ VERSION = "1.3.2"
3
3
  end
@@ -105,7 +105,7 @@ describe SimpleParams::Params do
105
105
  state: "North Carolina",
106
106
  company: nil
107
107
  },
108
- phone: nil,
108
+ phone: {},
109
109
  dogs: [
110
110
  {
111
111
  name: "Spot",
@@ -320,7 +320,7 @@ describe SimpleParams::Params do
320
320
  end
321
321
  end
322
322
 
323
- describe "#validate!" do
323
+ describe "#validate!", failing: true do
324
324
  let(:params) { AcceptanceParams.new }
325
325
 
326
326
  it "raises error with validation descriptions" do
@@ -349,7 +349,7 @@ describe SimpleParams::Params do
349
349
  }
350
350
  end
351
351
 
352
- it "is valid after multiple times", failing: true do
352
+ it "is valid after multiple times" do
353
353
  acceptance_params = AcceptanceParams.new(params)
354
354
  acceptance_params.valid?
355
355
  acceptance_params.should be_valid
@@ -385,7 +385,7 @@ describe SimpleParams::Params do
385
385
  }
386
386
  end
387
387
 
388
- it "is valid after multiple times", failing: true do
388
+ it "is valid after multiple times" do
389
389
  acceptance_params = AcceptanceParams.new(params)
390
390
  acceptance_params.valid?
391
391
  acceptance_params.should be_valid
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz
@@ -143,6 +143,7 @@ files:
143
143
  - lib/simple_params/errors.rb
144
144
  - lib/simple_params/formatter.rb
145
145
  - lib/simple_params/nested_params.rb
146
+ - lib/simple_params/nil_params.rb
146
147
  - lib/simple_params/params.rb
147
148
  - lib/simple_params/simple_params_error.rb
148
149
  - lib/simple_params/type_mappings.rb