Project

rspreedly

0.04
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Ruby library for the Spreedly API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

>= 0.5.0
 Project Readme

RSpreedly¶ ↑

Ruby library to access the Spreedly API (all of it).

Why another one?¶ ↑

There are a few of these knocking about, but I couldn’t find one particular to my needs:

* Well covered with specs - currently 100% coverage
* Covers the entire API, not just parts of it
* Rubyish/ActiveRecord style access

Installation¶ ↑

It’s on Gemcutter, so as long as you’re setup to use that:

gem install rspreedly

Otherwise

gem install gemcutter
gem tumble
gem install rspreedly

Usage¶ ↑

Configure your API key and site name for your account:

RSpreedly::Config.setup do |config|
  config.api_key        = "your-api-key"
  config.site_name      = "your-site-name"
end

List subscribers

RSpreedly::Subscriber.find(:all).each do |subscriber|
  # do something
end

CRUD access to subscribers

sub = RSpreedly::Subscriber.new(:customer_id => 42, :email => "somewhere@example.com")
sub.token => nil
sub.save 
sub.token => "6af9994a57e420345897b1abb4c27a9db27fa4d0"

sub = RSpreedly::Subscriber.find(42)
sub.email = "new-email@example.com"
sub.save

sub = RSpreedly::Subscriber.find(69)
sub.destroy

Comp subscriptions

comp = RSpreedly::ComplimentarySubscription.new(:duration_quantity => 3, :duration_units => "months", :feature_level => "Pro")      
sub = RSpreedly::Subscriber.find(69)
sub.comp_subscription(comp)

View all plans

plans = RSpreedly::SubscriptionPlan.find(:all)

Raise an invoice, and pay it

invoice = RSpreedly::Invoice.new(:subscription_plan_id => 5, :subscriber => sub)
invoice.save

payment = RSpreedly::PaymentMethod::CreditCard.new(:card_type => 'visa', :number => '123456', ...)
invoice.pay(payment)

Error messages

invoice = RSpreedly::Invoice.new
invoice.save => false
invoice.errors => ["You must specify both the subscription plan id and subscriber information."]

See the specs and API docs at Spreedly for more details and the rest of the things it can do.

www.spreedly.com/manual/integration-reference/url-reference/

Todo¶ ↑

* Better specs for data we send to Spreedly.
* Better docs.

Thanks¶ ↑

I studied the other Spreedly APIs and there may well be a line or three this library has in common with:

* http://github.com/terralien/spreedly-gem
* http://github.com/erbmicha/spreedly/

Copyright © 2009 Richard Livsey. See LICENSE for details.