pesapal 1.8.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -48,7 +48,7 @@ module Pesapal
48
48
  chars = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789'
49
49
  nonce = ''
50
50
  length.times { nonce << chars[rand(chars.size)] }
51
- "#{nonce}"
51
+ nonce
52
52
  end
53
53
 
54
54
  # Generate the oAuth signature using HMAC-SHA1 algorithm.
@@ -116,12 +116,10 @@ module Pesapal
116
116
  def self.generate_signature_base_string(http_method, absolute_url, params)
117
117
  # step 1: convert the http method to uppercase
118
118
  http_method = http_method.upcase
119
-
120
119
  # step 2: percent encode the url
121
120
  url_encoded = parameter_encode(normalized_request_uri(absolute_url))
122
-
123
121
  # step 3: percent encode the parameter string
124
- parameter_string_encoded = parameter_encode(generate_signable_encoded_params_query_string params)
122
+ parameter_string_encoded = parameter_encode(generate_signable_encoded_params_query_string(params))
125
123
 
126
124
  "#{http_method}&#{url_encoded}&#{parameter_string_encoded}"
127
125
  end
@@ -176,15 +174,19 @@ module Pesapal
176
174
  #
177
175
  # @return [String] valid constructed URL as per the spec.
178
176
  def self.normalized_request_uri(absolute_url)
179
- u = URI.parse(absolute_url)
177
+ uri = URI.parse(absolute_url)
178
+
179
+ scheme = uri.scheme.downcase
180
+ host = uri.host.downcase
181
+ path = uri.path
182
+ port = uri.port
180
183
 
181
- scheme = u.scheme.downcase
182
- host = u.host.downcase
183
- path = u.path
184
- port = u.port
184
+ non_standard_http = scheme == 'http' && port != 80
185
+ non_standard_https = scheme == 'https' && port != 443
186
+ uri_with_path = path && (path != '')
185
187
 
186
- port = (scheme == 'http' && port != 80) || (scheme == 'https' && port != 443) ? ":#{port}" : ''
187
- path = (path && path != '') ? path : '/'
188
+ port = non_standard_http || non_standard_https ? ":#{port}" : ''
189
+ path = uri_with_path ? path : '/'
188
190
 
189
191
  "#{scheme}://#{host}#{port}#{path}"
190
192
  end
@@ -4,5 +4,5 @@ module Pesapal
4
4
  # This gem's version (learn about [Semantic Versioning][1]).
5
5
  #
6
6
  # [1]: http://semver.org/
7
- VERSION = '1.8.0'.freeze
7
+ VERSION = '2.0.0'.freeze
8
8
  end
@@ -8,12 +8,15 @@ Gem::Specification.new do |spec|
8
8
  spec.date = Time.new.getutc.strftime('%Y-%m-%d')
9
9
  spec.authors = ['Job King\'ori Maina']
10
10
  spec.email = ['j@kingori.co']
11
- spec.description = 'Make authenticated Pesapal API calls without the fuss!'
12
- spec.summary = 'Make authenticated Pesapal API calls without the fuss! Handles all the oAuth stuff abstracting any direct interaction with the API endpoints so that you can focus on what matters. Building awesome.'
13
- spec.homepage = 'http://itsmrwave.github.io/pesapal-gem'
11
+ spec.homepage = 'http://itskingori.github.io/pesapal-gem'
14
12
  spec.license = 'MIT'
13
+ spec.description = 'Make authenticated Pesapal API calls without the fuss!'
14
+ spec.summary = 'Make authenticated Pesapal API calls without the fuss! '\
15
+ 'Handles all the oAuth stuff abstracting any direct ' \
16
+ 'interaction with the API endpoints so that you can ' \
17
+ 'focus on what matters. Building awesome.'
15
18
 
16
- spec.files = `git ls-files`.split($/)
19
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
22
  spec.require_paths = ['lib']
@@ -24,9 +27,11 @@ Gem::Specification.new do |spec|
24
27
  spec.add_development_dependency 'coveralls'
25
28
  spec.add_development_dependency 'faker'
26
29
  spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'redcarpet'
27
31
  spec.add_development_dependency 'rspec'
28
32
  spec.add_development_dependency 'rubocop'
29
33
  spec.add_development_dependency 'webmock'
34
+ spec.add_development_dependency 'yard'
30
35
 
31
36
  spec.add_runtime_dependency 'htmlentities'
