killbill-payu-latam 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.
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>payu-latam-plugin</artifactId>
27
+ <packaging>pom</packaging>
28
+ <version>0.0.1</version>
29
+ <name>payu-latam-plugin</name>
30
+ <url>http://github.com/killbill/killbill-payu-latam-plugin</url>
31
+ <description>Plugin for accessing PayuLatam 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-payu-latam-plugin.git</connection>
41
+ <url>https://github.com/killbill/killbill-payu-latam-plugin/</url>
42
+ <developerConnection>scm:git:git@github.com:killbill/killbill-payu-latam-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-payu-latam-$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=payu-latam-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,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Killbill::PayuLatam::PaymentPlugin do
4
+ before(:each) do
5
+ Dir.mktmpdir do |dir|
6
+ file = File.new(File.join(dir, 'payu_latam.yml'), "w+")
7
+ file.write(<<-eos)
8
+ :payu_latam:
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::PayuLatam::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('payu_latam', {})
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
+ # No support for HPP
33
+
34
+ #xit 'should generate forms correctly' do
35
+ # kb_account_id = SecureRandom.uuid
36
+ # kb_tenant_id = SecureRandom.uuid
37
+ # context = @plugin.kb_apis.create_context(kb_tenant_id)
38
+ # fields = @plugin.hash_to_properties({
39
+ # :order_id => '1234',
40
+ # :amount => 10
41
+ # })
42
+ # form = @plugin.build_form_descriptor kb_account_id, fields, [], context
43
+
44
+ # form.kb_account_id.should == kb_account_id
45
+ # form.form_method.should == 'POST'
46
+ # form.form_url.should == 'https://payulatam.com'
47
+
48
+ # form_fields = @plugin.properties_to_hash(form.form_fields)
49
+ #end
50
+
51
+ #xit 'should receive notifications correctly' do
52
+ # description = 'description'
53
+
54
+ # kb_tenant_id = SecureRandom.uuid
55
+ # context = @plugin.kb_apis.create_context(kb_tenant_id)
56
+ # properties = @plugin.hash_to_properties({ :description => description })
57
+
58
+ # notification = ""
59
+ # gw_notification = @plugin.process_notification notification, properties, context
60
+ #end
61
+ end
@@ -0,0 +1,165 @@
1
+ require 'spec_helper'
2
+
3
+ ActiveMerchant::Billing::Base.mode = :test
4
+
5
+ module ActiveMerchant #:nodoc:
6
+ module Billing #:nodoc:
7
+ class CreditCard < Model
8
+ def number=(value)
9
+ @number = value
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ describe Killbill::PayuLatam::PaymentPlugin do
16
+
17
+ include ::Killbill::Plugin::ActiveMerchant::RSpec
18
+
19
+ before(:each) do
20
+ # PayULatamGateway's test server has an improperly installed cert
21
+ ::ActiveMerchant::Billing::PayULatamGateway.ssl_strict = false
22
+
23
+ @plugin = Killbill::PayuLatam::PaymentPlugin.new
24
+
25
+ @account_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaUserAccountApi.new
26
+ @payment_api = ::Killbill::Plugin::ActiveMerchant::RSpec::FakeJavaPaymentApi.new
27
+ svcs = {:account_user_api => @account_api, :payment_api => @payment_api}
28
+ @plugin.kb_apis = Killbill::Plugin::KillbillApi.new('payu', svcs)
29
+
30
+ @call_context = ::Killbill::Plugin::Model::CallContext.new
31
+ @call_context.tenant_id = '00000011-0022-0033-0044-000000000055'
32
+ @call_context = @call_context.to_ruby(@call_context)
33
+
34
+ @plugin.logger = Logger.new(STDOUT)
35
+ @plugin.logger.level = Logger::INFO
36
+ @plugin.conf_dir = File.expand_path(File.dirname(__FILE__) + '../../../../')
37
+ @plugin.start_plugin
38
+
39
+ @properties = []
40
+ # Go through Brazil (supports auth/capture)
41
+ @properties << create_pm_kv_info('payment_processor_account_id', 'brazil')
42
+ # Required CVV for token-based transactions
43
+ @properties << create_pm_kv_info('security_code', '123')
44
+ @properties << create_pm_kv_info('payment_country', 'BR')
45
+
46
+ @pm = create_payment_method(::Killbill::PayuLatam::PayuLatamPaymentMethod, nil, @call_context.tenant_id, @properties, valid_cc_info)
47
+ @amount = BigDecimal.new('500')
48
+ @currency = 'BRL'
49
+
50
+ kb_payment_id = SecureRandom.uuid
51
+ 1.upto(6) do
52
+ @kb_payment = @payment_api.add_payment(kb_payment_id)
53
+ end
54
+ end
55
+
56
+ after(:each) do
57
+ @plugin.stop_plugin
58
+ end
59
+
60
+ it 'should be able to charge a Credit Card directly' do
61
+ properties = build_pm_properties(nil, valid_cc_info)
62
+ properties += @properties
63
+
64
+ # We created the payment method, hence the rows
65
+ Killbill::PayuLatam::PayuLatamResponse.all.size.should == 1
66
+ Killbill::PayuLatam::PayuLatamTransaction.all.size.should == 0
67
+
68
+ payment_response = @plugin.purchase_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, SecureRandom.uuid, @amount, @currency, properties, @call_context)
69
+ payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
70
+ payment_response.amount.should == @amount
71
+ payment_response.transaction_type.should == :PURCHASE
72
+
73
+ responses = Killbill::PayuLatam::PayuLatamResponse.all
74
+ responses.size.should == 2
75
+ responses[0].api_call.should == 'add_payment_method'
76
+ responses[0].message.should == 'Successful transaction'
77
+ responses[1].api_call.should == 'purchase'
78
+ responses[1].message.should == 'The transaction was approved'
79
+ transactions = Killbill::PayuLatam::PayuLatamTransaction.all
80
+ transactions.size.should == 1
81
+ transactions[0].api_call.should == 'purchase'
82
+ end
83
+
84
+ # The sandbox doesn't support void, capture, nor refund
85
+
86
+ #xit 'should be able to charge and refund' do
87
+ # payment_response = @plugin.purchase_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
88
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
89
+ # payment_response.amount.should == @amount
90
+ # payment_response.transaction_type.should == :PURCHASE
91
+ #
92
+ # # Try a full refund
93
+ # refund_response = @plugin.refund_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
94
+ # refund_response.status.should eq(:PROCESSED), payment_response.gateway_error
95
+ # refund_response.amount.should == @amount
96
+ # refund_response.transaction_type.should == :REFUND
97
+ #end
98
+
99
+ #xit 'should be able to auth, capture and refund' do
100
+ # payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
101
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
102
+ # payment_response.amount.should == @amount
103
+ # payment_response.transaction_type.should == :AUTHORIZE
104
+ #
105
+ # # Try multiple partial captures
106
+ # partial_capture_amount = BigDecimal.new('10')
107
+ # 1.upto(3) do |i|
108
+ # payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[i].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
109
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
110
+ # payment_response.amount.should == partial_capture_amount
111
+ # payment_response.transaction_type.should == :CAPTURE
112
+ # end
113
+ #
114
+ # # Try a partial refund
115
+ # refund_response = @plugin.refund_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[4].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
116
+ # refund_response.status.should eq(:PROCESSED), payment_response.gateway_error
117
+ # refund_response.amount.should == partial_capture_amount
118
+ # refund_response.transaction_type.should == :REFUND
119
+ #
120
+ # # Try to capture again
121
+ # payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[5].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
122
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
123
+ # payment_response.amount.should == partial_capture_amount
124
+ # payment_response.transaction_type.should == :CAPTURE
125
+ #end
126
+
127
+ #it 'should be able to auth and void' do
128
+ # payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
129
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
130
+ # payment_response.amount.should == @amount
131
+ # payment_response.transaction_type.should == :AUTHORIZE
132
+ #
133
+ # payment_response = @plugin.void_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, @properties, @call_context)
134
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
135
+ # payment_response.transaction_type.should == :VOID
136
+ #end
137
+
138
+ #it 'should be able to auth, partial capture and void' do
139
+ # payment_response = @plugin.authorize_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[0].id, @pm.kb_payment_method_id, @amount, @currency, @properties, @call_context)
140
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
141
+ # payment_response.amount.should == @amount
142
+ # payment_response.transaction_type.should == :AUTHORIZE
143
+ #
144
+ # partial_capture_amount = BigDecimal.new('10')
145
+ # payment_response = @plugin.capture_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[1].id, @pm.kb_payment_method_id, partial_capture_amount, @currency, @properties, @call_context)
146
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
147
+ # payment_response.amount.should == partial_capture_amount
148
+ # payment_response.transaction_type.should == :CAPTURE
149
+ #
150
+ # payment_response = @plugin.void_payment(@pm.kb_account_id, @kb_payment.id, @kb_payment.transactions[2].id, @pm.kb_payment_method_id, @properties, @call_context)
151
+ # payment_response.status.should eq(:PROCESSED), payment_response.gateway_error
152
+ # payment_response.transaction_type.should == :VOID
153
+ #end
154
+
155
+ private
156
+
157
+ def valid_cc_info
158
+ {
159
+ # We can't use the default credit card number as it's seen as a US one (the testing account doesn't allow international credit cards)
160
+ :cc_number => '4422120000000008',
161
+ # Enter APPROVED for the cardholder name value if you want the transaction to be approved or REJECTED if you want it to be rejected
162
+ :cc_last_name => 'APPROVED'
163
+ }
164
+ end
165
+ end
@@ -0,0 +1,24 @@
1
+ require 'bundler'
2
+ require 'payu_latam'
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-payu-latam
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-01 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: aktivemerchant
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.0
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 2.0.0
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 PayU Latam.
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
+ - config.ru
253
+ - db/ddl.sql
254
+ - db/schema.rb
255
+ - killbill-payu-latam.gemspec
256
+ - killbill.properties
257
+ - lib/payu_latam.rb
258
+ - lib/payu_latam/api.rb
259
+ - lib/payu_latam/application.rb
260
+ - lib/payu_latam/models/payment_method.rb
261
+ - lib/payu_latam/models/response.rb
262
+ - lib/payu_latam/models/transaction.rb
263
+ - lib/payu_latam/private_api.rb
264
+ - lib/payu_latam/views/form.erb
265
+ - payu_latam.yml
266
+ - pom.xml
267
+ - release.sh
268
+ - spec/payu_latam/base_plugin_spec.rb
269
+ - spec/payu_latam/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 PayU Latam as a gateway.
297
+ test_files:
298
+ - spec/payu_latam/base_plugin_spec.rb
299
+ - spec/payu_latam/remote/integration_spec.rb
300
+ - spec/spec_helper.rb