Class: Alchemrest::RequestDefinition
- Inherits:
-
Object
- Object
- Alchemrest::RequestDefinition
- Defined in:
- lib/alchemrest/request_definition.rb,
lib/alchemrest/request_definition/builder.rb
Overview
A class that can be used to build an instance of an Alchemrest::Request class. The definition consists of the request class we want to create, and block that can extract default parameters from an Alchemrest::Root. When we want to build an instance of the request, call ‘build_request` and pass in the root as context, with any additional parameters.
Defined Under Namespace
Classes: Builder
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #build_request(context, params = {}) ⇒ Object
-
#initialize(name, request_class, &block) ⇒ RequestDefinition
constructor
A new instance of RequestDefinition.
Constructor Details
#initialize(name, request_class, &block) ⇒ RequestDefinition
Returns a new instance of RequestDefinition.
10 11 12 13 14 |
# File 'lib/alchemrest/request_definition.rb', line 10 def initialize(name, request_class, &block) @name = name @request_class = request_class @builder_block = block end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
8 9 10 |
# File 'lib/alchemrest/request_definition.rb', line 8 def name @name end |
Instance Method Details
#build_request(context, params = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/alchemrest/request_definition.rb', line 16 def build_request(context, params = {}) builder = Builder.new if @builder_block context.instance_exec(builder, &@builder_block) end @request_class.new(**builder.defaults.merge(params)) end |