sinatra-param 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +38 -26
- data/LICENSE +1 -1
- data/README.md +35 -22
- data/coverage/assets/0.10.2/application.css +799 -0
- data/coverage/assets/0.10.2/application.js +1707 -0
- data/coverage/assets/0.10.2/colorbox/border.png +0 -0
- data/coverage/assets/0.10.2/colorbox/controls.png +0 -0
- data/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
- data/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.10.2/favicon_green.png +0 -0
- data/coverage/assets/0.10.2/favicon_red.png +0 -0
- data/coverage/assets/0.10.2/favicon_yellow.png +0 -0
- data/coverage/assets/0.10.2/loading.gif +0 -0
- data/coverage/assets/0.10.2/magnify.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/index.html +208 -189
- data/example/Gemfile +4 -4
- data/example/Gemfile.lock +24 -17
- data/lib/sinatra/param.rb +6 -3
- data/lib/sinatra/param/version.rb +1 -1
- data/sinatra-param.gemspec +3 -3
- data/spec/dummy/app.rb +10 -0
- data/spec/parameter_raise_spec.rb +3 -3
- data/spec/parameter_type_coercion_spec.rb +16 -0
- data/spec/parameter_validations_spec.rb +22 -0
- metadata +95 -73
- data/sinatra-param-1.3.0.gem +0 -0
- data/sinatra-param-1.3.1.gem +0 -0
data/example/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
ruby '2.
|
1
|
+
ruby '2.4.1'
|
2
2
|
source "https://rubygems.org"
|
3
3
|
|
4
|
-
gem '
|
4
|
+
gem 'json', '~> 2.1.0'
|
5
|
+
gem 'sinatra', '~> 2.0.1', require: 'sinatra/base'
|
5
6
|
gem 'sinatra-param', path: File.join(__FILE__, "../.."), require: 'sinatra/param'
|
6
|
-
gem '
|
7
|
-
gem 'unicorn'
|
7
|
+
gem 'unicorn', '~> 5.4.0'
|
data/example/Gemfile.lock
CHANGED
@@ -1,33 +1,40 @@
|
|
1
1
|
PATH
|
2
2
|
remote: /Users/mattt/Code/Ruby/sinatra-param
|
3
3
|
specs:
|
4
|
-
sinatra-param (
|
5
|
-
sinatra (
|
4
|
+
sinatra-param (1.4.0)
|
5
|
+
sinatra (>= 1.3)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
json (1.
|
11
|
-
kgio (2.
|
12
|
-
|
13
|
-
rack
|
10
|
+
json (2.1.0)
|
11
|
+
kgio (2.11.2)
|
12
|
+
mustermann (1.0.2)
|
13
|
+
rack (2.0.4)
|
14
|
+
rack-protection (2.0.1)
|
14
15
|
rack
|
15
|
-
raindrops (0.
|
16
|
-
sinatra (
|
17
|
-
|
18
|
-
rack
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
raindrops (0.19.0)
|
17
|
+
sinatra (2.0.1)
|
18
|
+
mustermann (~> 1.0)
|
19
|
+
rack (~> 2.0)
|
20
|
+
rack-protection (= 2.0.1)
|
21
|
+
tilt (~> 2.0)
|
22
|
+
tilt (2.0.8)
|
23
|
+
unicorn (5.4.0)
|
22
24
|
kgio (~> 2.6)
|
23
|
-
rack
|
24
25
|
raindrops (~> 0.7)
|
25
26
|
|
26
27
|
PLATFORMS
|
27
28
|
ruby
|
28
29
|
|
29
30
|
DEPENDENCIES
|
30
|
-
json
|
31
|
-
sinatra
|
31
|
+
json (~> 2.1.0)
|
32
|
+
sinatra (~> 2.0.1)
|
32
33
|
sinatra-param!
|
33
|
-
unicorn
|
34
|
+
unicorn (~> 5.4.0)
|
35
|
+
|
36
|
+
RUBY VERSION
|
37
|
+
ruby 2.4.1p111
|
38
|
+
|
39
|
+
BUNDLED WITH
|
40
|
+
1.16.0
|
data/lib/sinatra/param.rb
CHANGED
@@ -14,23 +14,26 @@ module Sinatra
|
|
14
14
|
def param(name, type, options = {})
|
15
15
|
name = name.to_s
|
16
16
|
|
17
|
-
return unless params.member?(name) or options
|
17
|
+
return unless params.member?(name) or options.has_key?(:default) or options[:required]
|
18
18
|
|
19
19
|
begin
|
20
20
|
params[name] = coerce(params[name], type, options)
|
21
|
-
params[name] = (options[:default].call if options[:default].respond_to?(:call)) || options[:default] if params[name].nil? and options
|
21
|
+
params[name] = (options[:default].call if options[:default].respond_to?(:call)) || options[:default] if params[name].nil? and options.has_key?(:default)
|
22
22
|
params[name] = options[:transform].to_proc.call(params[name]) if params[name] and options[:transform]
|
23
23
|
validate!(params[name], options)
|
24
|
+
params[name]
|
24
25
|
rescue InvalidParameterError => exception
|
25
26
|
if options[:raise] or (settings.raise_sinatra_param_exceptions rescue false)
|
26
27
|
exception.param, exception.options = name, options
|
27
28
|
raise exception
|
28
29
|
end
|
29
30
|
|
30
|
-
error = exception.to_s
|
31
|
+
error = options[:message] || exception.to_s
|
31
32
|
|
32
33
|
if content_type and content_type.match(mime_type(:json))
|
33
34
|
error = {message: error, errors: {name => exception.message}}.to_json
|
35
|
+
else
|
36
|
+
content_type 'text/plain'
|
34
37
|
end
|
35
38
|
|
36
39
|
halt 400, error
|
data/sinatra-param.gemspec
CHANGED
@@ -4,15 +4,15 @@ require File.expand_path('../lib/sinatra/param/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "sinatra-param"
|
6
6
|
s.license = "MIT"
|
7
|
-
s.authors = ["Mattt
|
8
|
-
s.email = "
|
7
|
+
s.authors = ["Mattt"]
|
8
|
+
s.email = "mattt@me.com"
|
9
9
|
s.homepage = "https://github.com/mattt/sinatra-param"
|
10
10
|
s.version = Sinatra::Param::VERSION
|
11
11
|
s.platform = Gem::Platform::RUBY
|
12
12
|
s.summary = "Parameter Validation & Type Coercion for Sinatra."
|
13
13
|
s.description = "sinatra-param allows you to declare, validate, and transform endpoint parameters as you would in frameworks like ActiveModel or DataMapper."
|
14
14
|
|
15
|
-
s.add_dependency "sinatra", "
|
15
|
+
s.add_dependency "sinatra", ">= 1.3"
|
16
16
|
|
17
17
|
s.add_development_dependency "rake"
|
18
18
|
s.add_development_dependency "rspec"
|
data/spec/dummy/app.rb
CHANGED
@@ -261,4 +261,14 @@ class App < Sinatra::Base
|
|
261
261
|
message: 'OK'
|
262
262
|
}.to_json
|
263
263
|
end
|
264
|
+
|
265
|
+
get '/xml' do
|
266
|
+
content_type :xml
|
267
|
+
param :a, Integer, within: 1..10, required: true
|
268
|
+
end
|
269
|
+
|
270
|
+
get '/custommessage' do
|
271
|
+
param :a, Integer, within: 1..10, required: true,
|
272
|
+
message: "'a' must be less than 10"
|
273
|
+
end
|
264
274
|
end
|
@@ -5,7 +5,7 @@ describe 'Exception' do
|
|
5
5
|
it 'should raise error when option is specified' do
|
6
6
|
expect {
|
7
7
|
get('/raise/validation/required')
|
8
|
-
}.to raise_error
|
8
|
+
}.to raise_error Sinatra::Param::InvalidParameterError
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -13,13 +13,13 @@ describe 'Exception' do
|
|
13
13
|
params = {a: 1, b: 2, c: 3}
|
14
14
|
expect {
|
15
15
|
get('/raise/one_of/3', params)
|
16
|
-
}.to raise_error
|
16
|
+
}.to raise_error Sinatra::Param::InvalidParameterError
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should raise error when no parameters are specified' do
|
20
20
|
params = {}
|
21
21
|
expect {
|
22
22
|
get('/raise/any_of', params)
|
23
|
-
}.to raise_error
|
23
|
+
}.to raise_error Sinatra::Param::InvalidParameterError
|
24
24
|
end
|
25
25
|
end
|
@@ -168,5 +168,21 @@ describe 'Parameter Types' do
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
171
|
+
|
172
|
+
it 'coerces default booleans to true when default is true and its not provided' do
|
173
|
+
get('/default/boolean/true') do |response|
|
174
|
+
expect(response.status).to eql 200
|
175
|
+
expect(JSON.parse(response.body)['arg']).to be true
|
176
|
+
expect(JSON.parse(response.body)['arg']).to_not be_nil
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
it 'coerces default booleans to false when default is false and its not provided' do
|
181
|
+
get('/default/boolean/false') do |response|
|
182
|
+
expect(response.status).to eql 200
|
183
|
+
expect(JSON.parse(response.body)['arg']).to be false
|
184
|
+
expect(JSON.parse(response.body)['arg']).to_not be_nil
|
185
|
+
end
|
186
|
+
end
|
171
187
|
end
|
172
188
|
end
|
@@ -191,4 +191,26 @@ describe 'Parameter Validations' do
|
|
191
191
|
end
|
192
192
|
end
|
193
193
|
end
|
194
|
+
|
195
|
+
context 'content-type header' do
|
196
|
+
it 'returns application/json for JSON APIs' do
|
197
|
+
get('/validation/max_length', arg: 'reallylongstringlongerthanmax') do |response|
|
198
|
+
expect(response.headers['Content-Type']).to eq('application/json')
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
it 'returns text/plain for non-JSON APIs' do
|
203
|
+
get('/xml', arg: 'reallylongstringlongerthanmax') do |response|
|
204
|
+
expect(response.headers['Content-Type']).to include('text/plain')
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
context 'custom message ' do
|
210
|
+
it 'returns a custom message when configured' do
|
211
|
+
get('/custommessage') do |response|
|
212
|
+
expect(JSON.parse(response.body)['message']).to eq("'a' must be less than 10")
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
194
216
|
end
|
metadata
CHANGED
@@ -1,148 +1,170 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-param
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Mattt
|
7
|
+
- Mattt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rack-test
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: sinatra-param allows you to declare, validate, and transform endpoint
|
84
84
|
parameters as you would in frameworks like ActiveModel or DataMapper.
|
85
|
-
email:
|
85
|
+
email: mattt@me.com
|
86
86
|
executables: []
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- ./
|
91
|
-
- ./
|
92
|
-
- ./
|
93
|
-
- ./
|
94
|
-
- ./
|
95
|
-
- ./coverage/assets/0.
|
96
|
-
- ./coverage/assets/0.
|
97
|
-
- ./coverage/assets/0.
|
98
|
-
- ./coverage/assets/0.
|
99
|
-
- ./coverage/assets/0.
|
100
|
-
- ./coverage/assets/0.
|
101
|
-
- ./coverage/assets/0.
|
102
|
-
- ./coverage/assets/0.
|
103
|
-
- ./coverage/assets/0.
|
104
|
-
- ./coverage/assets/0.
|
105
|
-
- ./coverage/assets/0.
|
106
|
-
- ./coverage/assets/0.
|
107
|
-
- ./coverage/assets/0.
|
108
|
-
- ./coverage/assets/0.
|
109
|
-
- ./coverage/assets/0.
|
110
|
-
- ./coverage/assets/0.
|
111
|
-
- ./coverage/assets/0.
|
112
|
-
- ./coverage/assets/0.
|
113
|
-
- ./coverage/assets/0.
|
114
|
-
- ./coverage/assets/0.
|
115
|
-
- ./coverage/assets/0.
|
116
|
-
- ./coverage/assets/0.
|
117
|
-
- ./coverage/assets/0.
|
118
|
-
- ./coverage/assets/0.
|
119
|
-
- ./coverage/assets/0.7.1/
|
120
|
-
- ./coverage/assets/0.7.1/
|
121
|
-
- ./coverage/assets/0.7.1/
|
122
|
-
- ./coverage/assets/0.7.1/
|
123
|
-
- ./coverage/assets/0.7.1/
|
124
|
-
- ./coverage/assets/0.7.1/
|
125
|
-
- ./coverage/assets/0.7.1/
|
126
|
-
- ./coverage/assets/0.7.1/
|
127
|
-
- ./coverage/assets/0.7.1/
|
128
|
-
- ./coverage/assets/0.7.1/
|
129
|
-
- ./coverage/assets/0.7.1/
|
130
|
-
- ./coverage/
|
131
|
-
- ./
|
132
|
-
- ./
|
133
|
-
- ./
|
134
|
-
- ./
|
135
|
-
- ./
|
136
|
-
- ./
|
137
|
-
- ./
|
138
|
-
- ./
|
139
|
-
- ./
|
140
|
-
- ./
|
141
|
-
- ./
|
142
|
-
- ./
|
143
|
-
- ./
|
144
|
-
- ./
|
145
|
-
- ./
|
90
|
+
- "./Gemfile"
|
91
|
+
- "./Gemfile.lock"
|
92
|
+
- "./LICENSE"
|
93
|
+
- "./README.md"
|
94
|
+
- "./Rakefile"
|
95
|
+
- "./coverage/assets/0.10.2/application.css"
|
96
|
+
- "./coverage/assets/0.10.2/application.js"
|
97
|
+
- "./coverage/assets/0.10.2/colorbox/border.png"
|
98
|
+
- "./coverage/assets/0.10.2/colorbox/controls.png"
|
99
|
+
- "./coverage/assets/0.10.2/colorbox/loading.gif"
|
100
|
+
- "./coverage/assets/0.10.2/colorbox/loading_background.png"
|
101
|
+
- "./coverage/assets/0.10.2/favicon_green.png"
|
102
|
+
- "./coverage/assets/0.10.2/favicon_red.png"
|
103
|
+
- "./coverage/assets/0.10.2/favicon_yellow.png"
|
104
|
+
- "./coverage/assets/0.10.2/loading.gif"
|
105
|
+
- "./coverage/assets/0.10.2/magnify.png"
|
106
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png"
|
107
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png"
|
108
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png"
|
109
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png"
|
110
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png"
|
111
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png"
|
112
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png"
|
113
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
|
114
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png"
|
115
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png"
|
116
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png"
|
117
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png"
|
118
|
+
- "./coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png"
|
119
|
+
- "./coverage/assets/0.7.1/application.css"
|
120
|
+
- "./coverage/assets/0.7.1/application.js"
|
121
|
+
- "./coverage/assets/0.7.1/fancybox/blank.gif"
|
122
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_close.png"
|
123
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_loading.png"
|
124
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_nav_left.png"
|
125
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_nav_right.png"
|
126
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_e.png"
|
127
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_n.png"
|
128
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png"
|
129
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png"
|
130
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_s.png"
|
131
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_se.png"
|
132
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png"
|
133
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_shadow_w.png"
|
134
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_title_left.png"
|
135
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_title_main.png"
|
136
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_title_over.png"
|
137
|
+
- "./coverage/assets/0.7.1/fancybox/fancy_title_right.png"
|
138
|
+
- "./coverage/assets/0.7.1/fancybox/fancybox-x.png"
|
139
|
+
- "./coverage/assets/0.7.1/fancybox/fancybox-y.png"
|
140
|
+
- "./coverage/assets/0.7.1/fancybox/fancybox.png"
|
141
|
+
- "./coverage/assets/0.7.1/favicon_green.png"
|
142
|
+
- "./coverage/assets/0.7.1/favicon_red.png"
|
143
|
+
- "./coverage/assets/0.7.1/favicon_yellow.png"
|
144
|
+
- "./coverage/assets/0.7.1/loading.gif"
|
145
|
+
- "./coverage/assets/0.7.1/magnify.png"
|
146
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png"
|
147
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png"
|
148
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png"
|
149
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png"
|
150
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png"
|
151
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png"
|
152
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png"
|
153
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
|
154
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png"
|
155
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png"
|
156
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png"
|
157
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png"
|
158
|
+
- "./coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png"
|
159
|
+
- "./coverage/index.html"
|
160
|
+
- "./example/Gemfile"
|
161
|
+
- "./example/Gemfile.lock"
|
162
|
+
- "./example/Procfile"
|
163
|
+
- "./example/app.rb"
|
164
|
+
- "./example/config.ru"
|
165
|
+
- "./lib/sinatra/param.rb"
|
166
|
+
- "./lib/sinatra/param/version.rb"
|
167
|
+
- "./sinatra-param.gemspec"
|
146
168
|
- spec/dummy/app.rb
|
147
169
|
- spec/parameter_exclusivity_spec.rb
|
148
170
|
- spec/parameter_inclusivity_spec.rb
|
@@ -162,17 +184,17 @@ require_paths:
|
|
162
184
|
- lib
|
163
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
164
186
|
requirements:
|
165
|
-
- -
|
187
|
+
- - ">="
|
166
188
|
- !ruby/object:Gem::Version
|
167
189
|
version: '0'
|
168
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
191
|
requirements:
|
170
|
-
- -
|
192
|
+
- - ">="
|
171
193
|
- !ruby/object:Gem::Version
|
172
194
|
version: '0'
|
173
195
|
requirements: []
|
174
196
|
rubyforge_project:
|
175
|
-
rubygems_version: 2.
|
197
|
+
rubygems_version: 2.6.11
|
176
198
|
signing_key:
|
177
199
|
specification_version: 4
|
178
200
|
summary: Parameter Validation & Type Coercion for Sinatra.
|