Sha256: fe188495cd4760df59246afff1dcb6adb469528d645c63f8c9ec333149c692f1

Contents?: true

Size: 1.87 KB

Versions: 1

Compression:

Stored size: 1.87 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), "balanced", "resources")
$:.unshift File.join(File.dirname(__FILE__), "balanced", "response")

require 'uri'
require 'balanced/version' unless defined? Balanced::VERSION
require 'balanced/client'
require 'balanced/utils'
require 'balanced/resources'
require 'balanced/error'

module Balanced

  @client = nil
  @config = {
      :scheme => 'https',
      :host => 'x.balancedpayments.com',
      :port => 443,
      :version => 'a0',
  }

  class << self

    attr_accessor :client
    attr_accessor :config

    def configure(api_key=nil, options={})
      @client = Balanced::Client.new(api_key, @config.merge(options))
    end

    def is_configured_with_api_key?
      !@client.api_key.nil?
    end

    def split_the_uri uri
      URI.parse(uri).path.sub(/\/$/, '').split('/')
    end

    def from_uri uri
      split_uri = split_the_uri(uri)
      # this is such an ugly hack, basically, we're trying to
      # see if we have the symbol that matches the capitalized
      #
      class_name = Balanced::Utils.classify(split_uri[-1])
      begin
        klass = Balanced.const_get class_name
      rescue NameError
        class_name = Utils.classify(split_uri[-2])
        klass = Balanced.const_get(class_name)
      end
      klass
    end

    def is_collection uri
      split_uri = split_the_uri(uri)
      class_name = Balanced::Utils.classify(split_uri[-1])
      begin
        Balanced.const_get class_name
      rescue NameError
        return false
      end
      true
    end

    def get(*args, &block)
      self.client.get *args
    end

    def post(*args, &block)
      self.client.post *args
    end

    def put(*args, &block)
      self.client.put *args
    end

    def delete(*args, &block)
      self.client.delete *args
    end
  end

  # configure on import so we don't have to configure for creating
  # an api key
  configure
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
balanced-ach-0.1 lib/balanced.rb