simple_params 0.0.2.pre7 → 0.0.2.pre8
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 +8 -8
- data/.rspec +1 -0
- data/Gemfile.lock +1 -1
- data/lib/simple_params/api_pie_doc/attribute.rb +5 -47
- data/lib/simple_params/api_pie_doc/attribute_base.rb +34 -0
- data/lib/simple_params/api_pie_doc/nested_attribute.rb +31 -0
- data/lib/simple_params/api_pie_doc.rb +1 -1
- data/lib/simple_params/errors.rb +8 -3
- data/lib/simple_params/params.rb +3 -3
- data/lib/simple_params/version.rb +1 -1
- data/lib/simple_params.rb +2 -0
- data/spec/acceptance_spec.rb +3 -3
- data/spec/api_pie_doc/attribute_spec.rb +10 -97
- data/spec/api_pie_doc/nested_attribute_spec.rb +46 -0
- data/spec/errors_spec.rb +16 -0
- data/spec/params_spec.rb +3 -3
- data/spec/spec_helper.rb +1 -1
- data/spec/support/shared_examples/base_attribute.rb +19 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjQ1MzU1MGIxNmU3ZTA4MGZhZGY5YTg4YjZmZTY0ZjI1NmE3MTU0OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZmRiNWQ0ZjEwYjVmOWEzM2IzNGVhNTc1NTM1ODRjN2VlNDMwYTMwMA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmU0MzFlNTYwNDdkYTY2Y2YyOGFhYmJiZWJmZmQ1OTUyYWVjNDE5MjA2OWRl
|
10
|
+
ZmQzZjhlMDcxZTYxYzgxYzdkZjQwNzY0ZTJkNmIwNDE5NDdjMTRmYjYyMjMx
|
11
|
+
M2Y2NDJmZTIzYzczNDY2OTFkMzNjZjZjMmM2MzA3Yjk2MGNlOWI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTg5MWUxNGFjY2VlMWNhMWNjN2EyNjRiZWI2MTEzMDgyOGIwODNjYTViNjI5
|
14
|
+
MzRjODdhNTYwMTc4ZThiY2Q4NmY3Njk3NWI5NDYwNjg4MmZlMmUyYzI2ODAw
|
15
|
+
ZjNjZWQ4NzQwZmIyZTlmYjEyOTJiNWQ1YjRiNjEzNzU2ODI4YTI=
|
data/.rspec
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,52 +1,27 @@
|
|
1
1
|
module SimpleParams
|
2
|
-
class ApiPieDoc::Attribute
|
3
|
-
attr_accessor :attribute, :nested, :options
|
4
|
-
|
5
|
-
alias :nested? :nested
|
2
|
+
class ApiPieDoc::Attribute < ApiPieDoc::AttributeBase
|
6
3
|
|
7
4
|
def initialize(simple_params_attribute)
|
8
|
-
|
9
|
-
self.
|
10
|
-
self.options ||= nested? ? attribute.delete(:options) : attribute[1]
|
5
|
+
super
|
6
|
+
self.options ||= attribute[1]
|
11
7
|
end
|
12
8
|
|
13
9
|
def name
|
14
|
-
|
10
|
+
attribute[0].to_s
|
15
11
|
end
|
16
12
|
|
17
13
|
def to_s
|
18
14
|
return nil if do_not_document?
|
19
|
-
|
20
|
-
if nested?
|
21
|
-
nested_description
|
22
|
-
else
|
23
|
-
attribute_description
|
24
|
-
end
|
15
|
+
attribute_description
|
25
16
|
end
|
26
17
|
|
27
18
|
private
|
28
19
|
|
29
|
-
def do_not_document?
|
30
|
-
options[:document].eql?(false)
|
31
|
-
end
|
32
|
-
|
33
|
-
def nested_description
|
34
|
-
start = "param :#{name}, Hash, #{description}, #{requirement_description} do"
|
35
|
-
attribute_descriptors = []
|
36
|
-
attribute.values.flat_map(&:to_a).each do |nested_attribute|
|
37
|
-
attribute_descriptors << self.class.new(nested_attribute).to_s
|
38
|
-
end
|
39
|
-
finish = "end"
|
40
|
-
[start, attribute_descriptors, finish].flatten.join("\n")
|
41
|
-
end
|
42
|
-
|
43
20
|
def attribute_description
|
44
21
|
base = "param :#{name}"
|
45
22
|
[base, type_description, description, requirement_description].reject(&:blank?).join(", ")
|
46
23
|
end
|
47
24
|
|
48
|
-
NotValidValueError = Class.new(StandardError)
|
49
|
-
|
50
25
|
def type_description
|
51
26
|
value = options[:type]
|
52
27
|
case value
|
@@ -60,22 +35,5 @@ module SimpleParams
|
|
60
35
|
raise NotValidValueError.new("Must be one of #{SimpleParams::Params::TYPES}")
|
61
36
|
end
|
62
37
|
end
|
63
|
-
|
64
|
-
def requirement_description
|
65
|
-
value = options[:optional]
|
66
|
-
case value
|
67
|
-
when true
|
68
|
-
""
|
69
|
-
when false
|
70
|
-
"required: true"
|
71
|
-
else
|
72
|
-
"required: true"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def description
|
77
|
-
description = options[:desc] || ''
|
78
|
-
"desc: '#{description}'"
|
79
|
-
end
|
80
38
|
end
|
81
39
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module SimpleParams
|
2
|
+
class ApiPieDoc::AttributeBase
|
3
|
+
attr_accessor :attribute, :options
|
4
|
+
|
5
|
+
def initialize(simple_params_attribute)
|
6
|
+
self.attribute = simple_params_attribute
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def do_not_document?
|
12
|
+
options[:document].eql?(false)
|
13
|
+
end
|
14
|
+
|
15
|
+
NotValidValueError = Class.new(StandardError)
|
16
|
+
|
17
|
+
def requirement_description
|
18
|
+
value = options[:optional]
|
19
|
+
case value
|
20
|
+
when true
|
21
|
+
"required: false"
|
22
|
+
when false
|
23
|
+
"required: true"
|
24
|
+
else
|
25
|
+
"required: true"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def description
|
30
|
+
description = options[:desc] || ''
|
31
|
+
"desc: '#{description}'"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module SimpleParams
|
2
|
+
class ApiPieDoc::NestedAttribute < ApiPieDoc::AttributeBase
|
3
|
+
|
4
|
+
attr_accessor :attributes
|
5
|
+
|
6
|
+
def initialize(simple_params_attribute)
|
7
|
+
super
|
8
|
+
self.attributes = attribute.values[0].map { |attribute| ApiPieDoc::Attribute.new(attribute) }
|
9
|
+
self.options ||= attribute.delete(:options) || attribute[1]
|
10
|
+
end
|
11
|
+
|
12
|
+
def name
|
13
|
+
attribute.keys.first.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_s
|
17
|
+
return nil if do_not_document?
|
18
|
+
nested_description
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def nested_description
|
24
|
+
start = "param :#{name}, Hash, #{description}, #{requirement_description} do"
|
25
|
+
attribute_descriptors = []
|
26
|
+
attributes.each { |attribute| attribute_descriptors << attribute.to_s }
|
27
|
+
finish = "end"
|
28
|
+
[start, attribute_descriptors, finish].flatten.join("\n")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/simple_params/errors.rb
CHANGED
@@ -88,7 +88,7 @@ module SimpleParams
|
|
88
88
|
self.messages.dup
|
89
89
|
end
|
90
90
|
|
91
|
-
|
91
|
+
@nested_attributes.map do |attribute|
|
92
92
|
errors = nested_error_messages(attribute, full_messages)
|
93
93
|
unless errors.empty?
|
94
94
|
messages.merge!(attribute.to_sym => errors)
|
@@ -97,13 +97,18 @@ module SimpleParams
|
|
97
97
|
messages
|
98
98
|
end
|
99
99
|
|
100
|
+
def to_s(full_messages = false)
|
101
|
+
array = to_a
|
102
|
+
array.join(', ')
|
103
|
+
end
|
104
|
+
|
100
105
|
private
|
101
106
|
def nested_error_messages(attribute, full_messages = false)
|
102
107
|
if fetch_nested_attribute(attribute)
|
103
108
|
if full_messages
|
104
109
|
errors = fetch_nested_attribute(attribute).errors
|
105
|
-
errors.messages.each_with_object({}) do |(
|
106
|
-
messages[
|
110
|
+
errors.messages.each_with_object({}) do |(attr, array), messages|
|
111
|
+
messages[attr] = array.map { |message| errors.full_message(attr, message) }
|
107
112
|
end
|
108
113
|
else
|
109
114
|
fetch_nested_attribute(attribute).errors.messages.dup
|
data/lib/simple_params/params.rb
CHANGED
@@ -58,7 +58,7 @@ module SimpleParams
|
|
58
58
|
alias_method :nested, :nested_hash
|
59
59
|
|
60
60
|
def nested_hashes
|
61
|
-
@nested_hashes
|
61
|
+
@nested_hashes ||= {}
|
62
62
|
end
|
63
63
|
|
64
64
|
def defined_attributes
|
@@ -190,13 +190,13 @@ module SimpleParams
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def define_anonymous_class(hash)
|
193
|
-
klass = Class.new(Params).tap do |
|
193
|
+
klass = Class.new(Params).tap do |k|
|
194
194
|
name_function = Proc.new {
|
195
195
|
def self.model_name
|
196
196
|
ActiveModel::Name.new(self, nil, "temp")
|
197
197
|
end
|
198
198
|
}
|
199
|
-
|
199
|
+
k.class_eval(&name_function)
|
200
200
|
end
|
201
201
|
klass.allow_undefined_params
|
202
202
|
klass.new(hash)
|
data/lib/simple_params.rb
CHANGED
@@ -6,4 +6,6 @@ require 'simple_params/validations'
|
|
6
6
|
require 'simple_params/params'
|
7
7
|
require 'simple_params/simple_params_error'
|
8
8
|
require 'simple_params/api_pie_doc'
|
9
|
+
require 'simple_params/api_pie_doc/attribute_base'
|
9
10
|
require 'simple_params/api_pie_doc/attribute'
|
11
|
+
require 'simple_params/api_pie_doc/nested_attribute'
|
data/spec/acceptance_spec.rb
CHANGED
@@ -157,14 +157,14 @@ describe SimpleParams::Params do
|
|
157
157
|
it "generates valida api_pie documentation" do
|
158
158
|
documentation = AcceptanceParams.api_pie_documentation
|
159
159
|
api_docs = <<-API_PIE_DOCS
|
160
|
-
param:reference, Object, desc:''
|
160
|
+
param:reference, Object, desc:'', required: false
|
161
161
|
param :name, String, desc: '', required: true
|
162
|
-
param :age, Integer, desc: ''
|
162
|
+
param :age, Integer, desc: '', required: false
|
163
163
|
param :color, String, desc: '', required: true
|
164
164
|
param :address, Hash, desc: '', required: true do
|
165
165
|
param :street, String, desc: '', required: true
|
166
166
|
param :city, String, desc: '', required: true
|
167
|
-
param :zip_code, String, desc: ''
|
167
|
+
param :zip_code, String, desc: '', required: false
|
168
168
|
param :state, String, desc: '', required: true
|
169
169
|
end
|
170
170
|
API_PIE_DOCS
|
@@ -2,83 +2,35 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe SimpleParams::ApiPieDoc::Attribute do
|
4
4
|
let(:simple_param_attribute) { [:name, {:type=>:string}] }
|
5
|
-
let(:nested_simple_param_attribute) {
|
6
|
-
{:address=>
|
7
|
-
{:street=>{:type=>:string},
|
8
|
-
:city=>{:validations=>{:length=>{:in=>4..40}, :presence=>true}, :type=>:string},
|
9
|
-
:zip_code=>{:optional=>true, :type=>:string},
|
10
|
-
:state=>{:default=>"North Carolina", :type=>:string}
|
11
|
-
},
|
12
|
-
:options=>{desc: 'i like pie'}
|
13
|
-
}
|
14
|
-
}
|
15
5
|
let(:api_pie_doc_attribute) { described_class.new(simple_param_attribute) }
|
16
|
-
let(:nested_api_pie_doc_attribute) { described_class.new(nested_simple_param_attribute) }
|
17
6
|
|
18
|
-
|
7
|
+
it_behaves_like 'a base attribute'
|
19
8
|
|
9
|
+
describe '#initialize' do
|
20
10
|
specify 'should give instance an attribute' do
|
21
11
|
expect(api_pie_doc_attribute.attribute).to eq simple_param_attribute
|
22
12
|
end
|
23
13
|
|
24
|
-
specify 'should
|
25
|
-
expect(api_pie_doc_attribute.
|
14
|
+
specify 'should give instance some options' do
|
15
|
+
expect(api_pie_doc_attribute.options).to eq({ type: :string })
|
26
16
|
end
|
27
17
|
end
|
28
18
|
|
29
19
|
describe '#name' do
|
30
|
-
|
31
|
-
|
32
|
-
expect(nested_api_pie_doc_attribute.name).to eq 'address'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context 'when attribute is not nested' do
|
37
|
-
specify 'should set respond with the right name' do
|
38
|
-
expect(api_pie_doc_attribute.name).to eq 'name'
|
39
|
-
end
|
20
|
+
specify 'should set respond with the right name' do
|
21
|
+
expect(api_pie_doc_attribute.name).to eq 'name'
|
40
22
|
end
|
41
23
|
end
|
42
24
|
|
43
25
|
describe '#options' do
|
44
|
-
|
45
|
-
|
46
|
-
expect(nested_api_pie_doc_attribute.options).to eq({desc: 'i like pie'})
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context 'when attribute is not nested' do
|
51
|
-
specify 'should return the attributes options' do
|
52
|
-
expect(api_pie_doc_attribute.options).to eq({ type: :string })
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
describe '#nested?' do
|
58
|
-
context 'when attribute is nested' do
|
59
|
-
specify 'should return true' do
|
60
|
-
expect(nested_api_pie_doc_attribute.nested?).to eq true
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'when attribute is not nested' do
|
65
|
-
specify 'should return false' do
|
66
|
-
expect(api_pie_doc_attribute.nested?).to eq false
|
67
|
-
end
|
26
|
+
specify 'should return the attributes options' do
|
27
|
+
expect(api_pie_doc_attribute.options).to eq({ type: :string })
|
68
28
|
end
|
69
29
|
end
|
70
30
|
|
71
31
|
describe '#to_s' do
|
72
|
-
|
73
|
-
|
74
|
-
expect(nested_api_pie_doc_attribute.to_s).to eq("param :address, Hash, desc: 'i like pie', required: true do\nparam :street, String, desc: '', required: true\nparam :city, String, desc: '', required: true\nparam :zip_code, String, desc: ''\nparam :state, String, desc: '', required: true\nend")
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
context 'when attribute is not nested' do
|
79
|
-
specify 'should return properly formatted string' do
|
80
|
-
expect(api_pie_doc_attribute.to_s).to eq("param :name, String, desc: '', required: true")
|
81
|
-
end
|
32
|
+
specify 'should return properly formatted string' do
|
33
|
+
expect(api_pie_doc_attribute.to_s).to eq("param :name, String, desc: '', required: true")
|
82
34
|
end
|
83
35
|
end
|
84
36
|
|
@@ -103,43 +55,4 @@ describe SimpleParams::ApiPieDoc::Attribute do
|
|
103
55
|
end
|
104
56
|
end
|
105
57
|
end
|
106
|
-
|
107
|
-
describe "#requirement_description" do
|
108
|
-
context "when attribute options[:optional] is true" do
|
109
|
-
specify "should return a formatted string indicating the attribute is not required" do
|
110
|
-
attribute = SimpleParams::ApiPieDoc::Attribute.new([:name, {:optional=>true}])
|
111
|
-
expect(attribute.send(:requirement_description)).to eq ""
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
context "when attribute options[:optional] is false" do
|
116
|
-
specify "should return a formatted string indicating the attribute is required" do
|
117
|
-
attribute = SimpleParams::ApiPieDoc::Attribute.new([:name, {:optional=>false}])
|
118
|
-
expect(attribute.send(:requirement_description)).to eq "required: true"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
context "when passed anything other than true or false" do
|
123
|
-
specify "should return a formatted string indicating the attribute is required" do
|
124
|
-
attribute = SimpleParams::ApiPieDoc::Attribute.new([:name, {:optional=>:blah}])
|
125
|
-
expect(attribute.send(:requirement_description)).to eq "required: true"
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe "#description" do
|
131
|
-
context "when attribute options[:desc] is not nil" do
|
132
|
-
specify "should use options[:desc] to populate attribute description" do
|
133
|
-
attribute = SimpleParams::ApiPieDoc::Attribute.new([:name, {:desc => 'I like pie'}])
|
134
|
-
expect(attribute.send(:description)).to eq "desc: 'I like pie'"
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
context "when attribute options[:desc] is nil" do
|
139
|
-
specify "should return an empty string as the description" do
|
140
|
-
attribute = SimpleParams::ApiPieDoc::Attribute.new([:name, {}])
|
141
|
-
expect(attribute.send(:description)).to eq "desc: ''"
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
58
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SimpleParams::ApiPieDoc::NestedAttribute do
|
4
|
+
|
5
|
+
let(:simple_param_attribute) {
|
6
|
+
{:address=>
|
7
|
+
{:street=>{:type=>:string},
|
8
|
+
:city=>{:validations=>{:length=>{:in=>4..40}, :presence=>true}, :type=>:string},
|
9
|
+
:zip_code=>{:optional=>true, :type=>:string},
|
10
|
+
:state=>{:default=>"North Carolina", :type=>:string}
|
11
|
+
},
|
12
|
+
:options=>{desc: 'i like pie'}
|
13
|
+
}
|
14
|
+
}
|
15
|
+
let(:nested_attribute) { described_class.new(simple_param_attribute) }
|
16
|
+
|
17
|
+
it_behaves_like 'a base attribute'
|
18
|
+
|
19
|
+
describe '#initialize' do
|
20
|
+
specify 'should give instance an attribute' do
|
21
|
+
expect(nested_attribute.attribute).to eq simple_param_attribute
|
22
|
+
end
|
23
|
+
|
24
|
+
specify 'should give instance options' do
|
25
|
+
expect(nested_attribute.options).to eq({ desc: 'i like pie' })
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#name' do
|
30
|
+
specify 'should set respond with the right name' do
|
31
|
+
expect(nested_attribute.name).to eq 'address'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#options' do
|
36
|
+
specify 'should return nested attribute options' do
|
37
|
+
expect(nested_attribute.options).to eq({desc: 'i like pie'})
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#to_s' do
|
42
|
+
specify 'should return properly formatted string' do
|
43
|
+
expect(nested_attribute.to_s).to eq("param :address, Hash, desc: 'i like pie', required: true do\nparam :street, String, desc: '', required: true\nparam :city, String, desc: '', required: true\nparam :zip_code, String, desc: '', required: false\nparam :state, String, desc: '', required: true\nend")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/spec/errors_spec.rb
CHANGED
@@ -276,6 +276,22 @@ describe SimpleParams::Errors do
|
|
276
276
|
end
|
277
277
|
end
|
278
278
|
|
279
|
+
describe "#to_s" do
|
280
|
+
it "to_a returns the list of errors with complete messages containing the attribute names" do
|
281
|
+
person = Person.new
|
282
|
+
person.errors.add(:name, "can not be blank")
|
283
|
+
person.errors.add(:name, "can not be nil")
|
284
|
+
person.errors.to_s.should eq("name can not be blank, name can not be nil")
|
285
|
+
end
|
286
|
+
|
287
|
+
it "handles nested attributes" do
|
288
|
+
person = Person.new
|
289
|
+
person.errors.add(:name, "can not be blank")
|
290
|
+
person.dog.errors.add(:breed, "can not be nil")
|
291
|
+
person.errors.to_s.should eq("name can not be blank, dog breed can not be nil")
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
279
295
|
describe "#to_hash" do
|
280
296
|
it "to_hash returns the error messages hash" do
|
281
297
|
person = Person.new
|
data/spec/params_spec.rb
CHANGED
@@ -293,14 +293,14 @@ describe SimpleParams::Params do
|
|
293
293
|
documentation = DummyParams.api_pie_documentation
|
294
294
|
api_docs = <<-API_PIE_DOCS
|
295
295
|
param :name, String, desc: '', required: true
|
296
|
-
param :age, Integer, desc: ''
|
296
|
+
param :age, Integer, desc: '', required: false
|
297
297
|
param :first_initial, String, desc: '', required: true
|
298
|
-
param :amount, desc: ''
|
298
|
+
param :amount, desc: '', required: false
|
299
299
|
param :color, String, desc: '', required: true
|
300
300
|
param :address, Hash, desc: '', required: true do
|
301
301
|
param :street, String, desc: '', required: true
|
302
302
|
param :city, String, desc: '', required: true
|
303
|
-
param :zip_code, String, desc: ''
|
303
|
+
param :zip_code, String, desc: '', required: false
|
304
304
|
param :state, String, desc: '', required: true
|
305
305
|
end
|
306
306
|
param :phone, Hash, desc: '', required: true do
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
shared_examples "a base attribute" do
|
2
|
+
|
3
|
+
let(:base_attribute) { described_class.new(simple_param_attribute) }
|
4
|
+
|
5
|
+
describe 'base_attribute' do
|
6
|
+
specify 'should respond to do_not_document' do
|
7
|
+
expect(base_attribute.respond_to?(:do_not_document?, true)).to be_truthy
|
8
|
+
end
|
9
|
+
|
10
|
+
specify 'should respond to description' do
|
11
|
+
expect(base_attribute.respond_to?(:requirement_description, true)).to be_truthy
|
12
|
+
end
|
13
|
+
|
14
|
+
specify 'should respond to description' do
|
15
|
+
expect(base_attribute.respond_to?(:description, true)).to be_truthy
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
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: 0.0.2.
|
4
|
+
version: 0.0.2.pre8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- brycesenz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -116,6 +116,8 @@ files:
|
|
116
116
|
- lib/simple_params.rb
|
117
117
|
- lib/simple_params/api_pie_doc.rb
|
118
118
|
- lib/simple_params/api_pie_doc/attribute.rb
|
119
|
+
- lib/simple_params/api_pie_doc/attribute_base.rb
|
120
|
+
- lib/simple_params/api_pie_doc/nested_attribute.rb
|
119
121
|
- lib/simple_params/attribute.rb
|
120
122
|
- lib/simple_params/errors.rb
|
121
123
|
- lib/simple_params/formatter.rb
|
@@ -126,6 +128,7 @@ files:
|
|
126
128
|
- simple_params.gemspec
|
127
129
|
- spec/acceptance_spec.rb
|
128
130
|
- spec/api_pie_doc/attribute_spec.rb
|
131
|
+
- spec/api_pie_doc/nested_attribute_spec.rb
|
129
132
|
- spec/api_pie_doc_spec.rb
|
130
133
|
- spec/attribute_spec.rb
|
131
134
|
- spec/errors_spec.rb
|
@@ -133,6 +136,7 @@ files:
|
|
133
136
|
- spec/formatter_spec.rb
|
134
137
|
- spec/params_spec.rb
|
135
138
|
- spec/spec_helper.rb
|
139
|
+
- spec/support/shared_examples/base_attribute.rb
|
136
140
|
homepage: https://github.com/brycesenz/simple_params
|
137
141
|
licenses:
|
138
142
|
- MIT
|
@@ -160,6 +164,7 @@ summary: A DSL for specifying params, including type coercion and validation
|
|
160
164
|
test_files:
|
161
165
|
- spec/acceptance_spec.rb
|
162
166
|
- spec/api_pie_doc/attribute_spec.rb
|
167
|
+
- spec/api_pie_doc/nested_attribute_spec.rb
|
163
168
|
- spec/api_pie_doc_spec.rb
|
164
169
|
- spec/attribute_spec.rb
|
165
170
|
- spec/errors_spec.rb
|
@@ -167,3 +172,4 @@ test_files:
|
|
167
172
|
- spec/formatter_spec.rb
|
168
173
|
- spec/params_spec.rb
|
169
174
|
- spec/spec_helper.rb
|
175
|
+
- spec/support/shared_examples/base_attribute.rb
|