module PaylineSDK

Constants

VERSION

Attributes

configuration[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/payline_sdk.rb, line 17
def self.configure
  self.configuration ||= Configuration.new
  self.define_objects
  yield(configuration)
end
root() click to toggle source
# File lib/payline_sdk.rb, line 23
def self.root
  File.expand_path '../..', __FILE__
end

Private Class Methods

define_objects() click to toggle source
# File lib/payline_sdk.rb, line 29
def self.define_objects
  PaylineSDK::Configuration::API[:objects].keys.each do |key|
    attributes = PaylineSDK::Configuration::API[:objects][key][:attributes].map {|attr| attr[:name]}
    klass = Class.new(PaylineSDK::Object::Base) do
      attributes.each do |attribute|
        define_method attribute.to_sym do
          instance_variable_get("@#{attribute}")
        end
        define_method "#{attribute}=".to_sym do |arg|
          instance_variable_set("@#{attribute}", arg)
        end
      end

      define_method :to_h do
        Hash[attributes.zip(attributes.map {|attr| eval("@#{attr}")})]
      end
    end
    PaylineSDK::Object.const_set(key.to_s.camelize, klass)
  end
end