sinatra-wanted 0.8 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sinatra/helpers/wanted.rb +21 -15
- data/lib/sinatra/helpers/wanted/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36dd224a2e9a878f60e34b32192e512a5359fe0e8dce37654b43fc8693932004
|
4
|
+
data.tar.gz: '08e02cfe3f691cf1bac73947c6cc007c18b604ea0658595320d783b86021b805'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 419d1b4c42c2c7c3ac3f4e35a797c25eee14c2c67a7488f8c5e9f80891e5ab425a2e106a893a84368cbe15358d98a5b7a7d09d998008ea1e509f597003577596
|
7
|
+
data.tar.gz: c4678ed4ada73ee0fbd4735db716e879f69be8a44f6009925bff132bb0d66d7af91a002c42a31db152097a93cedcbf04b13ea324ea4f83bbcbfbeae0214e31bf
|
@@ -19,18 +19,29 @@ module Sinatra::Helpers::Wanted
|
|
19
19
|
@value = value
|
20
20
|
@id = id
|
21
21
|
end
|
22
|
+
attr_reader :id
|
23
|
+
attr_reader :value
|
22
24
|
end
|
23
25
|
|
24
26
|
# Exception to notify of syntax error
|
25
27
|
class WantedSyntaxError < WantedError
|
28
|
+
def initialize(msg=nil, id: nil, value: nil)
|
29
|
+
super(msg || "syntax error", id: id, value: value)
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
# Exception to notify of missing parameter
|
29
34
|
class WantedMissing < WantedError
|
35
|
+
def initialize(msg=nil, id: nil)
|
36
|
+
super(msg || "missing parameter", id: id)
|
37
|
+
end
|
30
38
|
end
|
31
39
|
|
32
40
|
# Exception to notify of object not found
|
33
41
|
class WantedNotFound < WantedError
|
42
|
+
def initialize(msg=nil, id: nil, value: nil)
|
43
|
+
super(msg || "object not found", id: id, value: value)
|
44
|
+
end
|
34
45
|
end
|
35
46
|
|
36
47
|
|
@@ -59,18 +70,16 @@ module Sinatra::Helpers::Wanted
|
|
59
70
|
def want(param, type=nil, getter=nil, id: nil,
|
60
71
|
default: nil, no_value: NO_VALUE,
|
61
72
|
missing: :ignore, not_found: :ignore, &block)
|
62
|
-
error_handler do
|
63
73
|
_want(param, type, getter, id: id,
|
64
74
|
default: default, no_value: no_value,
|
65
75
|
missing: missing, not_found: not_found, &block)
|
66
|
-
end
|
67
76
|
end
|
68
77
|
|
69
78
|
# (see #want)
|
70
79
|
def want!(param, type=nil, getter=nil, id: nil,
|
71
80
|
default: nil, no_value: NO_VALUE,
|
72
81
|
missing: :raise, not_found: :raise, &block)
|
73
|
-
|
82
|
+
_want(param, type, getter, id: id,
|
74
83
|
default: default, no_value: no_value,
|
75
84
|
missing: missing, not_found: not_found, &block)
|
76
85
|
end
|
@@ -79,7 +88,7 @@ module Sinatra::Helpers::Wanted
|
|
79
88
|
def want?(param, type=nil, getter=nil, id: nil,
|
80
89
|
default: nil, no_value: NO_VALUE,
|
81
90
|
missing: :return, not_found: :ignore, &block)
|
82
|
-
|
91
|
+
_want(param, type, getter,
|
83
92
|
default: default, id: id, no_value: no_value,
|
84
93
|
missing: missing, not_found: not_found, &block)
|
85
94
|
end
|
@@ -138,11 +147,12 @@ module Sinatra::Helpers::Wanted
|
|
138
147
|
value = type.public_send(type_method, value)
|
139
148
|
end
|
140
149
|
if !value.nil? && get_method
|
141
|
-
|
150
|
+
val = value
|
151
|
+
value = getter.public_send(get_method, value)
|
142
152
|
# Check if we consider it as not found
|
143
153
|
if value.nil?
|
144
154
|
case not_found
|
145
|
-
when :raise then raise WantedNotFound, id: id
|
155
|
+
when :raise then raise WantedNotFound, id: id, value: val
|
146
156
|
when :not_found then self.not_found
|
147
157
|
when :pass then self.pass
|
148
158
|
when :ignore
|
@@ -156,20 +166,16 @@ module Sinatra::Helpers::Wanted
|
|
156
166
|
|
157
167
|
# Return value
|
158
168
|
value
|
159
|
-
rescue Dry::Types::CoercionError, Dry::Types::ConstraintError
|
160
|
-
raise WantedSyntaxError, value: value, id: id
|
161
|
-
end
|
162
169
|
|
163
|
-
|
170
|
+
rescue StandardError => e
|
164
171
|
if defined?(Dry::Types)
|
165
|
-
|
166
|
-
|
167
|
-
rescue Dry::Types::CoercionError, Dry::Types::ConstraintError
|
172
|
+
case e
|
173
|
+
when Dry::Types::CoercionError, Dry::Types::ConstraintError
|
168
174
|
raise WantedSyntaxError, value: value, id: id
|
169
175
|
end
|
170
|
-
else
|
171
|
-
yield
|
172
176
|
end
|
177
|
+
|
178
|
+
raise
|
173
179
|
end
|
174
180
|
|
175
181
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-wanted
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stéphane D'Alu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|