weasel_diesel 1.1.0 → 1.1.1

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.
data/README.md CHANGED
@@ -158,7 +158,7 @@ Options can be combined.
158
158
  * `in` or `options` limits the range of the possible values being
159
159
  passed. Example: `service.param.string :skills, :options %w{ruby scala clojure}`
160
160
  * `default` sets a value for your in case you don't pass one. Example:
161
- `service.param.datetime :timestamp, :default => Time.now`
161
+ `service.param.datetime :timestamp, :default => Time.now.iso8601`
162
162
  * `min_value` forces the param value to be equal or greater than the
163
163
  option's value. Example: `service.param.integer :age, :min_value => 21
164
164
  * `max_value` forces the param value to be equal or less than the
@@ -174,7 +174,7 @@ module ParamsVerification
174
174
  #
175
175
  def self.validate_and_cast_type(param_value, param_name, rule_type, params, namespace=nil)
176
176
  # checks type & modifies params if needed
177
- if rule_type
177
+ if rule_type && param_value
178
178
  verify_cast(param_name, param_value, rule_type)
179
179
  param_value = type_cast_value(rule_type, param_value)
180
180
  # update the params hash with the type cast value
@@ -1,3 +1,3 @@
1
1
  class WeaselDiesel
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
data/lib/weasel_diesel.rb CHANGED
@@ -326,7 +326,11 @@ class WeaselDiesel
326
326
  # @return [WeaselDiesel::Documentation] The service documentation object
327
327
  # @api public
328
328
  def documentation
329
- yield(doc)
329
+ if block_given?
330
+ yield(doc)
331
+ else
332
+ doc
333
+ end
330
334
  end
331
335
 
332
336
  # Assign a route loading point to compare two routes.
@@ -23,6 +23,12 @@ describe ParamsVerification do
23
23
  returned_params.should be_an_instance_of(Hash)
24
24
  returned_params.keys.size.should >= 3
25
25
  end
26
+
27
+ it "shouldn't set empty nil values for optional params that aren't passed" do
28
+ params = copy(@valid_params)
29
+ returned_params = ParamsVerification.validate!(params, @service.defined_params)
30
+ returned_params.has_key?('name').should be_false
31
+ end
26
32
 
27
33
  it "should return array in the params" do
28
34
  params = copy(@valid_params)
@@ -9,11 +9,10 @@ describe_service "services/test.xml" do |service|
9
9
  service.params do |p|
10
10
  p.string :framework,
11
11
  :in => WeaselDieselSpecOptions,
12
- :null => false,
13
12
  :required => true,
14
13
  :doc => "The test framework used, could be one of the two following: #{WeaselDieselSpecOptions.join(", ")}."
15
14
 
16
- p.datetime :timestamp, :default => Time.now
15
+ p.datetime :timestamp, :default => Time.now.iso8601
17
16
  p.string :alpha, :in => ['a', 'b', 'c']
18
17
  p.string :version, :null => false, :doc => "The version of the framework to use."
19
18
  p.integer :num, :min_value => 42, :max_value => 1000, :doc => "The number to test"
metadata CHANGED
@@ -1,103 +1,130 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: weasel_diesel
3
- version: !ruby/object:Gem::Version
4
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 1
10
+ version: 1.1.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Matt Aimonetti
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-07-18 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-07-18 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: rack-test
32
- requirement: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
33
24
  none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
38
32
  type: :development
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: rack-test
39
36
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: yard
48
- requirement: !ruby/object:Gem::Requirement
37
+ requirement: &id002 !ruby/object:Gem::Requirement
49
38
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
54
46
  type: :development
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: yard
55
50
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
51
+ requirement: &id003 !ruby/object:Gem::Requirement
57
52
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: sinatra
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
70
60
  type: :development
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: sinatra
71
64
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
65
+ requirement: &id004 !ruby/object:Gem::Requirement
73
66
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ type: :development
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
79
77
  name: rake
80
- requirement: !ruby/object:Gem::Requirement
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
81
80
  none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
86
88
  type: :development
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: backports
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
105
+ name: json
87
106
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
107
+ requirement: &id007 !ruby/object:Gem::Requirement
89
108
  none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ hash: 3
113
+ segments:
114
+ - 0
115
+ version: "0"
116
+ type: :runtime
117
+ version_requirements: *id007
94
118
  description: Ruby DSL describing Web Services without implementation details.
95
- email:
119
+ email:
96
120
  - mattaimonetti@gmail.com
97
121
  executables: []
122
+
98
123
  extensions: []
124
+
99
125
  extra_rdoc_files: []
100
- files:
126
+
127
+ files:
101
128
  - .gitignore
102
129
  - .travis.yml
103
130
  - Gemfile
@@ -132,29 +159,38 @@ files:
132
159
  - weasel_diesel.gemspec
133
160
  homepage: https://github.com/mattetti/Weasel-Diesel
134
161
  licenses: []
162
+
135
163
  post_install_message:
136
164
  rdoc_options: []
137
- require_paths:
165
+
166
+ require_paths:
138
167
  - lib
139
- required_ruby_version: !ruby/object:Gem::Requirement
168
+ required_ruby_version: !ruby/object:Gem::Requirement
140
169
  none: false
141
- requirements:
142
- - - ! '>='
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
175
+ - 0
176
+ version: "0"
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
178
  none: false
147
- requirements:
148
- - - ! '>='
149
- - !ruby/object:Gem::Version
150
- version: '0'
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
151
186
  requirements: []
187
+
152
188
  rubyforge_project: wsdsl
153
- rubygems_version: 1.8.24
189
+ rubygems_version: 1.8.16
154
190
  signing_key:
155
191
  specification_version: 3
156
192
  summary: Web Service DSL
157
- test_files:
193
+ test_files:
158
194
  - spec/hello_world_controller.rb
159
195
  - spec/hello_world_service.rb
160
196
  - spec/json_response_description_spec.rb