simple_params 0.0.3 → 0.0.4

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
- MjIwMGE2Y2M5N2NiNDIxNWUzMTBhMGE0OTc0MmRlMzEwMTkwZGM2NQ==
4
+ NTg5ZjU4NGE5ODRkMmYwMDNlY2E5OTM2ZjgwYTcyYjJlYzk2YTM1MQ==
5
5
  data.tar.gz: !binary |-
6
- OWI3OGZiMzRiZDBlNjM3OTQ1NDE3NThkYjcxNzEzOTQxZDg4NmZlZg==
6
+ OWQ1ODFkYzljM2I5ZmNlOGYwZGU5Mzc3ZTY1Y2I5ZjRiNGMxMzJjMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NzNjNTY5OWEyZTRlMDQyYTQ1OTI5NGRmODY0ODgzOTYyYThjZmJkODdhNGQ2
10
- YzlkN2M1NTMzODQzODg1Mjc1Y2UwZmY4YWQ4YzI3NjQ3NTEzMDhmNWUwZjNm
11
- NDIxM2E1MTk1ZjIxZmJiZmYyZjhjYTA5YTRmNmFhNjJkZTQxMzg=
9
+ NjhjZTMzNmUwNzc5NTg5NmNhODQxYjhlYzBiZThjNGVkMWExZDc2NzM4NDI5
10
+ NzUwNjhhMzExNGFjYzg0NjVlOWE0MzRhNDEwNzAyNzZhZGYyY2ZlMDdmMDFm
11
+ M2NjZWI2OGM0NWU0ZmYxMWVlYTMzZmM5YTcxZDJkZjQ1YzhjMWU=
12
12
  data.tar.gz: !binary |-
13
- MTc4YTZjNTM0YzZhMmQ1NTMxM2JkNmM4NjQ5NGQ2ZjQwYWFlMmIwZDVlOTI4
14
- YmY3MzZlYjM5MWZmM2I3MDlmMjVjZDRkOWYwZDYwYWFiMDg1Nzc3ZTA5MmFj
15
- ZTlhYzVmNGY0Y2M4ZWI0YzM4YzAyMjZmM2MyYTk4NDE0ZGFkMzU=
13
+ MjhkZWI0OWVkYTQyMjIwYzk0OTRhNGNjNjM5NTMwMTFmYmYzZjA1ODdlZDRj
14
+ MmU4ZGZkZTAwN2IwZTcyNTgyMDQ1YTY2ODNhMjFiYTViZWFlMDA2NjAzOWFl
15
+ YTE3OWZkZmNhMGE4ZTIyMjk0Nzk2ZjNhY2JmYmYyMzIzYTc4MWQ=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_params (0.0.2.pre9)
4
+ simple_params (0.0.3)
5
5
  activemodel (>= 3.0, < 5.0)
6
6
  shoulda-matchers (~> 2.8)
7
7
  virtus (>= 1.0.0)
data/README.md CHANGED
@@ -12,7 +12,7 @@ This class provides the following benefits for handling params:
12
12
 
13
13
  Add this line to your application's Gemfile:
14
14
 
15
- gem 'simple_params', '~> 0.0.1pre'
15
+ gem 'simple_params'
16
16
 
17
17
  And then execute:
18
18
 
@@ -0,0 +1,36 @@
1
+ module SimpleParams
2
+ module ValidationMatchers
3
+ def have_nested_parameter(attr)
4
+ NestedParameterMatcher.new(attr)
5
+ end
6
+
7
+ class NestedParameterMatcher < ValidationMatcher
8
+ attr_accessor :attribute
9
+
10
+ def initialize(attribute)
11
+ super(attribute)
12
+ @attribute = attribute
13
+ end
14
+
15
+ def matches?(subject)
16
+ super(subject)
17
+ subject.send(:nested_hashes).has_key?(@attribute)
18
+ end
19
+
20
+ def description
21
+ "Should have nested param #{@attribute}"
22
+ end
23
+
24
+ def failure_message_for_should
25
+ "Should have nested param #{@attribute}"
26
+ end
27
+
28
+ def failure_message_for_should_not
29
+ "Should not have nested param #{@attribute}"
30
+ end
31
+
32
+ private
33
+
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module SimpleParams
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/simple_params.rb CHANGED
@@ -13,5 +13,6 @@ require 'simple_params/api_pie_doc/nested_attribute'
13
13
  require 'simple_params/validation_matchers/validation_matcher'
14
14
  require 'simple_params/validation_matchers/coercion_matcher'
15
15
  require 'simple_params/validation_matchers/format_matcher'
16
+ require 'simple_params/validation_matchers/nested_parameter_matcher'
16
17
  require 'simple_params/validation_matchers/required_parameter_matcher'
17
18
  require 'simple_params/validation_matchers/optional_parameter_matcher'
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe SimpleParams::ValidationMatchers::NestedParameterMatcher do
4
+ class NestedParameterMatcherTestClass < SimpleParams::Params
5
+ param :name
6
+ param :age, optional: true, default: 37
7
+ param :title, optional: true, default: "programmer"
8
+ param :account_type, default: "checking", validations: { inclusion: { in: ["checking", "savings"] }}
9
+ param :account_status, optional: true, validations: { inclusion: { in: ["active", "inactive"] }}
10
+ nested_param :billing_address do
11
+ param :first_name
12
+ param :last_name
13
+ param :company, optional: true
14
+ param :street
15
+ param :city
16
+ param :state
17
+ param :zip_code
18
+ param :country
19
+ end
20
+ end
21
+
22
+ subject { NestedParameterMatcherTestClass.new }
23
+
24
+ it { should have_nested_parameter(:billing_address) }
25
+ it { should_not have_nested_parameter(:broken) }
26
+ end
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: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz
@@ -140,6 +140,7 @@ files:
140
140
  - lib/simple_params/type_mappings.rb
141
141
  - lib/simple_params/validation_matchers/coercion_matcher.rb
142
142
  - lib/simple_params/validation_matchers/format_matcher.rb
143
+ - lib/simple_params/validation_matchers/nested_parameter_matcher.rb
143
144
  - lib/simple_params/validation_matchers/optional_parameter_matcher.rb
144
145
  - lib/simple_params/validation_matchers/required_parameter_matcher.rb
145
146
  - lib/simple_params/validation_matchers/validation_matcher.rb
@@ -159,6 +160,7 @@ files:
159
160
  - spec/support/shared_examples/base_attribute.rb
160
161
  - spec/validation_matchers/coercion_matcher_spec.rb
161
162
  - spec/validation_matchers/format_matcher_spec.rb
163
+ - spec/validation_matchers/nested_parameter_matcher_spec.rb
162
164
  - spec/validation_matchers/optional_parameter_matcher_spec.rb
163
165
  - spec/validation_matchers/required_parameter_matcher_spec.rb
164
166
  homepage: https://github.com/brycesenz/simple_params
@@ -199,5 +201,6 @@ test_files:
199
201
  - spec/support/shared_examples/base_attribute.rb
200
202
  - spec/validation_matchers/coercion_matcher_spec.rb
201
203
  - spec/validation_matchers/format_matcher_spec.rb
204
+ - spec/validation_matchers/nested_parameter_matcher_spec.rb
202
205
  - spec/validation_matchers/optional_parameter_matcher_spec.rb
203
206
  - spec/validation_matchers/required_parameter_matcher_spec.rb