openpayu 0.0.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.
Files changed (102) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +45 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +10 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +193 -0
  11. data/Rakefile +1 -0
  12. data/doc/EmptyResponseError.html +123 -0
  13. data/doc/HttpStatusException.html +123 -0
  14. data/doc/NotImplementedException.html +123 -0
  15. data/doc/OpenPayU.html +436 -0
  16. data/doc/OpenPayU/Configuration.html +1530 -0
  17. data/doc/OpenPayU/Connection.html +381 -0
  18. data/doc/OpenPayU/Document.html +705 -0
  19. data/doc/OpenPayU/Documents.html +117 -0
  20. data/doc/OpenPayU/Documents/Request.html +503 -0
  21. data/doc/OpenPayU/Documents/Response.html +783 -0
  22. data/doc/OpenPayU/Models.html +117 -0
  23. data/doc/OpenPayU/Models/Address.html +861 -0
  24. data/doc/OpenPayU/Models/Buyer.html +587 -0
  25. data/doc/OpenPayU/Models/Buyer/Delivery.html +312 -0
  26. data/doc/OpenPayU/Models/Card.html +507 -0
  27. data/doc/OpenPayU/Models/Fee.html +367 -0
  28. data/doc/OpenPayU/Models/Model.html +1208 -0
  29. data/doc/OpenPayU/Models/NotifyResponse.html +297 -0
  30. data/doc/OpenPayU/Models/Order.html +1155 -0
  31. data/doc/OpenPayU/Models/PayMethod.html +507 -0
  32. data/doc/OpenPayU/Models/Product.html +787 -0
  33. data/doc/OpenPayU/Models/Refund.html +1020 -0
  34. data/doc/OpenPayU/Models/ShippingMethod.html +367 -0
  35. data/doc/OpenPayU/Models/StatusUpdate.html +647 -0
  36. data/doc/OpenPayU/Models/Token.html +507 -0
  37. data/doc/OpenPayU/Order.html +924 -0
  38. data/doc/OpenPayU/Refund.html +269 -0
  39. data/doc/OpenPayU/Token.html +288 -0
  40. data/doc/OpenPayU/XmlBuilder.html +277 -0
  41. data/doc/WrongConfigurationError.html +123 -0
  42. data/doc/WrongNotifyRequest.html +123 -0
  43. data/doc/WrongOrderParameters.html +267 -0
  44. data/doc/WrongSignatureException.html +123 -0
  45. data/doc/_index.html +446 -0
  46. data/doc/class_list.html +54 -0
  47. data/doc/css/common.css +1 -0
  48. data/doc/css/full_list.css +57 -0
  49. data/doc/css/style.css +338 -0
  50. data/doc/file.README.html +281 -0
  51. data/doc/file_list.html +56 -0
  52. data/doc/frames.html +26 -0
  53. data/doc/index.html +281 -0
  54. data/doc/js/app.js +214 -0
  55. data/doc/js/full_list.js +178 -0
  56. data/doc/js/jquery.js +4 -0
  57. data/doc/method_list.html +1007 -0
  58. data/doc/top-level-namespace.html +114 -0
  59. data/lib/openpayu.rb +66 -0
  60. data/lib/openpayu/configuration.rb +62 -0
  61. data/lib/openpayu/connection.rb +65 -0
  62. data/lib/openpayu/document.rb +105 -0
  63. data/lib/openpayu/documents/request.rb +34 -0
  64. data/lib/openpayu/documents/response.rb +48 -0
  65. data/lib/openpayu/exceptions.rb +19 -0
  66. data/lib/openpayu/models/address.rb +12 -0
  67. data/lib/openpayu/models/buyer.rb +11 -0
  68. data/lib/openpayu/models/buyer/delivery.rb +7 -0
  69. data/lib/openpayu/models/buyer/invoice.rb +8 -0
  70. data/lib/openpayu/models/card.rb +10 -0
  71. data/lib/openpayu/models/fee.rb +9 -0
  72. data/lib/openpayu/models/model.rb +151 -0
  73. data/lib/openpayu/models/notify_response.rb +9 -0
  74. data/lib/openpayu/models/order.rb +28 -0
  75. data/lib/openpayu/models/pay_method.rb +10 -0
  76. data/lib/openpayu/models/product.rb +10 -0
  77. data/lib/openpayu/models/refund.rb +41 -0
  78. data/lib/openpayu/models/shipping_method.rb +9 -0
  79. data/lib/openpayu/models/status_update.rb +14 -0
  80. data/lib/openpayu/models/token.rb +10 -0
  81. data/lib/openpayu/order.rb +119 -0
  82. data/lib/openpayu/refund.rb +26 -0
  83. data/lib/openpayu/token.rb +27 -0
  84. data/lib/openpayu/version.rb +4 -0
  85. data/lib/openpayu/xml_builder.rb +23 -0
  86. data/lib/openpayu_ruby.rb +2 -0
  87. data/openpayu_ruby.gemspec +40 -0
  88. data/spec/cassettes/cancel_order.yml +50 -0
  89. data/spec/cassettes/create_order.yml +51 -0
  90. data/spec/cassettes/refund_order.yml +100 -0
  91. data/spec/cassettes/retrieve_order.yml +51 -0
  92. data/spec/cassettes/update_order.yml +50 -0
  93. data/spec/integration/order_spec.rb +103 -0
  94. data/spec/openpayu.yml +11 -0
  95. data/spec/spec_helper.rb +27 -0
  96. data/spec/test_objects/order.rb +97 -0
  97. data/spec/unit/configuration_spec.rb +71 -0
  98. data/spec/unit/document_spec.rb +18 -0
  99. data/spec/unit/models/order_spec.rb +82 -0
  100. data/spec/unit/models/refund_spec.rb +24 -0
  101. data/spec/unit/openpayu_spec.rb +27 -0
  102. metadata +327 -0