32
37
  end
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Pesapal::Merchant do
4
-
5
4
  let(:order_details) do
6
- { amount: 1000,
5
+ {
6
+ amount: 1000,
7
7
  description: Faker::Lorem.sentence,
8
8
  type: 'MERCHANT',
9
9
  reference: '111-222-333',
@@ -16,32 +16,17 @@ describe Pesapal::Merchant do
16
16
  end
17
17
 
18
18
  let(:default_credentials) do
19
- { callback_url: 'http://0.0.0.0:3000/pesapal/callback',
19
+ {
20
+ callback_url: 'http://0.0.0.0:3000/pesapal/callback',
20
21
  consumer_key: '<YOUR_CONSUMER_KEY>',
21
22
  consumer_secret: '<YOUR_CONSUMER_SECRET>'
22
23
  }
23
24
  end
24
25
 
25
- let(:demo_endpoints) do
26
- { postpesapaldirectorderv4: 'https://demo.pesapal.com/API/PostPesapalDirectOrderV4',
27
- querypaymentstatus: 'https://demo.pesapal.com/API/QueryPaymentStatus',
28
- querypaymentdetails: 'https://demo.pesapal.com/API/QueryPaymentDetails'
29
- }
30
- end
31
-
32
- let(:production_endpoints) do
33
- { postpesapaldirectorderv4: 'https://www.pesapal.com/API/PostPesapalDirectOrderV4',
34
- querypaymentstatus: 'https://www.pesapal.com/API/QueryPaymentStatus',
35
- querypaymentdetails: 'https://www.pesapal.com/API/QueryPaymentDetails'
36
- }
37
- end
38
-
39
26
  context 'when mode not specified' do
40
-
41
27
  let(:pesapal) { Pesapal::Merchant.new }
42
28
 
43
29
  describe '#new' do
44
-
45
30
  it 'is valid object' do
46
31
  expect(pesapal).to be_an_instance_of(Pesapal::Merchant)
47
32
  end
@@ -59,20 +44,7 @@ describe Pesapal::Merchant do
59
44
  end
60
45
  end
61
46
 
62
- describe '#change_env' do
63
-
64
- it 'sets default environment variable' do
65
- pesapal.change_env
66
- expect(pesapal.send(:env)).to eq 'development'
67
- end
68
-
69
- it 'sets endpoints for default environment' do
70
- expect(pesapal.change_env).to eq(demo_endpoints)
71
- end
72
- end
73
-
74
47
  describe '#generate_order_url' do
75
-
76
48
  it 'generates iframe url string' do
77
49
  pesapal.order_details = order_details
78
50
  expect(pesapal.generate_order_url).to match %r{https://demo.pesapal.com/API/PostPesapalDirectOrderV4\?oauth_callback=.*oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_request_data=.*}
@@ -80,7 +52,6 @@ describe Pesapal::Merchant do
80
52
  end
81
53
 
82
54
  describe '#query_payment_status' do
83
-
84
55
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
85
56
 
86
57
  it 'gets pending payment status' do
@@ -105,21 +76,21 @@ describe Pesapal::Merchant do
105
76
  end
106
77
 
107
78
  describe '#query_payment_details' do
108
-
109
79
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
110
80
 
111
81
  it 'gets pending payment details' do
112
82
  request.to_return(status: 200, body: 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
113
- expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(method: 'payment_method',
114
- status: 'payment_status',
115
- merchant_reference: 'merchant_reference',
116
- transaction_tracking_id: 'transaction_tracking_id'
117
- )
83
+ expected_result = {
84
+ method: 'payment_method',
85
+ status: 'payment_status',
86
+ merchant_reference: 'merchant_reference',
87
+ transaction_tracking_id: 'transaction_tracking_id'
88
+ }
89
+ expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(expected_result)
118
90
  end
119
91
  end
120
92
 
121
93
  describe '#ipn_listener' do
122
-
123
94
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
124
95
 
125
96
  it 'gets ipn response for pending status' do
@@ -145,11 +116,9 @@ describe Pesapal::Merchant do
145
116
  end
146
117
 
147
118
  context 'when mode is specified as development' do
148
-
149
119
  let(:pesapal) { Pesapal::Merchant.new(:development) }
150
120
 
151
121
  describe '#new(:development)' do
152
-
153
122
  it 'is valid object' do
154
123
  expect(pesapal).to be_an_instance_of(Pesapal::Merchant)
155
124
  end
@@ -167,20 +136,7 @@ describe Pesapal::Merchant do
167
136
  end
168
137
  end
169
138
 
170
- describe '#change_env(:development)' do
171
-
172
- it 'sets environment variable' do
173
- pesapal.change_env :development
174
- expect(pesapal.send(:env)).to eq 'development'
175
- end
176
-
177
- it 'sets endpoints for environment' do
178
- expect(pesapal.change_env :development).to eq(demo_endpoints)
179
- end
180
- end
181
-
182
139
  describe '#generate_order_url' do
183
-
184
140
  it 'generates iframe url string' do
185
141
  pesapal.order_details = order_details
186
142
  expect(pesapal.generate_order_url).to match %r{https://demo.pesapal.com/API/PostPesapalDirectOrderV4\?oauth_callback=.*oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_request_data=.*}
@@ -188,7 +144,6 @@ describe Pesapal::Merchant do
188
144
  end
189
145
 
190
146
  describe '#query_payment_status' do
191
-
192
147
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
193
148
 
194
149
  it 'gets pending payment status' do
@@ -213,21 +168,21 @@ describe Pesapal::Merchant do
213
168
  end
214
169
 
215
170
  describe '#query_payment_details' do
216
-
217
171
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
218
172
 
219
173
  it 'gets pending payment details' do
220
174
  request.to_return(status: 200, body: 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
221
- expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(method: 'payment_method',
222
- status: 'payment_status',
223
- merchant_reference: 'merchant_reference',
224
- transaction_tracking_id: 'transaction_tracking_id'
225
- )
175
+ expected_result = {
176
+ method: 'payment_method',
177
+ status: 'payment_status',
178
+ merchant_reference: 'merchant_reference',
179
+ transaction_tracking_id: 'transaction_tracking_id'
180
+ }
181
+ expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(expected_result)
226
182
  end
227
183
  end
228
184
 
229
185
  describe '#ipn_listener' do
230
-
231
186
  let(:request) { stub_request(:get, %r{https://demo.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
232
187
 
233
188
  it 'gets ipn response for pending status' do
@@ -253,11 +208,9 @@ describe Pesapal::Merchant do
253
208
  end
254
209
 
255
210
  context 'when mode is specified as production' do
256
-
257
211
  let(:pesapal) { Pesapal::Merchant.new(:production) }
258
212
 
259
213
  describe '#new(:production)' do
260
-
261
214
  it 'is valid object' do
262
215
  expect(pesapal).to be_an_instance_of(Pesapal::Merchant)
263
216
  end
@@ -275,20 +228,7 @@ describe Pesapal::Merchant do
275
228
  end
276
229
  end
277
230
 
278
- describe '#change_env(:production)' do
279
-
280
- it 'sets environment variable' do
281
- pesapal.change_env :production
282
- expect(pesapal.send(:env)).to eq 'production'
283
- end
284
-
285
- it 'sets endpoints for environment' do
286
- expect(pesapal.change_env :production).to eq(production_endpoints)
287
- end
288
- end
289
-
290
231
  describe '#generate_order_url' do
291
-
292
232
  it 'generates iframe url string' do
293
233
  pesapal.order_details = order_details
294
234
  expect(pesapal.generate_order_url).to match %r{https://www.pesapal.com/API/PostPesapalDirectOrderV4\?oauth_callback=.*oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_request_data=.*}
@@ -296,7 +236,6 @@ describe Pesapal::Merchant do
296
236
  end
297
237
 
298
238
  describe '#query_payment_status' do
299
-
300
239
  let(:request) { stub_request(:get, %r{https://www.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
301
240
 
302
241
  it 'gets pending payment status' do
@@ -321,21 +260,21 @@ describe Pesapal::Merchant do
321
260
  end
322
261
 
323
262
  describe '#query_payment_details' do
324
-
325
263
  let(:request) { stub_request(:get, %r{https://www.pesapal.com/API/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
326
264
 
327
265
  it 'gets pending payment details' do
328
266
  request.to_return(status: 200, body: 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
329
- expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(method: 'payment_method',
330
- status: 'payment_status',
331
- merchant_reference: 'merchant_reference',
332
- transaction_tracking_id: 'transaction_tracking_id'
333
- )
267
+ expected_result = {
268
+ method: 'payment_method',
269
+ status: 'payment_status',
270
+ merchant_reference: 'merchant_reference',
271
+ transaction_tracking_id: 'transaction_tracking_id'
272
+ }
273
+ expect(pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq(expected_result)
334
274
  end
335
275
  end
336
276
 
337
277
  describe '#ipn_listener' do
338
-
339
278
  let(:request) { stub_request(:get, %r{https://www.pesapal.com/API/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*}) }
340
279
 
341
280
  it 'gets ipn response for pending status' do
metadata CHANGED
@@ -1,125 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pesapal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Job King'ori Maina
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-25 00:00:00.000000000 Z
11
+ date: 2017-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coveralls
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faker
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: redcarpet
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
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ! '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ! '>='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ! '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ! '>='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: webmock
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ! '>='
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: yard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
102
130
  - !ruby/object:Gem::Version
103
131
  version: '0'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - ! '>='
136
+ - - ">="
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: htmlentities
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
- - - ! '>='
143
+ - - ">="
116
144
  - !ruby/object:Gem::Version
117
145
  version: '0'
118
146
  type: :runtime
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
- - - ! '>='
150
+ - - ">="
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  description: Make authenticated Pesapal API calls without the fuss!
@@ -129,34 +157,41 @@ executables: []
129
157
  extensions: []
130
158
  extra_rdoc_files: []
131
159
  files:
132
- - .coveralls.yml
133
- - .gitignore
134
- - .hound.yml
135
- - .rspec
136
- - .rubocop.yml
137
- - .travis.yml
138
- - .yardopts
160
+ - ".coveralls.yml"
161
+ - ".gitignore"
162
+ - ".hound.yml"
163
+ - ".rspec"
164
+ - ".rubocop.yml"
165
+ - ".travis.yml"
166
+ - ".yardopts"
139
167
  - CHANGELOG.md
140
168
  - CONTRIBUTING.md
141
169
  - Gemfile
142
170
  - LICENSE.md
143
171
  - README.md
144
172
  - Rakefile
145
- - lib/generators/pesapal/install_generator.rb
146
- - lib/generators/templates/README.md
147
- - lib/generators/templates/pesapal.yml
173
+ - docs/.ruby-version
174
+ - docs/Gemfile
175
+ - docs/README.md
176
+ - docs/_config.yml
177
+ - docs/_includes/google-analytics.html
178
+ - docs/_layouts/default.html
179
+ - docs/assets/javascripts/scale.fix.js
180
+ - docs/assets/stylesheets/pygment_trac.css
181
+ - docs/assets/stylesheets/styles.css
182
+ - docs/favicon.ico
183
+ - docs/index.md
148
184
  - lib/pesapal.rb
149
185
  - lib/pesapal/helper/details.rb
150
186
  - lib/pesapal/helper/post.rb
151
187
  - lib/pesapal/helper/status.rb
152
188
  - lib/pesapal/merchant.rb
153
189
  - lib/pesapal/oauth.rb
154
- - lib/pesapal/railtie.rb
155
190
  - lib/pesapal/version.rb
156
191
  - pesapal.gemspec
157
192
  - spec/pesapal_merchant_spec.rb
158
193
  - spec/spec_helper.rb
159
- homepage: http://itsmrwave.github.io/pesapal-gem
194
+ homepage: http://itskingori.github.io/pesapal-gem
160
195
  licenses:
161
196
  - MIT
162
197
  metadata: {}
@@ -166,17 +201,17 @@ require_paths:
166
201
  - lib
167
202
  required_ruby_version: !ruby/object:Gem::Requirement
168
203
  requirements:
169
- - - ! '>='
204
+ - - ">="
170
205
  - !ruby/object:Gem::Version
171
206
  version: '2.0'
172
207
  required_rubygems_version: !ruby/object:Gem::Requirement
173
208
  requirements:
174
- - - ! '>='
209
+ - - ">="
175
210
  - !ruby/object:Gem::Version
176
211
  version: '0'
177
212
  requirements: []
178
213
  rubyforge_project:
179
- rubygems_version: 2.6.3
214
+ rubygems_version: 2.6.8
180
215
  signing_key:
181
216
  specification_version: 4
182
217
  summary: Make authenticated Pesapal API calls without the fuss! Handles all the oAuth
@@ -185,4 +220,3 @@ summary: Make authenticated Pesapal API calls without the fuss! Handles all the
185
220
  test_files:
186
221
  - spec/pesapal_merchant_spec.rb
187
222
  - spec/spec_helper.rb
188
- has_rdoc: