sinatra-params 1.0.4 → 1.0.5
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 +5 -5
- data/.gitignore +0 -0
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.md +0 -0
- data/lib/sinatra/params/configuration.rb +0 -0
- data/lib/sinatra/params/error.rb +0 -0
- data/lib/sinatra/params/version.rb +1 -1
- data/lib/sinatra/params.rb +6 -2
- data/sinatra-params.gemspec +0 -0
- data/test/server_test.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 39ccc057aea4dafe50c70dd995b80b1e2497195844169021579ae11887c8e6ec
|
4
|
+
data.tar.gz: cb03a5ef8fedeccb224d0a8e9cd494fc227298c28f7d0962473951083622ba03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 324d8d867d456ac009ed8e636254c88128c39ee7c2bdb19f572b1005929d6f7eb12ecc006e4d6d1931cda5d868e7f99ce184acbaf6c5213235dee8db36803838
|
7
|
+
data.tar.gz: 29822ff11739c19f9905ee71c9a38d5c26a0d432756f89f7e47eb66c2cf954da8a63600b182696c7a662190961dd4ecebf83f18d60a773e6cd210e1be9d92871
|
data/.gitignore
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
File without changes
|
data/lib/sinatra/params/error.rb
CHANGED
File without changes
|
data/lib/sinatra/params.rb
CHANGED
@@ -25,10 +25,12 @@ Conversion.convert = {
|
|
25
25
|
module Sinatra
|
26
26
|
module Params
|
27
27
|
def param (name, type, args = {})
|
28
|
-
raise ParameterNotFoundError(name) unless params.key? name
|
29
|
-
|
30
28
|
params.define_singleton_method(name.to_sym) { self[name] }
|
31
29
|
|
30
|
+
present = !params[name].nil?
|
31
|
+
|
32
|
+
raise ParameterNotFoundError(name) unless params.key? name or args[:optional]
|
33
|
+
|
32
34
|
if params[name].class == type
|
33
35
|
# Do nothing
|
34
36
|
elsif Conversion.respond_as[type] and params[name].respond_to? Conversion.respond_as[type]
|
@@ -39,6 +41,8 @@ module Sinatra
|
|
39
41
|
raise ParameterNotFoundError(name) unless args[:optional]
|
40
42
|
end
|
41
43
|
|
44
|
+
return unless present
|
45
|
+
|
42
46
|
raise ParameterOutOfRangeError(name) if args[:in] and args[:in].include? params[name]
|
43
47
|
raise ParameterOutOfRangeError(name) if args[:max] and args[:max] < params[name]
|
44
48
|
raise ParameterOutOfRangeError(name) if args[:min] and args[:min] > params[name]
|
data/sinatra-params.gemspec
CHANGED
File without changes
|
data/test/server_test.rb
CHANGED
@@ -6,7 +6,7 @@ helpers Sinatra::Params
|
|
6
6
|
|
7
7
|
post '/' do
|
8
8
|
param :content, String
|
9
|
-
param :birthday, Date, :max => Date.today.prev_year(18)
|
9
|
+
param :birthday, Date, :max => Date.today.prev_year(18), :optional => true
|
10
10
|
|
11
|
-
json :content => params.content
|
11
|
+
json :content => params.content, :present => !params.birthday.nil?
|
12
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-params
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felipe Cabrera
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
91
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.6
|
92
|
+
rubygems_version: 2.7.6
|
93
93
|
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: Parameter validation for Sinatra.
|