data/spec/openpayu.yml ADDED
@@ -0,0 +1,11 @@
1
+ test:
2
+ merchant_pos_id: '8334'
3
+ signature_key: 95873897fb42d
4
+ algorithm: MD5 # MD5, SHA-1, SHA-256
5
+ service_domain: payu.com
6
+ protocol: https
7
+ data_format: json # json, xml
8
+ env: secure
9
+ order_url: http://localhost/order
10
+ notify_url: http://localhost/notify
11
+ continue_url: http://localhost/success
@@ -0,0 +1,27 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'codeclimate-test-reporter'
3
+ CodeClimate::TestReporter.start
4
+ require 'rubygems'
5
+ require 'openpayu'
6
+ require 'test_objects/order'
7
+ require 'vcr'
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = 'spec/cassettes'
11
+ c.hook_into :fakeweb
12
+ c.allow_http_connections_when_no_cassette = true
13
+ end
14
+
15
+ RSpec.configure do |config|
16
+ config.before(:all) do
17
+ OpenPayU::Configuration.configure do |cfg|
18
+ cfg.env = 'platnosci-dev5'
19
+ cfg.merchant_pos_id = '45654'
20
+ cfg.signature_key = '981852826b1f62fb24e1771e878fb42d'
21
+ cfg.algorithm = 'MD5'
22
+ cfg.service_domain = 'dc2'
23
+ cfg.protocol = 'http'
24
+ cfg.data_format = 'json'
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,97 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module TestObject
3
+ class Order
4
+
5
+ def self.valid_order
6
+ {
7
+ merchant_pos_id: OpenPayU::Configuration.merchant_pos_id,
8
+ customer_ip: '127.0.0.1',
9
+ ext_order_id: 1342,
10
+ order_url: 'http://localhost/',
11
+ description: 'New order',
12
+ currency_code: 'PLN',
13
+ total_amount: 100,
14
+ notify_url: 'http://localhost/',
15
+ continue_url: 'http://localhost/',
16
+ validity_time: '48000',
17
+ buyer: {
18
+ email: 'dd@ddd.pl',
19
+ phone: '123123123',
20
+ first_name: 'Jan',
21
+ last_name: 'Kowalski',
22
+ language: 'pl_PL',
23
+ NIN: '123456'
24
+ },
25
+ products: [
26
+ {
27
+ name: 'Mouse',
28
+ unit_price: 100,
29
+ quantity: 1
30
+ }
31
+ ],
32
+ pay_methods: [
33
+ {
34
+ type: 'CARD_TOKEN',
35
+ value: 'TOK_1HPPNU4HIOWT180pPDWhuhAmM3ym',
36
+ }
37
+ ]
38
+ }
39
+ end
40
+
41
+ def self.order_status_request(order_id)
42
+ {
43
+ order_id: order_id,
44
+ reason: 'Test Reject',
45
+ order_creation_date: Time.now,
46
+ order_status: 'CANCELLED'
47
+ }
48
+ end
49
+
50
+ def self.notification_request
51
+ {
52
+ 'OpenPayU' => {
53
+ 'OrderNotifyRequest' => {
54
+ 'Order' => {
55
+ 'ExtOrderId' => 'extOrderId',
56
+ 'Description' => 'product no. 1',
57
+ 'Products' => {
58
+ 'Product' => [
59
+ {
60
+ 'Name' => 'Product1',
61
+ 'Quantity' => '1',
62
+ 'UnitPrice' => '1000'
63
+ }, {
64
+ 'Name' => 'Product2',
65
+ 'Quantity' => '3',
66
+ 'UnitPrice' => '9870'
67
+ }
68
+ ]
69
+ },
70
+ 'Buyer' => {
71
+ 'Phone' => '+48505606707',
72
+ 'Email' => 'testowy@mail.pl',
73
+ 'CustomerId' => 'guest',
74
+ 'FirstName' => 'Jan',
75
+ 'Language' => 'pl',
76
+ 'LastName' => 'Kowalski'
77
+ },
78
+ 'OrderId' => 'JS2JMSQ68L130826GUEST000P01',
79
+ 'CurrencyCode' => 'PLN',
80
+ 'CustomerIp' => '10.1.1.127',
81
+ 'Status' => 'COMPLETED',
82
+ 'NotifyUrl' => 'http=>//sklep.url/notify',
83
+ 'ValidityTime' => '86400',
84
+ 'MerchantPosId' => '122643',
85
+ 'PayMethod' => {
86
+ 'Type' => 'PBL'
87
+ },
88
+ 'OrderCreateDate' => '2013-08-26T09=>51=>50.303+02=>00',
89
+ 'OrderUrl' => 'http=>//sklep.url/order',
90
+ 'TotalAmount' => '1000'
91
+ }
92
+ }
93
+ }
94
+ }
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,71 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper.rb'
3
+
4
+ describe OpenPayU::Configuration do
5
+
6
+ context 'load from YAML' do
7
+ before(:all) do
8
+ ENV['RACK_ENV'] = 'test'
9
+ OpenPayU::Configuration.configure 'spec/openpayu.yml'
10
+ end
11
+
12
+ it { OpenPayU::Configuration.valid?.should be_true }
13
+ it { OpenPayU::Configuration.merchant_pos_id.should eq '8334' }
14
+ it { OpenPayU::Configuration.env.should eq 'secure' }
15
+ it { OpenPayU::Configuration.service_domain.should eq 'payu.com' }
16
+
17
+ end
18
+
19
+ context 'valid configuration' do
20
+ before(:all) do
21
+ OpenPayU::Configuration.configure do |config|
22
+ config.env = 'sandbox'
23
+ config.signature_key = 'fsd8931231232e4aeb53'
24
+ config.service_domain = 'payu.pl'
25
+ end
26
+ end
27
+
28
+ it { OpenPayU::Configuration.valid?.should be_true }
29
+ it { OpenPayU::Configuration.env.should eq 'sandbox' }
30
+ it { OpenPayU::Configuration.service_domain.should eq 'payu.pl' }
31
+
32
+ it 'should override default' do
33
+ OpenPayU::Configuration.env.should eq 'sandbox'
34
+ end
35
+
36
+ it 'should set default value' do
37
+ OpenPayU::Configuration.country.should eq 'pl'
38
+ end
39
+
40
+ context 'change configuration to be invalid' do
41
+ before { OpenPayU::Configuration.merchant_pos_id = '' }
42
+
43
+ it 'should raise exception' do
44
+ expect { OpenPayU::Configuration.valid? }.to(
45
+ raise_error(
46
+ WrongConfigurationError,
47
+ 'Parameter merchant_pos_id is invalid.'
48
+ )
49
+ )
50
+ end
51
+ end
52
+ end
53
+
54
+ context 'Invalid configuration' do
55
+ it 'should raise exeption when tried to set invalid configuration' do
56
+ expect do
57
+ OpenPayU::Configuration.configure do |config|
58
+ config.env = 'sandbox'
59
+ config.signature_key = 'fsd8931231232e4aeb53'
60
+ config.service_domain = 'payu.pl'
61
+ end.to(
62
+ raise_error(
63
+ WrongConfigurationError,
64
+ 'Parameter merchant_pos_id is invalid.'
65
+ )
66
+ )
67
+ end
68
+ end
69
+ end
70
+
71
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe OpenPayU::Document do
5
+ let(:document) { OpenPayU::Document.new }
6
+
7
+ it 'generates valid signature' do
8
+ document.generate_signature_structure(
9
+ 'OpenPayUData',
10
+ 'SHA-1',
11
+ 'MerchantPosId',
12
+ 'SignatureKey'
13
+ ).should eq(
14
+ 'sender=MerchantPosId;' +
15
+ 'signature=52bb16149d1a5ccc8ac05f8e435c30d82efd5364;algorithm=SHA-1'
16
+ )
17
+ end
18
+ end
@@ -0,0 +1,82 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper.rb'
3
+
4
+ describe OpenPayU::Models::Order do
5
+ context 'create valid order' do
6
+ let(:order) { OpenPayU::Models::Order.new(TestObject::Order.valid_order) }
7
+
8
+ it { order.valid?.should be_true }
9
+ it { order.all_objects_valid?.should be_true }
10
+ it { order.merchant_pos_id.should eq '45654' }
11
+
12
+ context 'should create product objects' do
13
+ before { order.products = [{ name: 'Produkt 1' }] }
14
+
15
+ it { order.products.size.should eq 1 }
16
+ it do
17
+ order.products.first.class.name.should eq 'OpenPayU::Models::Product'
18
+ end
19
+ end
20
+
21
+ context 'prepare correct Hash' do
22
+ it do
23
+ hash = order.prepare_keys
24
+ hash.delete('ReqId')
25
+ hash.should eq({
26
+ 'MerchantPosId' => '45654',
27
+ 'CustomerIp' => '127.0.0.1',
28
+ 'ExtOrderId' => 1342,
29
+ 'OrderUrl' => 'http://localhost/',
30
+ 'Description' => 'New order',
31
+ 'CurrencyCode' => 'PLN',
32
+ 'TotalAmount' => 100,
33
+ 'NotifyUrl' => 'http://localhost/',
34
+ 'ContinueUrl' => 'http://localhost/',
35
+ 'ValidityTime' => '48000',
36
+ 'Buyer' => {
37
+ 'Email' => 'dd@ddd.pl',
38
+ 'Phone' => '123123123',
39
+ 'FirstName' => 'Jan',
40
+ 'LastName' => 'Kowalski',
41
+ 'Language' => 'pl_PL',
42
+ 'NIN' => '123456'
43
+ },
44
+ 'Products' => [{
45
+ 'Product' => {
46
+ 'Name' => 'Mouse',
47
+ 'UnitPrice' => 100,
48
+ 'Quantity' => 1
49
+ }
50
+ }],
51
+ 'PayMethods' => [{
52
+ 'PayMethod' => {
53
+ 'Type' => 'CARD_TOKEN',
54
+ 'Value' => 'TOK_1HPPNU4HIOWT180pPDWhuhAmM3ym'
55
+ }
56
+ }]
57
+ })
58
+ end
59
+ end
60
+ end
61
+
62
+ context 'create invalid order' do
63
+ let(:order) do
64
+ OpenPayU::Models::Order.new(
65
+ {
66
+ customer_ip: '127.0.0.1',
67
+ ext_order_id: 1,
68
+ description: 'New order',
69
+ currency_code: 'PLN',
70
+ total_amount: 1000,
71
+ products: [
72
+ { name: 'test1' },
73
+ { name: 'test2' }
74
+ ]
75
+ }
76
+ )
77
+ end
78
+ it { order.valid?.should be_false }
79
+ it { order.all_objects_valid?.should be_false }
80
+ end
81
+
82
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper.rb'
3
+
4
+ describe OpenPayU::Models::Refund do
5
+ context 'create valid refund' do
6
+ let(:refund) do
7
+ OpenPayU::Models::Refund.new({
8
+ order_id: 1,
9
+ description: 'Refund',
10
+ amount: 1000
11
+ })
12
+ end
13
+ it { refund.valid?.should be_true }
14
+ end
15
+
16
+ context 'create invalid refund' do
17
+ let(:refund) do
18
+ OpenPayU::Models::Refund.new({
19
+ amount: 1000
20
+ })
21
+ end
22
+ it { refund.valid?.should be_false }
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe OpenPayU do
5
+ it 'should sign a form' do
6
+ form = {
7
+ 'TotalAmount' => '1000',
8
+ 'CompleteUrl' => 'http://localhost/complete'
9
+ }
10
+ OpenPayU.sign_form(
11
+ form,
12
+ '981852826b1f62fb24e1771e878fb42d'
13
+ ).should eq(
14
+ 'sender=45654;signature=7d4073dbcc85e3859ed4341891168717;algorithm=MD5'
15
+ )
16
+ end
17
+
18
+ it 'should generate form' do
19
+ order = TestObject::Order.valid_order
20
+ form = OpenPayU.hosted_order_form(order).gsub(/>\s+</, '><')
21
+ form.should match(/<form method='post' action='.*'>/)
22
+ form.should match(/(<input type='hidden' name='.*' value='.*' \/>)+/)
23
+ form.should match(/(<button type='submit' formtarget='_blank' \/>){1}/)
24
+ form.should match(/<\/form>/)
25
+ end
26
+
27
+ end
metadata ADDED
@@ -0,0 +1,327 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: openpayu
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Krzysztof Streflik
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activemodel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activemodel
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: vcr
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: fakeweb
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rdoc
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: codeclimate-test-reporter
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: A SDK for OpenPayU API
182
+ email:
183
+ - krzysztof.streflik@allegro.pl
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - .gitignore
189
+ - .rspec
190
+ - .rubocop.yml
191
+ - .ruby-gemset
192
+ - .ruby-version
193
+ - .travis.yml
194
+ - Gemfile
195
+ - LICENSE.txt
196
+ - README.md
197
+ - Rakefile
198
+ - doc/EmptyResponseError.html
199
+ - doc/HttpStatusException.html
200
+ - doc/NotImplementedException.html
201
+ - doc/OpenPayU.html
202
+ - doc/OpenPayU/Configuration.html
203
+ - doc/OpenPayU/Connection.html
204
+ - doc/OpenPayU/Document.html
205
+ - doc/OpenPayU/Documents.html
206
+ - doc/OpenPayU/Documents/Request.html
207
+ - doc/OpenPayU/Documents/Response.html
208
+ - doc/OpenPayU/Models.html
209
+ - doc/OpenPayU/Models/Address.html
210
+ - doc/OpenPayU/Models/Buyer.html
211
+ - doc/OpenPayU/Models/Buyer/Delivery.html
212
+ - doc/OpenPayU/Models/Card.html
213
+ - doc/OpenPayU/Models/Fee.html
214
+ - doc/OpenPayU/Models/Model.html
215
+ - doc/OpenPayU/Models/NotifyResponse.html
216
+ - doc/OpenPayU/Models/Order.html
217
+ - doc/OpenPayU/Models/PayMethod.html
218
+ - doc/OpenPayU/Models/Product.html
219
+ - doc/OpenPayU/Models/Refund.html
220
+ - doc/OpenPayU/Models/ShippingMethod.html
221
+ - doc/OpenPayU/Models/StatusUpdate.html
222
+ - doc/OpenPayU/Models/Token.html
223
+ - doc/OpenPayU/Order.html
224
+ - doc/OpenPayU/Refund.html
225
+ - doc/OpenPayU/Token.html
226
+ - doc/OpenPayU/XmlBuilder.html
227
+ - doc/WrongConfigurationError.html
228
+ - doc/WrongNotifyRequest.html
229
+ - doc/WrongOrderParameters.html
230
+ - doc/WrongSignatureException.html
231
+ - doc/_index.html
232
+ - doc/class_list.html
233
+ - doc/css/common.css
234
+ - doc/css/full_list.css
235
+ - doc/css/style.css
236
+ - doc/file.README.html
237
+ - doc/file_list.html
238
+ - doc/frames.html
239
+ - doc/index.html
240
+ - doc/js/app.js
241
+ - doc/js/full_list.js
242
+ - doc/js/jquery.js
243
+ - doc/method_list.html
244
+ - doc/top-level-namespace.html
245
+ - lib/openpayu.rb
246
+ - lib/openpayu/configuration.rb
247
+ - lib/openpayu/connection.rb
248
+ - lib/openpayu/document.rb
249
+ - lib/openpayu/documents/request.rb
250
+ - lib/openpayu/documents/response.rb
251
+ - lib/openpayu/exceptions.rb
252
+ - lib/openpayu/models/address.rb
253
+ - lib/openpayu/models/buyer.rb
254
+ - lib/openpayu/models/buyer/delivery.rb
255
+ - lib/openpayu/models/buyer/invoice.rb
256
+ - lib/openpayu/models/card.rb
257
+ - lib/openpayu/models/fee.rb
258
+ - lib/openpayu/models/model.rb
259
+ - lib/openpayu/models/notify_response.rb
260
+ - lib/openpayu/models/order.rb
261
+ - lib/openpayu/models/pay_method.rb
262
+ - lib/openpayu/models/product.rb
263
+ - lib/openpayu/models/refund.rb
264
+ - lib/openpayu/models/shipping_method.rb
265
+ - lib/openpayu/models/status_update.rb
266
+ - lib/openpayu/models/token.rb
267
+ - lib/openpayu/order.rb
268
+ - lib/openpayu/refund.rb
269
+ - lib/openpayu/token.rb
270
+ - lib/openpayu/version.rb
271
+ - lib/openpayu/xml_builder.rb
272
+ - lib/openpayu_ruby.rb
273
+ - openpayu_ruby.gemspec
274
+ - spec/cassettes/cancel_order.yml
275
+ - spec/cassettes/create_order.yml
276
+ - spec/cassettes/refund_order.yml
277
+ - spec/cassettes/retrieve_order.yml
278
+ - spec/cassettes/update_order.yml
279
+ - spec/integration/order_spec.rb
280
+ - spec/openpayu.yml
281
+ - spec/spec_helper.rb
282
+ - spec/test_objects/order.rb
283
+ - spec/unit/configuration_spec.rb
284
+ - spec/unit/document_spec.rb
285
+ - spec/unit/models/order_spec.rb
286
+ - spec/unit/models/refund_spec.rb
287
+ - spec/unit/openpayu_spec.rb
288
+ homepage: ''
289
+ licenses:
290
+ - MIT
291
+ metadata: {}
292
+ post_install_message:
293
+ rdoc_options: []
294
+ require_paths:
295
+ - lib
296
+ required_ruby_version: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ! '>='
299
+ - !ruby/object:Gem::Version
300
+ version: '0'
301
+ required_rubygems_version: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - ! '>='
304
+ - !ruby/object:Gem::Version
305
+ version: '0'
306
+ requirements: []
307
+ rubyforge_project:
308
+ rubygems_version: 2.1.11
309
+ signing_key:
310
+ specification_version: 4
311
+ summary: A SDK for OpenPayU API
312
+ test_files:
313
+ - spec/cassettes/cancel_order.yml
314
+ - spec/cassettes/create_order.yml
315
+ - spec/cassettes/refund_order.yml
316
+ - spec/cassettes/retrieve_order.yml
317
+ - spec/cassettes/update_order.yml
318
+ - spec/integration/order_spec.rb
319
+ - spec/openpayu.yml
320
+ - spec/spec_helper.rb
321
+ - spec/test_objects/order.rb
322
+ - spec/unit/configuration_spec.rb
323
+ - spec/unit/document_spec.rb
324
+ - spec/unit/models/order_spec.rb
325
+ - spec/unit/models/refund_spec.rb
326
+ - spec/unit/openpayu_spec.rb
327
+ has_rdoc: