killbill-payu-latam 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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