Module: HttpClientGenerator
- Defined in:
- lib/http_client_generator.rb,
lib/http_client_generator/plugs.rb,
lib/http_client_generator/request.rb,
lib/http_client_generator/version.rb,
lib/http_client_generator/resource.rb,
lib/http_client_generator/url_builder.rb,
lib/http_client_generator/schema_builder.rb,
lib/http_client_generator/plugs/set_header.rb,
lib/http_client_generator/plugs/camelize_body.rb,
lib/http_client_generator/plugs/set_request_id.rb,
lib/http_client_generator/resources_definition.rb,
lib/http_client_generator/plugs/set_bearer_token.rb,
lib/http_client_generator/plugs/validate_request.rb,
lib/http_client_generator/plugs/validate_response.rb,
lib/http_client_generator/plugs/underscore_response.rb,
lib/http_client_generator/plugs/encode_json_response.rb,
lib/http_client_generator/plugs/enforce_json_response.rb
Defined Under Namespace
Modules: SchemaBuilder, UrlBuilder
Classes: Plugs, Request, Resource, ResourcesDefinition
Constant Summary
collapse
- VERSION =
'0.1.33'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
39
40
41
|
# File 'lib/http_client_generator.rb', line 39
def config
@config
end
|
Class Method Details
.included(base) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/http_client_generator.rb', line 13
def self.included(base)
super
base.extend(self)
base.const_set(:Error, Class.new(StandardError))
base.const_set(:RequestError, Class.new(base::Error))
end
|
Instance Method Details
41
42
43
44
45
46
|
# File 'lib/http_client_generator.rb', line 41
def configure(&configure)
@config = self::Configuration.new
.tap(&configure)
.tap { |c| user_process_config(c) if respond_to?(:user_process_config) }
.tap(&:freeze)
end
|
#process_config(&block) ⇒ Object
48
49
50
|
# File 'lib/http_client_generator.rb', line 48
def process_config(&block)
define_singleton_method(:user_process_config, block)
end
|
#resources(&block) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/http_client_generator.rb', line 25
def resources(&block)
resources_definition = ResourcesDefinition.new(self)
resources_definition.instance_eval(&block)
resources = resources_definition.resources
resources.each do |resource|
method_name = :"#{resource.verb}_#{resource.name}"
define_singleton_method(method_name) do |url_options = {}, body: nil, **rest_args|
resource.perform_request(@url_helper, url_options, body, rest_args)
end
end
end
|
#url_helper(module_name) ⇒ Object
21
22
23
|
# File 'lib/http_client_generator.rb', line 21
def url_helper(module_name)
@url_helper = module_name
end
|