sinatra-params 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: bda631e901b268d9cba511c671088dc909f06d69
4
- data.tar.gz: 12d04e02ba4eb00bf0a263b300414d7efedd462e
2
+ SHA256:
3
+ metadata.gz: 39ccc057aea4dafe50c70dd995b80b1e2497195844169021579ae11887c8e6ec
4
+ data.tar.gz: cb03a5ef8fedeccb224d0a8e9cd494fc227298c28f7d0962473951083622ba03
5
5
  SHA512:
6
- metadata.gz: c3385f06b2b369f652073fcf806b607ab65ee6a05333260c500359ebf4e5c3ff938c228cb2cbc518ec3ff6a2153fd06d4902ea1d908433e4278a781a821a5f31
7
- data.tar.gz: '07848feccca292e83e2ed724693adf9b39f9dd1317ef2178cfc2ad89f90c50f42cf3656e4dadea529efdec03cd5fe2dc26637949c1fcb7a2691e1c477bbe8ee4'
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
File without changes
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module Params
3
- VERSION = '1.0.4'
3
+ VERSION = '1.0.5'
4
4
  end
5
5
  end
@@ -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]
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
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-13 00:00:00.000000000 Z
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.14.1
92
+ rubygems_version: 2.7.6
93
93
  signing_key:
94
94
  specification_version: 4
95
95
  summary: Parameter validation for Sinatra.