http-client-generator 0.1.23 → 0.1.25
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
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e631d6496a32223a78647bd0e8e20351460609198fcb39120cbc6ee8dcb5e89
|
4
|
+
data.tar.gz: 8eceda8b7ce7eb04814e7646bcec2c2aba7e156688e585d228ba075da87b8105
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 525fd231428f4978cf354812a02101a43b006e29b40e0b00c66ea0d4f529a684dda5ea7ee91ddc2f10ef06b20426e725d4f01ad366c51cf4f7fa4c0f629a0f18
|
7
|
+
data.tar.gz: b6da1d6c14f39bfbcfb402fd741e693315765c75791570efdd27e290cee0feda98c323abaad0fa43dd68ec3a135ff1c36f08f549225198dd636d12d271cd1652
|
@@ -6,15 +6,24 @@ module HttpClientGenerator
|
|
6
6
|
Plugs.register :validate_response, self
|
7
7
|
|
8
8
|
module SchemaBuilder
|
9
|
-
def
|
9
|
+
def self.included(base)
|
10
|
+
super
|
11
|
+
|
10
12
|
require 'datacaster'
|
13
|
+
base.extend(self)
|
14
|
+
end
|
11
15
|
|
16
|
+
def schema_for(name, &block)
|
12
17
|
@schemas ||= {}
|
13
18
|
@schemas[name] = Datacaster.choosy_schema(&block)
|
14
19
|
|
15
20
|
define_singleton_method(name) do |params|
|
16
21
|
@schemas[name].(params)
|
17
22
|
end
|
23
|
+
|
24
|
+
define_method(name) do |params|
|
25
|
+
@schemas[name].(params)
|
26
|
+
end
|
18
27
|
end
|
19
28
|
end
|
20
29
|
|
@@ -29,7 +38,7 @@ module HttpClientGenerator
|
|
29
38
|
return req unless @schema_helper.respond_to?(schema_name)
|
30
39
|
|
31
40
|
req.response_body = @schema_helper.public_send(schema_name, req.response_body)
|
32
|
-
.value_or { |e| req.raise_message(e.inspect) }
|
41
|
+
.value_or { |e| req.raise_message("Unexpected #{e.inspect} in #{req.response_body}") }
|
33
42
|
|
34
43
|
req
|
35
44
|
end
|