simple_params 0.0.2.pre6 → 0.0.2.pre7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzkyY2E3MjQ1ODc0MzRkOGQzZWRhNWFkMDc2ODNiZmVmYmI4Y2JiNw==
4
+ NGJkNjAzNzZhMWU3YmZjOGVhMGVlNjAxM2QyZjkwZDM2NjdiMDAxZA==
5
5
  data.tar.gz: !binary |-
6
- NGI2YmM3OGU0MjBjZjgxNjkyNTUzMDNjMTFlMGJiN2Y2ODQ5NjU2MQ==
6
+ YTVlYWJiMmI1NjlmNWNlZjc4ZDdkZjIwNDY5NjFjNmNhODgxZDExZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODdkOGQ2NTI3ZTA5MTJjZTNkMDVmMDVjYTFiNDJiZGY4ODdkZDhmOTIxYWJj
10
- NjRiNjkzNjI0NjZkZDkxZmRlZDM0MGNkZTdjNWExNjI4ZmY1NGQyZjMyZDAz
11
- NzlmOWZhNzUwY2QxZWVkZjNmOGJmZmQ0MDM4MjdkYTYwYjIyMjk=
9
+ YmRiYTg4NDRiOGY0NmFjMjg1YmQ2ZTI1M2UzOTA4NDUxNmUwZjdiODNhY2Q1
10
+ OTE4Mjk4OGY4ZmVlZTQ5ZTRmZTdiOTEzN2I0YjBlMDljMzIwMGVkZGM0Nzlm
11
+ MmMxYzBkN2NmNzMwMzc3ZGE0MjdmZDFmM2JjMTFhNzUwNjNhMzc=
12
12
  data.tar.gz: !binary |-
13
- NDE5NWRlY2Y4YzljMGU3MWZhMDZkYzExMjk2M2QwMWE1ZmJmMGU2M2Q0MGFk
14
- ZGFiY2UwZmRkNzQyZDc5MjkyYTQ2ZTkyYzY1ZGM1MjgyOTgwMThmY2ZkMThj
15
- NDdiYTc5NDRmZTFmNzkyMDc4NzY2NTNkOWM3MzM3ZTg5NzBhZjY=
13
+ YmMxZGY0NjgwNDIwOWZiMTY0NGFmYTNmOWYxZTU1NjhiMGU4N2RkNWJmYWY1
14
+ YTY4YjFlMzM4ZjAyMDcxYmIyODk5MzJmMzVjMzAyNmE4OWJkOTU4Mjk3Y2Iz
15
+ MWZiMDUzYzIzMGQxMGNlZTYzM2Q0NmU5NjEwYTAwZTg1ZWNiYjU=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_params (0.0.2.pre5)
4
+ simple_params (0.0.2.pre6)
5
5
  activemodel (>= 3.0, < 5.0)
6
6
  virtus (>= 1.0.0)
7
7
 
@@ -50,7 +50,7 @@ module SimpleParams
50
50
  def type_description
51
51
  value = options[:type]
52
52
  case value
53
- when :string, :integer, :array, :hash
53
+ when :string, :integer, :array, :hash, :object
54
54
  "#{value.to_s.capitalize.constantize}"
55
55
  when 'String', 'Integer', 'Array', 'Hash'
56
56
  "#{value}"
@@ -13,7 +13,8 @@ module SimpleParams
13
13
  float: Float,
14
14
  boolean: Axiom::Types::Boolean, # See note on Virtus
15
15
  array: Array,
16
- hash: Hash
16
+ hash: Hash,
17
+ object: Object
17
18
  }
18
19
 
19
20
  attr_reader :parent
@@ -29,7 +30,8 @@ module SimpleParams
29
30
  end
30
31
 
31
32
  def raw_value
32
- @value.blank? ? default : @value
33
+ empty = @value.nil? || (@value.is_a?(String) && @value.blank?)
34
+ empty ? default : @value
33
35
  end
34
36
 
35
37
  def value
@@ -17,7 +17,8 @@ module SimpleParams
17
17
  :float,
18
18
  :boolean,
19
19
  :array,
20
- :hash
20
+ :hash,
21
+ :object
21
22
  ]
22
23
 
23
24
  class << self
@@ -1,3 +1,3 @@
1
1
  module SimpleParams
2
- VERSION = "0.0.2.pre6"
2
+ VERSION = "0.0.2.pre7"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class AcceptanceParams < SimpleParams::Params
4
+ param :reference, type: :object, optional: true
4
5
  param :name
5
6
  param :age, type: :integer, optional: true
6
7
  param :color, default: "red", validations: { inclusion: { in: ["red", "green"] }}
@@ -17,6 +18,14 @@ describe SimpleParams::Params do
17
18
  describe "accessors", accessors: true do
18
19
  let(:params) { AcceptanceParams.new }
19
20
 
21
+ it "has getter and setter methods for object param", failing: true do
22
+ params.should respond_to(:reference)
23
+ params.reference.should be_nil
24
+ new_object = OpenStruct.new(count: 4)
25
+ params.reference = new_object
26
+ params.reference.should eq(new_object)
27
+ end
28
+
20
29
  it "has getter and setter methods for required param" do
21
30
  params.should respond_to(:name)
22
31
  params.name.should be_nil
@@ -51,7 +60,7 @@ describe SimpleParams::Params do
51
60
  describe "attributes", attributes: true do
52
61
  it "returns array of attribute symbols" do
53
62
  params = AcceptanceParams.new
54
- params.attributes.should eq([:name, :age, :color, :address])
63
+ params.attributes.should eq([:reference, :name, :age, :color, :address])
55
64
  end
56
65
  end
57
66
 
@@ -148,6 +157,7 @@ describe SimpleParams::Params do
148
157
  it "generates valida api_pie documentation" do
149
158
  documentation = AcceptanceParams.api_pie_documentation
150
159
  api_docs = <<-API_PIE_DOCS
160
+ param:reference, Object, desc:''
151
161
  param :name, String, desc: '', required: true
152
162
  param :age, Integer, desc: ''
153
163
  param :color, String, desc: '', required: true
@@ -89,6 +89,16 @@ describe SimpleParams::Attribute do
89
89
  model.value.should be_falsey
90
90
  end
91
91
  end
92
+
93
+ context "with :object type" do
94
+ let(:model) { described_class.new(house, "color", { type: :object })}
95
+
96
+ it "coerces values into Object" do
97
+ other_house = House.new
98
+ model.value = other_house
99
+ model.value.should eq(other_house)
100
+ end
101
+ end
92
102
  end
93
103
 
94
104
  describe "defaults" do
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.2.pre6
4
+ version: 0.0.2.pre7
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz