class ExtendWarranties::Client

Public Class Methods

namespace(name) click to toggle source

Defines a method to access class instance.

# File lib/extend_warranties/client.rb, line 9
def self.namespace(name)
  converted = name.to_s.split('_').map(&:capitalize).join
  klass = ExtendWarranties::Api.const_get(converted)
  @namespaces << klass
end
new(args = {}) click to toggle source
# File lib/extend_warranties/client.rb, line 24
def initialize(args = {})
  @configuration = ExtendWarranties::Configuration.new(args)

  @connection = Faraday.new(url: @configuration.base_url) do |conn|
    conn.request :json
    conn.headers = @configuration.headers

    conn.response :json
    conn.response :logger

    conn.adapter  Faraday.default_adapter
  end

  create_instances
end

Private Instance Methods

create_instances() click to toggle source
# File lib/extend_warranties/client.rb, line 42
def create_instances
  namespaces = self.class.instance_variable_get(:@namespaces)
  namespaces.each do |klass|
    reader = klass.to_s.split('::').last.underscore
    self.class.send(:define_method, reader.to_sym) { klass.new @connection }
  end
end