class NationBuilder::Method

Attributes

description[R]
http_method[R]
uri[R]

Public Class Methods

new(name, http_method, uri, description) click to toggle source
# File lib/nationbuilder/method.rb, line 5
def initialize(name, http_method, uri, description)
  @name = name
  @http_method = http_method.downcase.to_sym
  @uri = uri
  @description = description
  @name_to_parameter = {}
end

Public Instance Methods

method_args(args) click to toggle source
# File lib/nationbuilder/method.rb, line 32
def method_args(args)
  args.each_with_object({}) do |(k, v), a|
    a[k] = v if parameters.include?(k)
  end
end
name() click to toggle source
# File lib/nationbuilder/method.rb, line 21
def name
  @name.downcase.gsub(' ', '_').to_sym
end
nonmethod_args(args) click to toggle source
# File lib/nationbuilder/method.rb, line 38
def nonmethod_args(args)
  args.each_with_object({}) do |(k, v), a|
    a[k] = v unless parameters.include?(k)
  end
end
parameters() click to toggle source
# File lib/nationbuilder/method.rb, line 17
def parameters
  @name_to_parameter.keys
end
register_parameter(parameter) click to toggle source
# File lib/nationbuilder/method.rb, line 13
def register_parameter(parameter)
  @name_to_parameter[parameter.name] = parameter
end
validate_args(args) click to toggle source
# File lib/nationbuilder/method.rb, line 25
def validate_args(args)
  if Set.new(args.keys) != Set.new(parameters)
    raise ArgumentError
      .new("Required args: #{parameters.join(', ')}. Provided args: #{args.keys.join(', ')}")
  end
end