class FastSpring::Subscription

Public Class Methods

create_subscription_url(reference, referrer) click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 6
def self.create_subscription_url(reference, referrer)
  "#{SITE_URL}/#{FastSpring::Account.fetch(:company)}/product/#{reference}?referrer=#{referrer}"
end

Public Instance Methods

active?() click to toggle source

Is the subscription active?

# File lib/fastspring-saasy/subscription.rb, line 33
def active?
  status == 'active'
end
base_subscription_path() click to toggle source

Returns the base path for a subscription

# File lib/fastspring-saasy/subscription.rb, line 23
def base_subscription_path
  "/company/#{@company}/subscription/#{@reference}"
end
cancel!()
Alias for: destroy
cancelable?() click to toggle source

Can the subscription be cancelled?

# File lib/fastspring-saasy/subscription.rb, line 38
def cancelable?
  value_for('cancelable') == 'true'
end
customer_url() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 74
def customer_url
  value_for('customerUrl')
end
destroy() click to toggle source

Cancel the subscription

# File lib/fastspring-saasy/subscription.rb, line 79
def destroy
  self.class.delete(base_subscription_path, :basic_auth => @auth)
end
Also aliased as: cancel!
ends_on() click to toggle source

The date the subscription ends on

# File lib/fastspring-saasy/subscription.rb, line 52
def ends_on
  Date.parse(value_for('end'))
end
find() click to toggle source

Get the subscription from Saasy

# File lib/fastspring-saasy/subscription.rb, line 11
def find
  @response = self.class.get(base_subscription_path, :basic_auth => @auth, :ssl_ca_file => @ssl_ca_file)
  self
end
next_period_date() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 47
def next_period_date
  Date.parse(value_for('nextPeriodDate'))
end
product_name() click to toggle source

Subscription product name

# File lib/fastspring-saasy/subscription.rb, line 43
def product_name
  value_for('productName')
end
quantity() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 56
def quantity
  value_for('quantity').to_i
end
renew() click to toggle source

Renew the subscription

# File lib/fastspring-saasy/subscription.rb, line 89
def renew
  self.class.post(renew_path, :basic_auth => @auth)
end
renew_path() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 84
def renew_path
  "#{base_subscription_path}/renew"
end
status_reason() click to toggle source

The reason for a status change

# File lib/fastspring-saasy/subscription.rb, line 28
def status_reason
  value_for('statusReason')
end
tags() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 60
def tags
  begin
    fs_tags = value_for('tags')
    result = {}
    fs_tags.split(",").each do |t|
       k,v = t.strip.split('=')
       result[k.to_sym] = v
    end
    result
  rescue
    nil
  end
end
update!(options={}) click to toggle source

Update the subscription from Saasy

# File lib/fastspring-saasy/subscription.rb, line 17
def update!(options={})
  @response = self.class.put(base_subscription_path, :body => Gyoku.xml(subscription: options), :headers => {'Content-Type' => 'application/xml'},:basic_auth => @auth)
  self
end

Private Instance Methods

parsed_response() click to toggle source
# File lib/fastspring-saasy/subscription.rb, line 95
def parsed_response
  @response.parsed_response['subscription']
end