bborn-simplepay 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +25 -0
- data/Manifest.txt +50 -0
- data/README.rdoc +127 -0
- data/Rakefile +25 -0
- data/lib/simplepay.rb +27 -0
- data/lib/simplepay/authentication.rb +41 -0
- data/lib/simplepay/constants.rb +64 -0
- data/lib/simplepay/errors.rb +16 -0
- data/lib/simplepay/helpers/form_helper.rb +29 -0
- data/lib/simplepay/helpers/notification_helper.rb +54 -0
- data/lib/simplepay/helpers/rails_helper.rb +40 -0
- data/lib/simplepay/rails.rb +9 -0
- data/lib/simplepay/service.rb +133 -0
- data/lib/simplepay/services/donation.rb +91 -0
- data/lib/simplepay/services/marketplace.rb +89 -0
- data/lib/simplepay/services/marketplace_policy.rb +54 -0
- data/lib/simplepay/services/standard.rb +58 -0
- data/lib/simplepay/services/subscription.rb +96 -0
- data/lib/simplepay/support.rb +16 -0
- data/lib/simplepay/support/amount.rb +55 -0
- data/lib/simplepay/support/billing_frequency.rb +14 -0
- data/lib/simplepay/support/boolean.rb +28 -0
- data/lib/simplepay/support/currency.rb +21 -0
- data/lib/simplepay/support/epoch.rb +39 -0
- data/lib/simplepay/support/field.rb +147 -0
- data/lib/simplepay/support/interval.rb +143 -0
- data/lib/simplepay/support/simple_amount.rb +37 -0
- data/lib/simplepay/support/subscription_period.rb +25 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/simplepay.gemspec +41 -0
- data/test/simplepay/helpers/test_notifier.rb +32 -0
- data/test/simplepay/services/test_donation.rb +85 -0
- data/test/simplepay/services/test_marketplace.rb +85 -0
- data/test/simplepay/services/test_marketplace_policy.rb +52 -0
- data/test/simplepay/services/test_standard.rb +71 -0
- data/test/simplepay/services/test_subscription.rb +109 -0
- data/test/simplepay/support/test_amount.rb +46 -0
- data/test/simplepay/support/test_billing_frequency.rb +43 -0
- data/test/simplepay/support/test_boolean.rb +17 -0
- data/test/simplepay/support/test_epoch.rb +34 -0
- data/test/simplepay/support/test_field.rb +99 -0
- data/test/simplepay/support/test_interval.rb +92 -0
- data/test/simplepay/support/test_simple_amount.rb +28 -0
- data/test/simplepay/support/test_subscription_period.rb +49 -0
- data/test/simplepay/test_authentication.rb +25 -0
- data/test/simplepay/test_service.rb +118 -0
- data/test/test_helper.rb +87 -0
- data/test/test_simplepay.rb +11 -0
- metadata +184 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
+
require 'simplepay/support/simple_amount'
|
3
|
+
|
4
|
+
class Simplepay::Support::TestSimpleAmount < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context 'Simplepay::Support::SimpleAmount' do
|
7
|
+
|
8
|
+
should 'convert to Amazon formatted string' do
|
9
|
+
assert_equal '5.00', new_amount(5).to_s
|
10
|
+
assert_equal '6.10', new_amount(6.1).to_s
|
11
|
+
assert_equal '5.25', new_amount(5.25).to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
should 'raise an error for negative amounts' do
|
15
|
+
assert_raise(ArgumentError) { new_amount(-1) }
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
|
24
|
+
def new_amount(amount)
|
25
|
+
Simplepay::Support::SimpleAmount.new(amount)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
+
require 'simplepay/support/subscription_period'
|
3
|
+
|
4
|
+
class Simplepay::Support::TestSubscriptionPeriod < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context 'Simplepay::Support::SubscriptionPeriod' do
|
7
|
+
|
8
|
+
setup do
|
9
|
+
@interval = Simplepay::Support::SubscriptionPeriod.new
|
10
|
+
end
|
11
|
+
|
12
|
+
should 'not set default values' do
|
13
|
+
assert_nil @interval.interval
|
14
|
+
assert_nil @interval.quantity
|
15
|
+
end
|
16
|
+
|
17
|
+
should 'only allow defined intervals' do
|
18
|
+
intervals = ['day', 'week', 'month', 'year', 'forever']
|
19
|
+
added = @interval.class.allowed_intervals - intervals
|
20
|
+
missed = intervals - @interval.class.allowed_intervals
|
21
|
+
assert added.empty?, "#{@interval.class.name} defines unexpected intervals: #{added.inspect}"
|
22
|
+
assert missed.empty?, "#{@interval.class.name} failed to define expected intervals: #{missed.inspect}"
|
23
|
+
end
|
24
|
+
|
25
|
+
should 'limit quantities to three digits' do
|
26
|
+
assert_nothing_raised(ArgumentError) { @interval.quantity = 999 }
|
27
|
+
assert_raise(ArgumentError) { @interval.quantity = 1000 }
|
28
|
+
end
|
29
|
+
|
30
|
+
should 'disallow 0 quantity' do
|
31
|
+
assert_raise(ArgumentError) { @interval.quantity = 0 }
|
32
|
+
end
|
33
|
+
|
34
|
+
should 'disallow negative quantities' do
|
35
|
+
assert_raise(ArgumentError) { @interval.quantity = -1 }
|
36
|
+
end
|
37
|
+
|
38
|
+
should 'convert to String' do
|
39
|
+
assert_equal '5 year', @interval.class.new(5, 'year').to_s
|
40
|
+
end
|
41
|
+
|
42
|
+
should 'return nil when converted to string with FOREVER interval' do
|
43
|
+
@interval.interval = 'forever'
|
44
|
+
assert_nil @interval.to_s
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'simplepay/authentication'
|
3
|
+
|
4
|
+
class Simplepay::TestAuthentication < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context 'Simplepay::Authentication' do
|
7
|
+
|
8
|
+
setup do
|
9
|
+
@uri = URI.parse('https://authorize.payments-sandbox.amazon.com/pba/pipeline')
|
10
|
+
@secret_key = "TESTINGKEY"
|
11
|
+
@signature = 'Ni8YGsrFZmAJwQN8mCZvTqOlPuNiNCzoi4LqyQS4ums='
|
12
|
+
@data = {
|
13
|
+
:symbol => 'string',
|
14
|
+
'string' => 1,
|
15
|
+
2 => :symbol
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
should 'compute an Amazon signature for hash data' do
|
20
|
+
assert_equal @signature, Simplepay::Signature.new(@uri, @data, @secret_key).sign
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'rexml/document'
|
3
|
+
require 'simplepay/service'
|
4
|
+
|
5
|
+
class TestService < Simplepay::Service
|
6
|
+
ENDPOINT_URL = 'http://test.host.url/api'
|
7
|
+
SANDBOX_URL = 'http://test.host.url/sandbox'
|
8
|
+
|
9
|
+
set_submit_tag 'testing'
|
10
|
+
|
11
|
+
field :field_1
|
12
|
+
field :field_2
|
13
|
+
required_field :required
|
14
|
+
required_field :required2, :value => 'preset'
|
15
|
+
end
|
16
|
+
|
17
|
+
class Simplepay::TestService < Test::Unit::TestCase
|
18
|
+
|
19
|
+
context 'Simplepay::Service' do
|
20
|
+
|
21
|
+
setup do
|
22
|
+
@service = ::TestService.new
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'class' do
|
26
|
+
|
27
|
+
setup do
|
28
|
+
@class = @service.class
|
29
|
+
end
|
30
|
+
|
31
|
+
should 'contain the defined fields' do
|
32
|
+
fields = @class.fields
|
33
|
+
assert_not_nil fields
|
34
|
+
assert !fields.empty?
|
35
|
+
end
|
36
|
+
|
37
|
+
should 'contain required field(s)' do
|
38
|
+
fields = @class.fields.select { |f| f.required? }
|
39
|
+
assert fields.size > 0
|
40
|
+
end
|
41
|
+
|
42
|
+
should 'have different field instances than its service instance' do
|
43
|
+
class_fields, instance_fields = @class.fields, @service.fields
|
44
|
+
instance_fields.each do |instance_field|
|
45
|
+
assert !class_fields.include?(instance_field)
|
46
|
+
assert class_fields.any? {|f| instance_field.service_name == f.service_name }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
should 'return a collection of fields' do
|
53
|
+
assert !@service.fields.empty?
|
54
|
+
assert @service.fields.all? { |f| f.kind_of?(Simplepay::Support::Field) }
|
55
|
+
end
|
56
|
+
|
57
|
+
should 'use the live endpoint url' do
|
58
|
+
assert_equal TestService::ENDPOINT_URL, @service.url(false)
|
59
|
+
end
|
60
|
+
|
61
|
+
should 'use the sandbox url' do
|
62
|
+
assert_equal TestService::SANDBOX_URL, @service.url(true)
|
63
|
+
end
|
64
|
+
|
65
|
+
should 'generate an HTML FORM' do
|
66
|
+
@service.required = 'set'
|
67
|
+
assert_match(/\A<form/i, @service.form)
|
68
|
+
assert_match(/<\/form>\Z/i, @service.form)
|
69
|
+
end
|
70
|
+
|
71
|
+
should 'post the form to the endpoint' do
|
72
|
+
assert_match(/<form action="#{Regexp.escape('http://test.host.url/sandbox')}" method="post"/, @service.form({:required => 'set'}))
|
73
|
+
end
|
74
|
+
|
75
|
+
should 'generate HIDDEN HTML INPUTs for each non-empty field' do
|
76
|
+
@service.required = 'Test Field'
|
77
|
+
@service.field_1 = 'Testing'
|
78
|
+
|
79
|
+
defined_fields = @service.fields.select { |f| !f.value.blank? }
|
80
|
+
assert defined_fields.size > 0, "This test cannot be run without defined fields"
|
81
|
+
document = REXML::Document.new(@service.form)
|
82
|
+
form_inputs = []
|
83
|
+
document.root.each_element("//input[@type='hidden']") do |e|
|
84
|
+
field = defined_fields.detect { |f| f.service_name == e.attributes['name'] }
|
85
|
+
assert field, "#{e} unrecognized"
|
86
|
+
form_inputs << e
|
87
|
+
end
|
88
|
+
assert_equal defined_fields.size, form_inputs.size
|
89
|
+
end
|
90
|
+
|
91
|
+
should 'allow fields to be set through hash' do
|
92
|
+
assert_nothing_raised(Simplepay::RequiredFieldMissing) do
|
93
|
+
TestService.new.form({:required => 'covered'})
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
should 'raise an error for undefined required fields' do
|
98
|
+
assert_raise(Simplepay::RequiredFieldMissing) { @service.form }
|
99
|
+
end
|
100
|
+
|
101
|
+
should 'default to a basic HTML SUBMIT button' do
|
102
|
+
document = REXML::Document.new(@service.form({:required => 'set'}))
|
103
|
+
assert_not_nil document.root.elements["input[@type='submit']"]
|
104
|
+
end
|
105
|
+
|
106
|
+
should 'allow class definition of the default submit text' do
|
107
|
+
document = REXML::Document.new(@service.form({:required => 'set'}))
|
108
|
+
assert_not_nil document.root.elements["input[@type='submit' and @value='testing']"]
|
109
|
+
end
|
110
|
+
|
111
|
+
should 'allow the HTML SUBMIT button to be overridden' do
|
112
|
+
document = REXML::Document.new(@service.form({:required => 'set'}, Simplepay::Helpers::FormHelper.tag(:input, {:type => 'submit', :value => 'Send It'})))
|
113
|
+
assert_not_nil document.root.elements["input[@type='submit' and @value='Send It']"]
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'redgreen' rescue nil
|
6
|
+
|
7
|
+
require 'shoulda'
|
8
|
+
require 'mocha'
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + '/../lib/simplepay'
|
11
|
+
|
12
|
+
|
13
|
+
module Simplepay #:nodoc:
|
14
|
+
module Macros #:nodoc: all
|
15
|
+
|
16
|
+
def should_not_have_service_field(*names)
|
17
|
+
klass = model_class
|
18
|
+
|
19
|
+
names.each do |name|
|
20
|
+
should "not have a field named #{name.inspect}" do
|
21
|
+
assert !klass.fields.any? { |f| f.name == name }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def should_have_service_field(*names)
|
27
|
+
delegate_class, service_name, required = get_options!(names, :class, :as, :required)
|
28
|
+
klass = model_class
|
29
|
+
|
30
|
+
names.each do |name|
|
31
|
+
should "have a field named #{name.inspect}" do
|
32
|
+
message = "#{klass} does not have a Field named #{name.inspect}"
|
33
|
+
assert klass.fields.any? { |f| f.name == name }, message
|
34
|
+
end
|
35
|
+
|
36
|
+
context "#{name} field" do
|
37
|
+
should("delegate to #{delegate_class}") do
|
38
|
+
message = "#{klass} field #{name.inspect} failed to delegate to #{delegate_class}"
|
39
|
+
field = klass.fields.detect { |f| f.name == name }
|
40
|
+
assert_equal delegate_class, field.delegate, message
|
41
|
+
end if delegate_class
|
42
|
+
|
43
|
+
should("not delegate") do
|
44
|
+
field = klass.fields.detect { |f| f.name == name }
|
45
|
+
message = "#{klass} field #{name.inspect} unexpectedly delegated to #{field.delegate}"
|
46
|
+
assert !field.delegated?, message
|
47
|
+
end unless delegate_class
|
48
|
+
|
49
|
+
should("have a #{service_name} service name") do
|
50
|
+
message = "#{klass} field #{name.inspect} failed to have expected service name"
|
51
|
+
field = klass.fields.detect { |f| f.name == name }
|
52
|
+
assert_equal service_name, field.service_name
|
53
|
+
end if service_name
|
54
|
+
|
55
|
+
should("#{"not " unless required}be required") do
|
56
|
+
message = "#{klass} field #{name.inspect} was#{" not" if required} required"
|
57
|
+
field = klass.fields.detect { |f| f.name == name }
|
58
|
+
assert_equal required, field.required?, message
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end unless method_defined?(:should_have_service_field)
|
63
|
+
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
|
68
|
+
# Returns the values for the entries in the args hash who's keys are listed in the wanted array.
|
69
|
+
# Will raise if there are keys in the args hash that aren't listed.
|
70
|
+
def get_options!(args, *wanted)
|
71
|
+
ret = []
|
72
|
+
opts = (args.last.is_a?(Hash) ? args.pop : {})
|
73
|
+
wanted.each {|w| ret << opts.delete(w)}
|
74
|
+
raise ArgumentError, "Unsupported options given: #{opts.keys.join(', ')}" unless opts.keys.empty?
|
75
|
+
return *ret
|
76
|
+
end unless defined?(:get_options!)
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
module Test #:nodoc: all
|
82
|
+
module Unit
|
83
|
+
class TestCase
|
84
|
+
extend Simplepay::Macros
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
metadata
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bborn-simplepay
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Nathaniel E. Bibler
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2009-06-07 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: activesupport
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 11
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
- 2
|
34
|
+
version: 2.0.2
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: newgem
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 27
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 3
|
49
|
+
- 0
|
50
|
+
version: 1.3.0
|
51
|
+
type: :development
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: hoe
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 55
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 8
|
65
|
+
- 0
|
66
|
+
version: 1.8.0
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
description: This gem provides a Rails interface to the Amazon Simple Pay payment service.
|
70
|
+
email:
|
71
|
+
- gem@nathanielbibler.com
|
72
|
+
executables: []
|
73
|
+
|
74
|
+
extensions: []
|
75
|
+
|
76
|
+
extra_rdoc_files:
|
77
|
+
- History.txt
|
78
|
+
- Manifest.txt
|
79
|
+
- README.rdoc
|
80
|
+
files:
|
81
|
+
- History.txt
|
82
|
+
- Manifest.txt
|
83
|
+
- README.rdoc
|
84
|
+
- Rakefile
|
85
|
+
- lib/simplepay.rb
|
86
|
+
- lib/simplepay/authentication.rb
|
87
|
+
- lib/simplepay/constants.rb
|
88
|
+
- lib/simplepay/errors.rb
|
89
|
+
- lib/simplepay/helpers/form_helper.rb
|
90
|
+
- lib/simplepay/helpers/notification_helper.rb
|
91
|
+
- lib/simplepay/helpers/rails_helper.rb
|
92
|
+
- lib/simplepay/rails.rb
|
93
|
+
- lib/simplepay/service.rb
|
94
|
+
- lib/simplepay/services/donation.rb
|
95
|
+
- lib/simplepay/services/marketplace.rb
|
96
|
+
- lib/simplepay/services/marketplace_policy.rb
|
97
|
+
- lib/simplepay/services/standard.rb
|
98
|
+
- lib/simplepay/services/subscription.rb
|
99
|
+
- lib/simplepay/support.rb
|
100
|
+
- lib/simplepay/support/amount.rb
|
101
|
+
- lib/simplepay/support/billing_frequency.rb
|
102
|
+
- lib/simplepay/support/boolean.rb
|
103
|
+
- lib/simplepay/support/currency.rb
|
104
|
+
- lib/simplepay/support/epoch.rb
|
105
|
+
- lib/simplepay/support/field.rb
|
106
|
+
- lib/simplepay/support/interval.rb
|
107
|
+
- lib/simplepay/support/simple_amount.rb
|
108
|
+
- lib/simplepay/support/subscription_period.rb
|
109
|
+
- script/console
|
110
|
+
- script/destroy
|
111
|
+
- script/generate
|
112
|
+
- simplepay.gemspec
|
113
|
+
- test/simplepay/helpers/test_notifier.rb
|
114
|
+
- test/simplepay/services/test_donation.rb
|
115
|
+
- test/simplepay/services/test_marketplace.rb
|
116
|
+
- test/simplepay/services/test_marketplace_policy.rb
|
117
|
+
- test/simplepay/services/test_standard.rb
|
118
|
+
- test/simplepay/services/test_subscription.rb
|
119
|
+
- test/simplepay/support/test_amount.rb
|
120
|
+
- test/simplepay/support/test_billing_frequency.rb
|
121
|
+
- test/simplepay/support/test_boolean.rb
|
122
|
+
- test/simplepay/support/test_epoch.rb
|
123
|
+
- test/simplepay/support/test_field.rb
|
124
|
+
- test/simplepay/support/test_interval.rb
|
125
|
+
- test/simplepay/support/test_subscription_period.rb
|
126
|
+
- test/simplepay/test_authentication.rb
|
127
|
+
- test/simplepay/test_service.rb
|
128
|
+
- test/test_helper.rb
|
129
|
+
- test/test_simplepay.rb
|
130
|
+
- test/simplepay/support/test_simple_amount.rb
|
131
|
+
has_rdoc: true
|
132
|
+
homepage: http://simplepay.rubyforge.org
|
133
|
+
licenses: []
|
134
|
+
|
135
|
+
post_install_message:
|
136
|
+
rdoc_options:
|
137
|
+
- --main
|
138
|
+
- README.rdoc
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
hash: 3
|
147
|
+
segments:
|
148
|
+
- 0
|
149
|
+
version: "0"
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
156
|
+
segments:
|
157
|
+
- 0
|
158
|
+
version: "0"
|
159
|
+
requirements: []
|
160
|
+
|
161
|
+
rubyforge_project: simplepay
|
162
|
+
rubygems_version: 1.3.7
|
163
|
+
signing_key:
|
164
|
+
specification_version: 3
|
165
|
+
summary: This gem provides a Rails interface to the Amazon Simple Pay payment service.
|
166
|
+
test_files:
|
167
|
+
- test/simplepay/helpers/test_notifier.rb
|
168
|
+
- test/simplepay/services/test_donation.rb
|
169
|
+
- test/simplepay/services/test_marketplace.rb
|
170
|
+
- test/simplepay/services/test_marketplace_policy.rb
|
171
|
+
- test/simplepay/services/test_standard.rb
|
172
|
+
- test/simplepay/services/test_subscription.rb
|
173
|
+
- test/simplepay/support/test_amount.rb
|
174
|
+
- test/simplepay/support/test_billing_frequency.rb
|
175
|
+
- test/simplepay/support/test_boolean.rb
|
176
|
+
- test/simplepay/support/test_epoch.rb
|
177
|
+
- test/simplepay/support/test_field.rb
|
178
|
+
- test/simplepay/support/test_interval.rb
|
179
|
+
- test/simplepay/support/test_simple_amount.rb
|
180
|
+
- test/simplepay/support/test_subscription_period.rb
|
181
|
+
- test/simplepay/test_authentication.rb
|
182
|
+
- test/simplepay/test_service.rb
|
183
|
+
- test/test_helper.rb
|
184
|
+
- test/test_simplepay.rb
|