Sha256: d588af729a87859beea16eb5444b3fa46ac4999fba4eb402c63af4ae186e2fc1

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'httparty'

module Namecheap
  SANDBOX = 'https://api.sandbox.namecheap.com/xml.response'
  PRODUCTION = 'https://api.namecheap.com/xml.response'
  class Api
    attr_reader :username, :key, :client_ip
    def initialize(options = {})
      config_file = options[:config_file] || "#{File.dirname(__FILE__)}/../config/namecheap.yml"
      environment = options[:environment] || ENV['RACK_ENV'] || 'development'
      config = options[:config_file] || YAML.load_file(config_file)[environment].symbolize_keys!
      @key = options[:key] || config[:key]
      @username = options[:username] || config[:username]
      @client_ip = options[:client_ip] || config[:client_ip]
      @endpoint = (environment == 'production' ? PRODUCTION : SANDBOX)
    end

    protected

    def api_call(command, command_args)
      args = {}
      args['ApiUser'] = args['UserName'] = @username
      args['ApiKey'] = @key
      args['ClientIp'] = @client_ip
      args['Command'] = command
      query = @endpoint + '?' + args.to_param
      HTTParty.get(query)
    end
  end
end

$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/namecheap")
Dir.glob("#{File.dirname(__FILE__)}/namecheap/*.rb") { |lib| require File.basename(lib, '.*') }

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
namecheap-0.0.2 lib/namecheap.rb