Sha256: 2a87e91e07a0da8e7c89b5a6a8e24ce0a409641ce97de428e5b09be218b482d6

Contents?: true

Size: 904 Bytes

Versions: 1

Compression:

Stored size: 904 Bytes

Contents

require 'lotus/validations'
require 'sigiss/integration'

module Sigiss
  class Invoice
    include Lotus::Validations
    include Sigiss::Integration

    attr_accessor :gateway,
                  :provider,
                  :taker,
                  :data

    validates :gateway, type: Gateway, presence: true
    validates :provider, type: Provider, presence: true
    validates :taker, type: Taker
    validates :data, presence: true

    def initialize(attributes = {})
      @gateway = attributes[:gateway]
      @provider = attributes[:provider]
      @taker = attributes[:taker]
    end

    def build(method, params = {})
      case method
      when :issue
        @data = Sigiss::IssueData.new(params)
      when :fetch
        @data = Sigiss::FetchData.new(params)
      when :cancel
        @data = Sigiss::CancelData.new(params)
      else
        @data = {}
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sigiss-0.1.0 lib/sigiss/invoice.rb