mpayer_ruby 0.0.07 → 0.0.08
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Guardfile +1 -0
- data/README.md +16 -0
- data/Rakefile +11 -0
- data/lib/mpayer_ruby.rb +8 -8
- data/lib/{mpayer → mpayer_ruby}/configuration.rb +0 -0
- data/lib/{mpayer → mpayer_ruby}/endpoints/account.rb +0 -0
- data/lib/{mpayer → mpayer_ruby}/endpoints/client.rb +0 -0
- data/lib/{mpayer → mpayer_ruby}/endpoints/endpoint.rb +0 -0
- data/lib/{mpayer → mpayer_ruby}/endpoints/payable.rb +0 -0
- data/lib/{mpayer → mpayer_ruby}/endpoints/transaction.rb +0 -0
- data/lib/mpayer_ruby/fetch.rb +42 -0
- data/lib/mpayer_ruby/support/fake_mpayer.rb +25 -0
- data/lib/mpayer_ruby/support/fake_mpayer/accounts/.keep +0 -0
- data/lib/mpayer_ruby/support/fake_mpayer/clients/.keep +0 -0
- data/lib/mpayer_ruby/support/fake_mpayer/payables/.keep +0 -0
- data/lib/mpayer_ruby/support/fake_mpayer/transactions/.keep +0 -0
- data/lib/mpayer_ruby/version.rb +3 -0
- data/mpayer_ruby.gemspec +3 -1
- metadata +43 -10
- data/lib/mpayer/fetch.rb +0 -17
- data/lib/mpayer/version.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3224e1ac885fb581df6f076111b3dbd33dac6346
|
|
4
|
+
data.tar.gz: bce968afeff48ff5291978d889aa66f1f75f953f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 30ff19b50765460720f657c8890d7b357fd4e0624efb495fbec7ce7a5c28f966efe08fd2073a83c2d2ddef85b9771bda567a73867cbafec2b004dbd7f910624a
|
|
7
|
+
data.tar.gz: eb602d266e6f6b592c467a37de120804660f70c9b60b3e308bcf836e3b56abe01303d9e565364e5d8c85a10be95faeb75df7eddb4d09c681c98c6c332a382c15
|
data/.gitignore
CHANGED
data/Guardfile
CHANGED
data/README.md
CHANGED
|
@@ -208,6 +208,22 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
|
208
208
|
|
|
209
209
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
|
210
210
|
|
|
211
|
+
## Testing
|
|
212
|
+
mpayer_ruby has used `webmock` gem to stub out real request to mpayer.co.ke. In order to make tests work, first generate the json api on file using the rake task
|
|
213
|
+
|
|
214
|
+
$ rake load:mpayer
|
|
215
|
+
|
|
216
|
+
This will generate local copies of mpayer endpoints for testing. Should work well for unit testing.
|
|
217
|
+
|
|
218
|
+
WHen you want to run test against real mpayer.co.ke for real responses, run it with the environmental variable `CI_TEST=ON` as follows
|
|
219
|
+
|
|
220
|
+
$ CI_TEST=ON rake test
|
|
221
|
+
|
|
222
|
+
or
|
|
223
|
+
|
|
224
|
+
$ CI_TEST=ON bundle exec guard
|
|
225
|
+
|
|
226
|
+
|
|
211
227
|
## Todo
|
|
212
228
|
1. Add Webmock for faster / localised test or sinatra app method
|
|
213
229
|
2. Add versioning
|
data/Rakefile
CHANGED
|
@@ -6,4 +6,15 @@ Rake::TestTask.new do |task|
|
|
|
6
6
|
task.pattern = 'test/**/*_test.rb'
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
namespace :load do
|
|
10
|
+
desc "Load Mpayer to local from Test run for offline testing"
|
|
11
|
+
task :mpayer do
|
|
12
|
+
# Delete current files first
|
|
13
|
+
File.delete(*Dir.glob('lib/mpayer_ruby/support/**/*.json'))
|
|
14
|
+
ENV['LOAD_MPAYER'] = 'true'
|
|
15
|
+
Rake::Task["test"].invoke
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
9
20
|
task :default => :test
|
data/lib/mpayer_ruby.rb
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require "wsse"
|
|
2
2
|
require "httparty"
|
|
3
3
|
require "hashie"
|
|
4
|
-
require "
|
|
5
|
-
require "
|
|
6
|
-
require "
|
|
7
|
-
require "
|
|
8
|
-
require "
|
|
9
|
-
require "
|
|
10
|
-
require "
|
|
11
|
-
require "
|
|
4
|
+
require "mpayer_ruby/version"
|
|
5
|
+
require "mpayer_ruby/configuration"
|
|
6
|
+
require "mpayer_ruby/fetch"
|
|
7
|
+
require "mpayer_ruby/endpoints/endpoint"
|
|
8
|
+
require "mpayer_ruby/endpoints/client"
|
|
9
|
+
require "mpayer_ruby/endpoints/transaction"
|
|
10
|
+
require "mpayer_ruby/endpoints/account"
|
|
11
|
+
require "mpayer_ruby/endpoints/payable"
|
|
12
12
|
|
|
13
13
|
# begin
|
|
14
14
|
# require "pry"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Mpayer
|
|
2
|
+
class Fetch
|
|
3
|
+
include HTTParty
|
|
4
|
+
# base_uri "http://beta.json-generator.com"
|
|
5
|
+
base_uri "https://app.mpayer.co.ke/api/"
|
|
6
|
+
parser proc {|data| Hashie::Mash.new(response: (JSON.parse(data) rescue {data:data}.to_json) ).response}
|
|
7
|
+
format :json
|
|
8
|
+
headers
|
|
9
|
+
|
|
10
|
+
class << self
|
|
11
|
+
def headers
|
|
12
|
+
Mpayer.configuration.header.merge!(super)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
%w(get put post delete).each do |m|
|
|
16
|
+
define_method m do |path, options={}, &block|
|
|
17
|
+
res = perform_request Net::HTTP::Put, path, options, &block if m == 'put'
|
|
18
|
+
res = perform_request Net::HTTP::Get, path, options, &block if m == 'get'
|
|
19
|
+
res = perform_request Net::HTTP::Post, path, options, &block if m == 'post'
|
|
20
|
+
res = perform_request Net::HTTP::Delete, path, options, &block if m == 'delete'
|
|
21
|
+
save_json(res) if load_json?
|
|
22
|
+
res
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def save_json(response)
|
|
27
|
+
request_method = response.request.http_method.name.split('::').last.upcase
|
|
28
|
+
file_path = response.request.path.to_s
|
|
29
|
+
slash,model,*file_name = file_path.split('/')
|
|
30
|
+
file_location = "lib/mpayer_ruby/support/fake_mpayer/#{model}/#{request_method}_#{file_name.join('_')}.json"
|
|
31
|
+
File.write(file_location, response.body)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def load_json?
|
|
35
|
+
# load JSON if WebMock is off while testing and only in local env with load mpayer turned on
|
|
36
|
+
defined?(WebMock).nil? and ENV['CI_TEST'].nil? and defined?(Minitest) and ENV['LOAD_MPAYER'] == "true"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'sinatra/base'
|
|
2
|
+
require 'tilt/erb'
|
|
3
|
+
|
|
4
|
+
class FakeMpayer < Sinatra::Base
|
|
5
|
+
|
|
6
|
+
[ :get, :post, :put, :delete ].each do |method|
|
|
7
|
+
send method, /.*/ do
|
|
8
|
+
if (request.env['HTTP_X_WSSE'].empty? rescue true)
|
|
9
|
+
[200, {}, [{base:["Authentication Failed"]}.to_json]]
|
|
10
|
+
else
|
|
11
|
+
slash,api,model,*path = request.path_info.split('/')
|
|
12
|
+
json_response 200, "#{model}/#{request.request_method}_#{path.join('_')}.json"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def json_response(response_code, file_name)
|
|
20
|
+
content_type :json
|
|
21
|
+
status response_code
|
|
22
|
+
headers "content-type"=>["application/json; charset=utf-8"]
|
|
23
|
+
erb File.open(File.dirname(__FILE__) + '/fake_mpayer/' + file_name, 'rb').read
|
|
24
|
+
end
|
|
25
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/mpayer_ruby.gemspec
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require '
|
|
4
|
+
require 'mpayer_ruby/version'
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "mpayer_ruby"
|
|
@@ -38,6 +38,8 @@ Gem::Specification.new do |spec|
|
|
|
38
38
|
spec.add_development_dependency "pry-nav", "~> 0.2"
|
|
39
39
|
spec.add_development_dependency "pry-alias", "~> 0.0"
|
|
40
40
|
spec.add_development_dependency "coveralls", '~> 0'
|
|
41
|
+
spec.add_development_dependency "webmock", '~> 1.21'
|
|
42
|
+
spec.add_development_dependency "sinatra", '~> 1.4'
|
|
41
43
|
|
|
42
44
|
spec.add_dependency 'httparty', "~> 0.13"
|
|
43
45
|
spec.add_dependency 'wsse', "~> 0.0"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mpayer_ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.08
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kariuki Gathitu
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-05-
|
|
11
|
+
date: 2015-05-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -150,6 +150,34 @@ dependencies:
|
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: webmock
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '1.21'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '1.21'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: sinatra
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '1.4'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '1.4'
|
|
153
181
|
- !ruby/object:Gem::Dependency
|
|
154
182
|
name: httparty
|
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -211,15 +239,20 @@ files:
|
|
|
211
239
|
- bin/console
|
|
212
240
|
- bin/setup
|
|
213
241
|
- lib/mpayer-ruby.rb
|
|
214
|
-
- lib/mpayer/configuration.rb
|
|
215
|
-
- lib/mpayer/endpoints/account.rb
|
|
216
|
-
- lib/mpayer/endpoints/client.rb
|
|
217
|
-
- lib/mpayer/endpoints/endpoint.rb
|
|
218
|
-
- lib/mpayer/endpoints/payable.rb
|
|
219
|
-
- lib/mpayer/endpoints/transaction.rb
|
|
220
|
-
- lib/mpayer/fetch.rb
|
|
221
|
-
- lib/mpayer/version.rb
|
|
222
242
|
- lib/mpayer_ruby.rb
|
|
243
|
+
- lib/mpayer_ruby/configuration.rb
|
|
244
|
+
- lib/mpayer_ruby/endpoints/account.rb
|
|
245
|
+
- lib/mpayer_ruby/endpoints/client.rb
|
|
246
|
+
- lib/mpayer_ruby/endpoints/endpoint.rb
|
|
247
|
+
- lib/mpayer_ruby/endpoints/payable.rb
|
|
248
|
+
- lib/mpayer_ruby/endpoints/transaction.rb
|
|
249
|
+
- lib/mpayer_ruby/fetch.rb
|
|
250
|
+
- lib/mpayer_ruby/support/fake_mpayer.rb
|
|
251
|
+
- lib/mpayer_ruby/support/fake_mpayer/accounts/.keep
|
|
252
|
+
- lib/mpayer_ruby/support/fake_mpayer/clients/.keep
|
|
253
|
+
- lib/mpayer_ruby/support/fake_mpayer/payables/.keep
|
|
254
|
+
- lib/mpayer_ruby/support/fake_mpayer/transactions/.keep
|
|
255
|
+
- lib/mpayer_ruby/version.rb
|
|
223
256
|
- mpayer_ruby.gemspec
|
|
224
257
|
homepage: https://github.com/kgathi2/mpayer_ruby
|
|
225
258
|
licenses:
|
data/lib/mpayer/fetch.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Mpayer
|
|
2
|
-
class Fetch
|
|
3
|
-
include HTTParty
|
|
4
|
-
# base_uri "http://beta.json-generator.com"
|
|
5
|
-
base_uri "https://app.mpayer.co.ke/api/"
|
|
6
|
-
parser proc {|data| Hashie::Mash.new(response: (JSON.parse(data) rescue {data:data}.to_json) ).response}
|
|
7
|
-
format :json
|
|
8
|
-
headers
|
|
9
|
-
|
|
10
|
-
class << self
|
|
11
|
-
def headers
|
|
12
|
-
Mpayer.configuration.header.merge!(super)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
end
|
|
17
|
-
end
|
data/lib/mpayer/version.rb
DELETED