class AtPay::Token::Core

Attributes

amount[RW]
email_address[RW]
expires[RW]
group[RW]
session[RW]
url[RW]
user_data[RW]
version[RW]

Public Class Methods

new(*args) click to toggle source
# File lib/atpay/token/core.rb, line 17
def initialize(*args)
  self.version            = nil
  self.expires_in_seconds = (86400*14)        # two weeks
  self.user_data          = OpenStruct.new
end

Public Instance Methods

auth_only!() click to toggle source
# File lib/atpay/token/core.rb, line 101
def auth_only!
  self.version = 2
end
billing_address=(billing_address) click to toggle source
# File lib/atpay/token/core.rb, line 80
def billing_address=(billing_address)
  self.user_data.billing_address = billing_address
end
capture!() click to toggle source
# File lib/atpay/token/core.rb, line 105
def capture!
  self.version = 0
end
custom_user_data=(str) click to toggle source
# File lib/atpay/token/core.rb, line 84
def custom_user_data=(str)
  self.user_data.custom_user_data = str
end
estimated_fulfillment_days=(days) click to toggle source
# File lib/atpay/token/core.rb, line 50
def estimated_fulfillment_days=(days)
  if days.to_i > 0
    self.auth_only!
  else
    self.capture!
  end

  self.user_data.fulfillment = days
end
expires_in_seconds=(seconds) click to toggle source
# File lib/atpay/token/core.rb, line 46
def expires_in_seconds=(seconds)
  self.expires = Time.now.to_i + seconds.to_i
end
item_details=(item_details) click to toggle source
# File lib/atpay/token/core.rb, line 88
def item_details=(item_details)
  self.user_data.item_details = item_details
end
item_quantity=(qty) click to toggle source
# File lib/atpay/token/core.rb, line 92
def item_quantity=(qty)
  self.user_data.quantity = qty
end
name() click to toggle source
# File lib/atpay/token/core.rb, line 37
def name
  self.user_data.name
end
name=(name) click to toggle source
# File lib/atpay/token/core.rb, line 33
def name=(name)
  self.user_data.name = name
end
register!() click to toggle source
# File lib/atpay/token/core.rb, line 109
def register!
  AtPay::Token::Registration.new(session, to_s)
end
request_custom_data!(name, options={}) click to toggle source
# File lib/atpay/token/core.rb, line 96
def request_custom_data!(name, options={})
  self.user_data.custom_fields ||= []
  self.user_data.custom_fields << { name: name, required: !!options[:required] }
end
requires_billing_address=(v) click to toggle source
# File lib/atpay/token/core.rb, line 76
def requires_billing_address=(v)
  v ? add_address_option('billing') : remove_address_option('billing')
end
requires_billing_address?() click to toggle source
# File lib/atpay/token/core.rb, line 72
def requires_billing_address?
  address_options.include?('billing')
end
requires_shipping_address=(v) click to toggle source
# File lib/atpay/token/core.rb, line 64
def requires_shipping_address=(v)
  v ? add_address_option('shipping') : remove_address_option('shipping')
end
requires_shipping_address?() click to toggle source
# File lib/atpay/token/core.rb, line 60
def requires_shipping_address?
  address_options.include?('shipping')
end
shipping_address=(shipping_address) click to toggle source
# File lib/atpay/token/core.rb, line 68
def shipping_address=(shipping_address)
  self.user_data.shipping_address = shipping_address
end
to_s() click to toggle source
# File lib/atpay/token/core.rb, line 113
def to_s
  AtPay::Token::Encoder.new(session, version, amount, email_address, expires, url, encoded_user_data, group).email
end
url=(url) click to toggle source
# File lib/atpay/token/core.rb, line 41
def url=(url)
  self.user_data.signup_url = url
  @url = url
end

Private Instance Methods

add_address_option(address_option) click to toggle source
# File lib/atpay/token/core.rb, line 129
def add_address_option(address_option)
  options = (address_options << address_option)
  self.user_data.address = options.uniq.join(',')
end
address_options() click to toggle source
# File lib/atpay/token/core.rb, line 118
def address_options
  self.user_data.address.split(',')
rescue
  []
end
encoded_user_data() click to toggle source
# File lib/atpay/token/core.rb, line 134
def encoded_user_data
  MultiJson.dump(user_data.to_h)
end
remove_address_option(address_option) click to toggle source
# File lib/atpay/token/core.rb, line 124
def remove_address_option(address_option)
  options = (address_options - [address_option])
  self.user_data.address = options.uniq.join(',')
end