Class: Alchemrest::RequestDefinition

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#nameObject (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