Class: Alchemrest::EndpointDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/alchemrest/endpoint_definition.rb

Instance Method Summary collapse

Constructor Details

#initialize(template:, http_method:, builder_block:) ⇒ EndpointDefinition

Returns a new instance of EndpointDefinition.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
# File 'lib/alchemrest/endpoint_definition.rb', line 10

def initialize(template:, http_method:, builder_block:)
  super
  raise ArgumentError, "template must be string" unless template.instance_of?(String)

  raise ArgumentError, "missing template" if template.empty?

  downcased_http_method = http_method.downcase
  raise ArgumentError, "must provide a valid HTTP method" unless VALID_HTTP_METHODS.include?(downcased_http_method)
end

Instance Method Details

#params_for(context) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/alchemrest/endpoint_definition.rb', line 24

def params_for(context)
  builder = build_for(context)
  if builder.params
    builder.params
  elsif builder.values || builder.query
    (builder.values || {}).merge(builder.query || {}).transform_values { |v| CGI.escape(v.to_s) }
  end
end

#url_for(context) ⇒ Object



20
21
22
# File 'lib/alchemrest/endpoint_definition.rb', line 20

def url_for(context)
  build_for(context).url
end