killbill-bitpay 0.0.1

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.
@@ -0,0 +1,80 @@
1
+ # -- encoding : utf-8 --
2
+
3
+ set :views, File.expand_path(File.dirname(__FILE__) + '/views')
4
+
5
+ include Killbill::Plugin::ActiveMerchant::Sinatra
6
+
7
+ configure do
8
+ # Usage: rackup -Ilib -E test
9
+ if development? or test?
10
+ # Make sure the plugin is initialized
11
+ plugin = ::Killbill::Bitpay::PaymentPlugin.new
12
+ plugin.logger = Logger.new(STDOUT)
13
+ plugin.logger.level = Logger::INFO
14
+ plugin.conf_dir = File.dirname(File.dirname(__FILE__)) + '/..'
15
+ plugin.start_plugin
16
+ end
17
+ end
18
+
19
+ helpers do
20
+ def plugin(session = {})
21
+ ::Killbill::Bitpay::PrivatePaymentPlugin.new(session)
22
+ end
23
+ end
24
+
25
+ # curl -v http://127.0.0.1:9292/plugins/killbill-bitpay/form
26
+ get '/plugins/killbill-bitpay/form', :provides => 'html' do
27
+ order_id = request.GET['order_id']
28
+ account_id = request.GET['account_id']
29
+ options = {
30
+ :amount => request.GET['amount'],
31
+ :currency => request.GET['currency'],
32
+ :test => request.GET['test'],
33
+ :credential2 => request.GET['credential2'],
34
+ :credential3 => request.GET['credential3'],
35
+ :credential4 => request.GET['credential4'],
36
+ :country => request.GET['country'],
37
+ :account_name => request.GET['account_name'],
38
+ :transaction_type => request.GET['transaction_type'],
39
+ :authcode => request.GET['authcode'],
40
+ :notify_url => request.GET['notify_url'],
41
+ :return_url => request.GET['return_url'],
42
+ :redirect_param => request.GET['redirect_param'],
43
+ :forward_url => request.GET['forward_url']
44
+ }
45
+
46
+ @form = plugin(session).payment_form_for(order_id, account_id, :bitpay, options) do |service|
47
+ # Add your custom hidden tags here, e.g.
48
+ #service.token = config[:bitpay][:token]
49
+ submit_tag 'Submit'
50
+ end
51
+
52
+ erb :form
53
+ end
54
+
55
+ # curl -v http://127.0.0.1:9292/plugins/killbill-bitpay/1.0/pms/1
56
+ get '/plugins/killbill-bitpay/1.0/pms/:id', :provides => 'json' do
57
+ if pm = ::Killbill::Bitpay::BitpayPaymentMethod.find_by_id(params[:id].to_i)
58
+ pm.to_json
59
+ else
60
+ status 404
61
+ end
62
+ end
63
+
64
+ # curl -v http://127.0.0.1:9292/plugins/killbill-bitpay/1.0/transactions/1
65
+ get '/plugins/killbill-bitpay/1.0/transactions/:id', :provides => 'json' do
66
+ if transaction = ::Killbill::Bitpay::BitpayTransaction.find_by_id(params[:id].to_i)
67
+ transaction.to_json
68
+ else
69
+ status 404
70
+ end
71
+ end
72
+
73
+ # curl -v http://127.0.0.1:9292/plugins/killbill-bitpay/1.0/responses/1
74
+ get '/plugins/killbill-bitpay/1.0/responses/:id', :provides => 'json' do
75
+ if transaction = ::Killbill::Bitpay::BitpayResponse.find_by_id(params[:id].to_i)
76
+ transaction.to_json
77
+ else
78
+ status 404
79
+ end
80
+ end
@@ -0,0 +1,23 @@
1
+ module Killbill #:nodoc:
2
+ module Bitpay #:nodoc:
3
+ class BitpayPaymentMethod < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::PaymentMethod
4
+
5
+ self.table_name = 'bitpay_payment_methods'
6
+
7
+ def self.from_response(kb_account_id, kb_payment_method_id, kb_tenant_id, cc_or_token, response, options, extra_params = {}, model = ::Killbill::Bitpay::BitpayPaymentMethod)
8
+ super(kb_account_id,
9
+ kb_payment_method_id,
10
+ kb_tenant_id,
11
+ cc_or_token,
12
+ response,
13
+ options,
14
+ {
15
+ # Pass custom key/values here
16
+ #:params_id => extract(response, 'id'),
17
+ #:params_card_id => extract(response, 'card', 'id')
18
+ }.merge!(extra_params),
19
+ model)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ module Killbill #:nodoc:
2
+ module Bitpay #:nodoc:
3
+ class BitpayResponse < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::Response
4
+
5
+ self.table_name = 'bitpay_responses'
6
+
7
+ has_one :bitpay_transaction
8
+
9
+ def self.from_response(api_call, kb_account_id, kb_payment_id, kb_payment_transaction_id, transaction_type, payment_processor_account_id, kb_tenant_id, response, extra_params = {}, model = ::Killbill::Bitpay::BitpayResponse)
10
+ super(api_call,
11
+ kb_account_id,
12
+ kb_payment_id,
13
+ kb_payment_transaction_id,
14
+ transaction_type,
15
+ payment_processor_account_id,
16
+ kb_tenant_id,
17
+ response,
18
+ {
19
+ # Pass custom key/values here
20
+ #:params_id => extract(response, 'id'),
21
+ #:params_card_id => extract(response, 'card', 'id')
22
+ }.merge!(extra_params),
23
+ model)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ module Killbill #:nodoc:
2
+ module Bitpay #:nodoc:
3
+ class BitpayTransaction < ::Killbill::Plugin::ActiveMerchant::ActiveRecord::Transaction
4
+
5
+ self.table_name = 'bitpay_transactions'
6
+
7
+ belongs_to :bitpay_response
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module Killbill #:nodoc:
2
+ module Bitpay #:nodoc:
3
+ class PrivatePaymentPlugin < ::Killbill::Plugin::ActiveMerchant::PrivatePaymentPlugin
4
+ def initialize(session = {})
5
+ super(:bitpay,
6
+ ::Killbill::Bitpay::BitpayPaymentMethod,
7
+ ::Killbill::Bitpay::BitpayTransaction,
8
+ ::Killbill::Bitpay::BitpayResponse,
9
+ session)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+
5
+ <%= @form %>
6
+
7
+ </body>
8
+ </html>
data/pom.xml ADDED
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ ~ Copyright 2014 The Billing Project, LLC
4
+ ~
5
+ ~ The Billing Project licenses this file to you under the Apache License, version 2.0
6
+ ~ (the "License"); you may not use this file except in compliance with the
7
+ ~ License. You may obtain a copy of the License at:
8
+ ~
9
+ ~ http://www.apache.org/licenses/LICENSE-2.0
10
+ ~
11
+ ~ Unless required by applicable law or agreed to in writing, software
12
+ ~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ ~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
+ ~ License for the specific language governing permissions and limitations
15
+ ~ under the License.
16
+ -->
17
+
18
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
19
+ <parent>
20
+ <groupId>org.sonatype.oss</groupId>
21
+ <artifactId>oss-parent</artifactId>
22
+ <version>5</version>
23
+ </parent>
24
+ <modelVersion>4.0.0</modelVersion>
25
+ <groupId>org.kill-bill.billing.plugin.ruby</groupId>
26
+ <artifactId>bitpay-plugin</artifactId>
27
+ <packaging>pom</packaging>
28
+ <version>0.0.1</version>
29
+ <name>bitpay-plugin</name>
30
+ <url>http://github.com/killbill/killbill-bitpay-plugin</url>
31
+ <description>Plugin for accessing Bitpay as a payment gateway</description>
32
+ <licenses>
33
+ <license>
34
+ <name>Apache License 2.0</name>
35
+ <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
36
+ <distribution>repo</distribution>
37
+ </license>
38
+ </licenses>
39
+ <scm>
40
+ <connection>scm:git:git://github.com/killbill/killbill-bitpay-plugin.git</connection>
41
+ <url>https://github.com/killbill/killbill-bitpay-plugin/</url>
42
+ <developerConnection>scm:git:git@github.com:killbill/killbill-bitpay-plugin.git</developerConnection>
43
+ </scm>
44
+ </project>
@@ -0,0 +1,41 @@
1
+ set -e
2
+
3
+ if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
4
+ echo 'Unable to release: make sure to use GNU tar'
5
+ exit 1
6
+ fi
7
+
8
+ if $(ruby -e'require "java"'); then
9
+ # Good
10
+ echo 'Detected JRuby'
11
+ else
12
+ echo 'Unable to release: make sure to use JRuby'
13
+ exit 1
14
+ fi
15
+
16
+ VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
17
+ if [ "$VERSION" != "$(cat $PWD/VERSION)" ]; then
18
+ echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
19
+ exit 1
20
+ fi
21
+
22
+ echo 'Cleaning up'
23
+ rake killbill:clean ; rake build
24
+
25
+ echo 'Pushing the gem to Rubygems'
26
+ rake release
27
+
28
+ echo 'Building artifact'
29
+ rake killbill:package
30
+
31
+ ARTIFACT="$PWD/pkg/killbill-bitpay-$VERSION.tar.gz"
32
+ echo "Pushing $ARTIFACT to Maven Central"
33
+ mvn gpg:sign-and-deploy-file \
34
+ -DgroupId=org.kill-bill.billing.plugin.ruby \
35
+ -DartifactId=bitpay-plugin \
36
+ -Dversion=$VERSION \
37
+ -Dpackaging=tar.gz \
38
+ -DrepositoryId=ossrh-releases \
39
+ -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ \
40
+ -Dfile=$ARTIFACT \
41
+ -DpomFile=pom.xml
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe Killbill::Bitpay::PaymentPlugin do
4
+ before(:each) do
5
+ Dir.mktmpdir do |dir|
6
+ file = File.new(File.join(dir, 'bitpay.yml'), "w+")
7
+ file.write(<<-eos)
8
+ :bitpay:
9
+ :test: true
10
+ # As defined by spec_helper.rb
11
+ :database:
12
+ :adapter: 'sqlite3'
13
+ :database: 'test.db'
14
+ eos
15
+ file.close
16
+
17
+ @plugin = Killbill::Bitpay::PaymentPlugin.new
18
+ @plugin.logger = Logger.new(STDOUT)
19
+ @plugin.logger.level = Logger::INFO
20
+ @plugin.conf_dir = File.dirname(file)
21
+ @plugin.kb_apis = Killbill::Plugin::KillbillApi.new('bitpay', {})
22
+
23
+ # Start the plugin here - since the config file will be deleted
24
+ @plugin.start_plugin
25
+ end
26
+ end
27
+
28
+ it 'should start and stop correctly' do
29
+ @plugin.stop_plugin
30
+ end
31
+
32
+ it 'should generate forms correctly' do
33
+ kb_account_id = SecureRandom.uuid
34
+ kb_tenant_id = SecureRandom.uuid
35
+ context = @plugin.kb_apis.create_context(kb_tenant_id)
36
+ fields = @plugin.hash_to_properties({
37
+ :order_id => '1234',
38
+ :amount => 10
39
+ })
40
+ form = @plugin.build_form_descriptor kb_account_id, fields, [], context
41
+
42
+ form.kb_account_id.should == kb_account_id
43
+ form.form_method.should == 'GET'
44
+ form.form_url.should == 'https://bitpay.com/invoice'
45
+
46
+ form_fields = @plugin.properties_to_hash(form.form_fields)
47
+ form_fields.has_key?(:id).should be_true
48
+ end
49
+
50
+ it 'should receive notifications correctly' do
51
+ description = 'description'
52
+
53
+ kb_tenant_id = SecureRandom.uuid
54
+ context = @plugin.kb_apis.create_context(kb_tenant_id)
55
+ properties = @plugin.hash_to_properties({ :description => description })
56
+
57
+ notification = ""
58
+ gw_notification = @plugin.process_notification notification, properties, context
59
+ end
60
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ ActiveMerchant::Billing::Base.mode = :test
4
+
5
+ describe Killbill::Bitpay::PaymentPlugin do
6
+
7
+ include ::Killbill::Plugin::ActiveMerchant::RSpec
8
+
9
+ before(:each) do
10
+ @plugin = Killbill::Bitpay::PaymentPlugin.new
11
+
12
+ @account_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaUserAccountApi.new
13
+ svcs = {:account_user_api => @account_api}
14
+ @plugin.kb_apis = Killbill::Plugin::KillbillApi.new('bitpay', svcs)
15
+
16
+ @plugin.logger = Logger.new(STDOUT)
17
+ @plugin.logger.level = Logger::INFO
18
+ @plugin.conf_dir = File.expand_path(File.dirname(__FILE__) + '../../../../')
19
+ @plugin.start_plugin
20
+ end
21
+
22
+ after(:each) do
23
+ @plugin.stop_plugin
24
+ end
25
+
26
+ it 'should generate invoices correctly' do
27
+ kb_account_id = SecureRandom.uuid
28
+ kb_tenant_id = SecureRandom.uuid
29
+ context = @plugin.kb_apis.create_context(kb_tenant_id)
30
+ fields = @plugin.hash_to_properties({
31
+ :order_id => '1234',
32
+ :amount => 0.0001,
33
+ :currency => 'BTC'
34
+ })
35
+ form = @plugin.build_form_descriptor kb_account_id, fields, [], context
36
+
37
+ form.kb_account_id.should == kb_account_id
38
+ form.form_method.should == 'GET'
39
+ form.form_url.should == 'https://bitpay.com/invoice'
40
+
41
+ form_fields = @plugin.properties_to_hash(form.form_fields)
42
+ form_fields.size.should == 1
43
+ form_fields[:id].should_not be_nil
44
+ @plugin.logger.info "Invoice at https://bitpay.com/invoice?id=#{form_fields[:id]}"
45
+
46
+ notification = {
47
+ "id" => "#{form_fields[:id]}",
48
+ "orderID" => "1234",
49
+ "url" => "https://bitpay.com/invoice/#{form_fields[:id]}",
50
+ "status" => "new",
51
+ "btcPrice" => "0.0001",
52
+ "price" => "0.0001",
53
+ "currency" => "BTC",
54
+ "posData" => '{"orderId":"1234}'
55
+ }.to_json
56
+ gw_notification = @plugin.process_notification notification, [], context
57
+ gw_notification.should_not be_nil
58
+ # We cannot fully check it though because of the acknowledge implementation (requires timestamps checking)
59
+ end
60
+ end
@@ -0,0 +1,24 @@
1
+ require 'bundler'
2
+ require 'bitpay'
3
+ require 'killbill/helpers/active_merchant/killbill_spec_helper'
4
+
5
+ require 'logger'
6
+
7
+ require 'rspec'
8
+
9
+ RSpec.configure do |config|
10
+ config.color_enabled = true
11
+ config.tty = true
12
+ config.formatter = 'documentation'
13
+ end
14
+
15
+ require 'active_record'
16
+ ActiveRecord::Base.establish_connection(
17
+ :adapter => 'sqlite3',
18
+ :database => 'test.db'
19
+ )
20
+ # For debugging
21
+ #ActiveRecord::Base.logger = Logger.new(STDOUT)
22
+ # Create the schema
23
+ require File.expand_path(File.dirname(__FILE__) + '../../db/schema.rb')
24
+
metadata ADDED
@@ -0,0 +1,300 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: killbill-bitpay
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kill Bill core team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: killbill
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.0
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 3.2.0
25
+ prerelease: false
26
+ type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: activemerchant
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.44.1
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 1.44.1
39
+ prerelease: false
40
+ type: :runtime
41
+ - !ruby/object:Gem::Dependency
42
+ name: offsite_payments
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.0.1
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: 2.0.1
53
+ prerelease: false
54
+ type: :runtime
55
+ - !ruby/object:Gem::Dependency
56
+ name: activerecord
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 4.1.0
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 4.1.0
67
+ prerelease: false
68
+ type: :runtime
69
+ - !ruby/object:Gem::Dependency
70
+ name: actionpack
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 4.1.0
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: 4.1.0
81
+ prerelease: false
82
+ type: :runtime
83
+ - !ruby/object:Gem::Dependency
84
+ name: actionview
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 4.1.0
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 4.1.0
95
+ prerelease: false
96
+ type: :runtime
97
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 4.1.0
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ version: 4.1.0
109
+ prerelease: false
110
+ type: :runtime
111
+ - !ruby/object:Gem::Dependency
112
+ name: money
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 6.1.1
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ~>
121
+ - !ruby/object:Gem::Version
122
+ version: 6.1.1
123
+ prerelease: false
124
+ type: :runtime
125
+ - !ruby/object:Gem::Dependency
126
+ name: monetize
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 0.3.0
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ~>
135
+ - !ruby/object:Gem::Version
136
+ version: 0.3.0
137
+ prerelease: false
138
+ type: :runtime
139
+ - !ruby/object:Gem::Dependency
140
+ name: sinatra
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 1.3.4
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ version: 1.3.4
151
+ prerelease: false
152
+ type: :runtime
153
+ - !ruby/object:Gem::Dependency
154
+ name: activerecord-jdbcmysql-adapter
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: 1.3.7
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ~>
163
+ - !ruby/object:Gem::Version
164
+ version: 1.3.7
165
+ prerelease: false
166
+ type: :runtime
167
+ - !ruby/object:Gem::Dependency
168
+ name: jruby-openssl
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.4
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ~>
177
+ - !ruby/object:Gem::Version
178
+ version: 0.9.4
179
+ prerelease: false
180
+ type: :runtime
181
+ - !ruby/object:Gem::Dependency
182
+ name: jbundler
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ~>
186
+ - !ruby/object:Gem::Version
187
+ version: 0.4.1
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ~>
191
+ - !ruby/object:Gem::Version
192
+ version: 0.4.1
193
+ prerelease: false
194
+ type: :development
195
+ - !ruby/object:Gem::Dependency
196
+ name: rake
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
200
+ - !ruby/object:Gem::Version
201
+ version: 10.0.0
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - '>='
205
+ - !ruby/object:Gem::Version
206
+ version: 10.0.0
207
+ prerelease: false
208
+ type: :development
209
+ - !ruby/object:Gem::Dependency
210
+ name: rspec
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: 2.12.0
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ~>
219
+ - !ruby/object:Gem::Version
220
+ version: 2.12.0
221
+ prerelease: false
222
+ type: :development
223
+ - !ruby/object:Gem::Dependency
224
+ name: activerecord-jdbcsqlite3-adapter
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: 1.3.7
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ~>
233
+ - !ruby/object:Gem::Version
234
+ version: 1.3.7
235
+ prerelease: false
236
+ type: :development
237
+ description: Kill Bill payment plugin for Bitpay.
238
+ email: killbilling-users@googlegroups.com
239
+ executables: []
240
+ extensions: []
241
+ extra_rdoc_files: []
242
+ files:
243
+ - .gitignore
244
+ - .travis.yml
245
+ - Gemfile
246
+ - Jarfile
247
+ - LICENSE
248
+ - NEWS
249
+ - README.md
250
+ - Rakefile
251
+ - VERSION
252
+ - bitpay.yml
253
+ - config.ru
254
+ - db/ddl.sql
255
+ - db/schema.rb
256
+ - killbill-bitpay.gemspec
257
+ - killbill.properties
258
+ - lib/bitpay.rb
259
+ - lib/bitpay/api.rb
260
+ - lib/bitpay/application.rb
261
+ - lib/bitpay/models/payment_method.rb
262
+ - lib/bitpay/models/response.rb
263
+ - lib/bitpay/models/transaction.rb
264
+ - lib/bitpay/private_api.rb
265
+ - lib/bitpay/views/form.erb
266
+ - pom.xml
267
+ - release.sh
268
+ - spec/bitpay/base_plugin_spec.rb
269
+ - spec/bitpay/remote/integration_spec.rb
270
+ - spec/spec_helper.rb
271
+ homepage: http://kill-bill.org
272
+ licenses:
273
+ - Apache License (2.0)
274
+ metadata: {}
275
+ post_install_message:
276
+ rdoc_options:
277
+ - --exclude
278
+ - .
279
+ require_paths:
280
+ - lib
281
+ required_ruby_version: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - '>='
284
+ - !ruby/object:Gem::Version
285
+ version: 1.9.3
286
+ required_rubygems_version: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - '>='
289
+ - !ruby/object:Gem::Version
290
+ version: '0'
291
+ requirements: []
292
+ rubyforge_project:
293
+ rubygems_version: 2.2.2
294
+ signing_key:
295
+ specification_version: 4
296
+ summary: Plugin to use Bitpay as a gateway.
297
+ test_files:
298
+ - spec/bitpay/base_plugin_spec.rb
299
+ - spec/bitpay/remote/integration_spec.rb
300
+ - spec/spec_helper.rb