Sha256: 870cea4ff075bf15889903cb465b72457aa98c066758afbbc27e83b0ff775d19

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

require "pxfusion/version"
require "pxfusion/client"
require "pxfusion/transaction"

module PxFusion
  class << self
    attr_writer :endpoint,
                :form_endpoint,
                :username,
                :password,
                :default_currency,
                :logger,
                :logging
    attr_accessor :default_return_url

    [:username, :password].each do |required_attribute|
      define_method required_attribute do
        raise "#{required_attribute} must be set" if !instance_variable_get("@#{required_attribute}")
        instance_variable_get("@#{required_attribute}")
      end
    end

    def endpoint
      @endpoint ||= "https://sec.paymentexpress.com/pxf/pxf.svc"
    end

    def form_endpoint
      @form_endpoint ||= "https://sec.paymentexpress.com/pxmi3/pxfusionauth"
    end

    def default_currency
      @default_currency ||= "NZD"
    end

    def logger
      @logger ||= Logger.new(STDOUT) if logging
    end

    def logging
      @logging ||= false
    end

    def client
      @client ||= Client.new
    end

    def statuses
      {
        approved: 0,
        declined: 1,
        retry: 2,
        invalid_post: 3,
        unknown: 4,
        cancelled: 5,
        not_found: 6
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pxfusion-0.0.4 lib/pxfusion.rb