class DynApiGen::Request

Public Class Methods

new(**kwargs) click to toggle source
# File lib/dyn_api_gen/request.rb, line 5
def initialize(**kwargs)
  @name, @verb, @path, @parameters =
    kwargs.fetch_values(:name, :verb, :path, :parameters)

  @with_params = {}
  @with_headers = {}

  create_with_methods!
  fill_default_headers
  fill_default_params
end

Public Instance Methods

with_headers(new_headers) click to toggle source

Setthe headers to be used. It merges whatever is defined

# File lib/dyn_api_gen/request.rb, line 18
def with_headers(new_headers)
  @with_headers.merge!(new_headers)
  self
end

Private Instance Methods

create_with_methods!() click to toggle source

This method will generate the `with_*` instance methods dynamically, to set the params needed by this request.

# File lib/dyn_api_gen/request.rb, line 27
def create_with_methods!
  @parameters.reject(&:header?).each do |parameter|
    self.class.define_method(:"with_#{parameter.to_method_name}") do |value|
      @with_params[parameter.name] = value
      self
    end
  end
end
fill_default_headers() click to toggle source
# File lib/dyn_api_gen/request.rb, line 36
def fill_default_headers
  @parameters.select { |p| p.header? && p.default }.each do |parameter|
    @with_headers[parameter.name] = parameter.default
  end
end
fill_default_params() click to toggle source
# File lib/dyn_api_gen/request.rb, line 42
def fill_default_params
  @parameters.select { |p| !p.header? && p.default }.each do |parameter|
    @with_params[parameter.name] = parameter.default
  end
end