payg 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.
- checksums.yaml +7 -0
- data/.editorconfig +12 -0
- data/.rubocop.yml +22 -0
- data/.simplecov +4 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +81 -0
- data/LICENSE.txt +22 -0
- data/README.md +57 -0
- data/Rakefile +26 -0
- data/lib/payg/constants.rb +6 -0
- data/lib/payg/entity.rb +46 -0
- data/lib/payg/errors/bad_request_error.rb +14 -0
- data/lib/payg/errors/gateway_error.rb +7 -0
- data/lib/payg/errors/payg_error.rb +11 -0
- data/lib/payg/errors/server_error.rb +7 -0
- data/lib/payg/errors.rb +4 -0
- data/lib/payg/order.rb +24 -0
- data/lib/payg/request.rb +104 -0
- data/lib/payg/utility.rb +11 -0
- data/lib/payg.rb +17 -0
- data/payg-ruby.gemspec +35 -0
- metadata +160 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: faa42f5e1ef91d4a79ab9acdf6ea97f68a3c62dc544bacaf2c71f79e8a04be8c
|
4
|
+
data.tar.gz: ae28c96666ba656d6e7bb50023a122e0df20212a41aad2a36f0e85798bcb285d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0c500ecc89b213d78ab0522f009530cf9c8080baaae363db96f1f68fff02a9b21447e59f590b9d2e20105d01384105fb9895db073a044b3d06231b7741f3f657
|
7
|
+
data.tar.gz: f290106b645671ef2ecc44b54c9fcdbe7c6e8e22a3bf2d2ca48a682504d1e8079880ac7550a2a9cac998f2b6e8bfa66ed4e4e486171b2de284dcf082fb1913fa
|
data/.editorconfig
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
; This file is for unifying the coding style for different editors and IDEs.
|
2
|
+
; More information at http://EditorConfig.org
|
3
|
+
|
4
|
+
root = true
|
5
|
+
; Use 2 spaces for indentation in all files
|
6
|
+
[*]
|
7
|
+
end_of_line = lf
|
8
|
+
charset = utf-8
|
9
|
+
trim_trailing_whitespace = true
|
10
|
+
indent_style = space
|
11
|
+
indent_size = 2
|
12
|
+
insert_final_newline = true
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Metrics/AbcSize:
|
2
|
+
Max: 18
|
3
|
+
|
4
|
+
# Configuration parameters: AllowURI, URISchemes.
|
5
|
+
Metrics/LineLength:
|
6
|
+
Max: 110
|
7
|
+
AllowURI: true
|
8
|
+
|
9
|
+
Style/SymbolArray:
|
10
|
+
MinSize: 3
|
11
|
+
|
12
|
+
Metrics/MethodLength:
|
13
|
+
Max: 15
|
14
|
+
|
15
|
+
Naming/MethodParameterName:
|
16
|
+
MinNameLength: 1
|
17
|
+
AllowNamesEndingInNumbers: false
|
18
|
+
|
19
|
+
# Near-duplicate of a file from an external package, want to keep changes minimal
|
20
|
+
AllCops:
|
21
|
+
Exclude:
|
22
|
+
- 'lib/extensions/httparty/hash_conversions.rb'
|
data/.simplecov
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
payg (0.0.1)
|
5
|
+
httparty (~> 0.14)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
addressable (2.8.5)
|
11
|
+
public_suffix (>= 2.0.2, < 6.0)
|
12
|
+
ast (2.4.2)
|
13
|
+
coveralls (0.8.23)
|
14
|
+
json (>= 1.8, < 3)
|
15
|
+
simplecov (~> 0.16.1)
|
16
|
+
term-ansicolor (~> 1.3)
|
17
|
+
thor (>= 0.19.4, < 2.0)
|
18
|
+
tins (~> 1.6)
|
19
|
+
crack (0.4.5)
|
20
|
+
rexml
|
21
|
+
docile (1.3.5)
|
22
|
+
hashdiff (1.0.1)
|
23
|
+
httparty (0.21.0)
|
24
|
+
mini_mime (>= 1.0.0)
|
25
|
+
multi_xml (>= 0.5.2)
|
26
|
+
json (2.6.3)
|
27
|
+
mini_mime (1.1.2)
|
28
|
+
minitest (5.15.0)
|
29
|
+
multi_xml (0.6.0)
|
30
|
+
parallel (1.20.1)
|
31
|
+
parser (3.2.2.4)
|
32
|
+
ast (~> 2.4.1)
|
33
|
+
racc
|
34
|
+
public_suffix (4.0.7)
|
35
|
+
racc (1.5.2)
|
36
|
+
rainbow (3.1.1)
|
37
|
+
rake (12.3.3)
|
38
|
+
regexp_parser (2.8.1)
|
39
|
+
rexml (3.2.5)
|
40
|
+
rubocop (0.93.1)
|
41
|
+
parallel (~> 1.10)
|
42
|
+
parser (>= 2.7.1.5)
|
43
|
+
rainbow (>= 2.2.2, < 4.0)
|
44
|
+
regexp_parser (>= 1.8)
|
45
|
+
rexml
|
46
|
+
rubocop-ast (>= 0.6.0)
|
47
|
+
ruby-progressbar (~> 1.7)
|
48
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
49
|
+
rubocop-ast (1.4.1)
|
50
|
+
parser (>= 2.7.1.5)
|
51
|
+
ruby-progressbar (1.13.0)
|
52
|
+
simplecov (0.16.1)
|
53
|
+
docile (~> 1.1)
|
54
|
+
json (>= 1.8, < 3)
|
55
|
+
simplecov-html (~> 0.10.0)
|
56
|
+
simplecov-html (0.10.2)
|
57
|
+
sync (0.5.0)
|
58
|
+
term-ansicolor (1.7.1)
|
59
|
+
tins (~> 1.0)
|
60
|
+
thor (1.2.2)
|
61
|
+
tins (1.32.1)
|
62
|
+
sync
|
63
|
+
unicode-display_width (1.8.0)
|
64
|
+
webmock (3.18.1)
|
65
|
+
addressable (>= 2.8.0)
|
66
|
+
crack (>= 0.3.2)
|
67
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
68
|
+
|
69
|
+
PLATFORMS
|
70
|
+
ruby
|
71
|
+
|
72
|
+
DEPENDENCIES
|
73
|
+
coveralls (~> 0.8)
|
74
|
+
minitest (~> 5.11)
|
75
|
+
payg!
|
76
|
+
rake (~> 12.0)
|
77
|
+
rubocop (~> 0.49)
|
78
|
+
webmock (~> 3.0)
|
79
|
+
|
80
|
+
BUNDLED WITH
|
81
|
+
2.1.4
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2019 Payg
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
For communicating with the Payg API, use this basic Ruby gem. This is primarily intended for those who want to connect with the Payg API programatically.
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
Add this line to your application's Gemfile:
|
6
|
+
|
7
|
+
```rb
|
8
|
+
gem 'payg'
|
9
|
+
```
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install payg
|
18
|
+
|
19
|
+
## Requirements
|
20
|
+
|
21
|
+
Ruby 2.6.8 or later
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
Remember to `require 'payg'` before anything else.
|
25
|
+
|
26
|
+
Next, you need to initialize your AuthenticationKey, AuthenticationToken and MerchantKeyID using the following:
|
27
|
+
|
28
|
+
```rb
|
29
|
+
Payg.init('AuthenticationKey', 'AuthenticationToken', 'MerchantKeyId')
|
30
|
+
```
|
31
|
+
|
32
|
+
You can find your API keys at <https://payg.in/merchant/login>.
|
33
|
+
|
34
|
+
If you are using rails, the right place to do this might be `config/initializers/payg.rb`.
|
35
|
+
|
36
|
+
## Usage
|
37
|
+
|
38
|
+
### Create order
|
39
|
+
|
40
|
+
```rb
|
41
|
+
|
42
|
+
payload = { Merchantkeyid: "8792", UniqueRequestId: "035bbf02a1f", RequestDateTime: "06232021", RedirectUrl: "https://payg.in", OrderAmount: "100", OrderAmountData: { AmountTypeDesc: "3", Amount: "2"}, CustomerData: { Mobil
|
43
|
+
eNo: "8619083450", Email: "demo@gmail.com"} }
|
44
|
+
|
45
|
+
Payg::Order.create(payload.to_json)
|
46
|
+
```
|
47
|
+
|
48
|
+
|
49
|
+
### Order detail
|
50
|
+
|
51
|
+
```rb
|
52
|
+
|
53
|
+
payload = { OrderKeyId: "76719231011M8792Uf3f5b5ee3fe", MerchantKeyId: '8792', PaymentType: '' }
|
54
|
+
|
55
|
+
Payg::Order.detail(payload.to_json)
|
56
|
+
```
|
57
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
3
|
+
# Don't try to run rubocop in 1.9.3
|
4
|
+
require 'rubocop/rake_task' if RUBY_VERSION >= '2.1.0'
|
5
|
+
|
6
|
+
Rake::TestTask.new do |t|
|
7
|
+
t.libs << 'test'
|
8
|
+
t.warning = true
|
9
|
+
t.pattern = 'test/razorpay/test_*.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Run tests'
|
13
|
+
task default: [:test]
|
14
|
+
|
15
|
+
desc 'Run rubocop'
|
16
|
+
task :rubocop do
|
17
|
+
RuboCop::RakeTask.new
|
18
|
+
end
|
19
|
+
|
20
|
+
FileList['test/razorpay/test_*.rb'].each do |file|
|
21
|
+
group = File.basename(file, '.rb').split('_').drop(1).join('_').to_sym
|
22
|
+
Rake::TestTask.new(group) do |t|
|
23
|
+
t.libs << 'test'
|
24
|
+
t.test_files = [file]
|
25
|
+
end
|
26
|
+
end
|
data/lib/payg/entity.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Payg
|
4
|
+
# Entity class is the base class for all Payg objects
|
5
|
+
# This saves data in a hash internally, and makes it available
|
6
|
+
# via direct methods
|
7
|
+
class Entity
|
8
|
+
attr_reader :attributes
|
9
|
+
|
10
|
+
def initialize(attributes)
|
11
|
+
@attributes = attributes
|
12
|
+
end
|
13
|
+
|
14
|
+
# This method fakes attr_reader, but uses
|
15
|
+
# the @attributes hash as the source, instead of
|
16
|
+
# instance variables
|
17
|
+
def method_missing(name)
|
18
|
+
if @attributes.key? name.to_s
|
19
|
+
@attributes[name.to_s]
|
20
|
+
else
|
21
|
+
super
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def respond_to_missing?(method_name, include_private = false)
|
26
|
+
@attributes.key?(method_name.to_s) || super
|
27
|
+
end
|
28
|
+
|
29
|
+
# Public: Convert the Entity object to JSON
|
30
|
+
# Returns the JSON representation of the Entity (as a string)
|
31
|
+
def to_json(*args)
|
32
|
+
@attributes.to_json(*args)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Mutates the entity in accordance with
|
36
|
+
# the block passed to this construct
|
37
|
+
#
|
38
|
+
# Used to implement bang methods, by calling
|
39
|
+
# the non-bang method in the passed block
|
40
|
+
def with_a_bang
|
41
|
+
mutated_entity = yield
|
42
|
+
@attributes = mutated_entity.attributes
|
43
|
+
mutated_entity
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'payg/errors/payg_error'
|
2
|
+
|
3
|
+
module Payg
|
4
|
+
# Bad request to API. Missing a field or an invalid field.
|
5
|
+
# Error in merchant request. Check the description and correct the request accordingly.
|
6
|
+
class BadRequestError < Payg::Error
|
7
|
+
attr_reader :field
|
8
|
+
|
9
|
+
def initialize(code, status, field = nil)
|
10
|
+
super(code, status)
|
11
|
+
@field = field
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/payg/errors.rb
ADDED
data/lib/payg/order.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'payg/request'
|
2
|
+
require 'payg/entity'
|
3
|
+
|
4
|
+
module Payg
|
5
|
+
# Order API allows you to associate
|
6
|
+
# Payments with an order entity
|
7
|
+
class Order < Entity
|
8
|
+
def self.request
|
9
|
+
Payg::Request.new('order')
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.create(options)
|
13
|
+
request.post "/create", options
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.detail(options)
|
17
|
+
request.post "/detail", options
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.refund(options)
|
21
|
+
request.post "/detail", options
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/payg/request.rb
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'payg/constants'
|
3
|
+
|
4
|
+
module Payg
|
5
|
+
# Request objects are used to create fetch
|
6
|
+
# objects, which make requests to the server
|
7
|
+
# using HTTParty
|
8
|
+
class Request
|
9
|
+
include HTTParty
|
10
|
+
|
11
|
+
def initialize(entity_name = nil)
|
12
|
+
self.class.base_uri(Payg::BASE_URI)
|
13
|
+
@entity_name = entity_name
|
14
|
+
|
15
|
+
headers = {
|
16
|
+
'User-Agent' => "Payg-Ruby/#{Payg::VERSION}; Ruby/#{RUBY_VERSION}",
|
17
|
+
'Authorization' => "basic #{Payg::Utility.base64_encode}",
|
18
|
+
'Content-Type' => 'application/json'
|
19
|
+
}
|
20
|
+
# Order is important to give precedence to predefined headers
|
21
|
+
|
22
|
+
@options = {
|
23
|
+
timeout: 30,
|
24
|
+
headers: headers
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def post(url, data = {})
|
29
|
+
request :post, "/#{@entity_name}/#{url}", data
|
30
|
+
end
|
31
|
+
|
32
|
+
def get(url, data = {})
|
33
|
+
request :get, "/#{@entity_name}/#{url}", data
|
34
|
+
end
|
35
|
+
|
36
|
+
def delete(url)
|
37
|
+
request :delete, "/#{@entity_name}/#{url}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def put(id, data = {})
|
41
|
+
request :put, "/#{@entity_name}/#{id}", data
|
42
|
+
end
|
43
|
+
|
44
|
+
def patch(id, data = {})
|
45
|
+
request :patch, "/#{@entity_name}/#{id}", data
|
46
|
+
end
|
47
|
+
|
48
|
+
def request(method, url, data = {})
|
49
|
+
create_instance raw_request(method, url, data)
|
50
|
+
end
|
51
|
+
|
52
|
+
def raw_request(method, url, data = {})
|
53
|
+
case method
|
54
|
+
when :get
|
55
|
+
@options[:query] = data
|
56
|
+
when :post, :put, :patch
|
57
|
+
@options[:body] = data
|
58
|
+
end
|
59
|
+
|
60
|
+
self.class.send(method, url, @options)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Since we need to change the base route
|
64
|
+
def make_test_request
|
65
|
+
self.class.get Payg::TEST_URL, @options
|
66
|
+
end
|
67
|
+
|
68
|
+
# Recursively builds entity instances
|
69
|
+
# out of all hashes in the response object
|
70
|
+
def create_instance(res)
|
71
|
+
response = res.parsed_response
|
72
|
+
|
73
|
+
if response.is_a?(Array)==true || response.to_s.length == 0
|
74
|
+
return response
|
75
|
+
end
|
76
|
+
|
77
|
+
# if there was an error, throw it
|
78
|
+
raise_error(response['error'], res.code) if response.nil? || response.key?('error') && res.code !=200
|
79
|
+
# There must be a top level entity
|
80
|
+
# This is either one of order, refund, or collection at present
|
81
|
+
begin
|
82
|
+
class_name = response['entity'].split('_').collect(&:capitalize).join
|
83
|
+
klass = Payg.const_get class_name
|
84
|
+
rescue NameError
|
85
|
+
# Use Entity class if we don't find any
|
86
|
+
klass = Payg::Entity
|
87
|
+
end
|
88
|
+
klass.new(response)
|
89
|
+
end
|
90
|
+
|
91
|
+
def raise_error(error, status)
|
92
|
+
# Get the error class name, require it and instantiate an error
|
93
|
+
class_name = error['code'].split('_').map(&:capitalize).join('')
|
94
|
+
args = [error['code'], status]
|
95
|
+
args.push error['field'] if error.key?('field')
|
96
|
+
require "payg/errors/#{error['code'].downcase}"
|
97
|
+
klass = Payg.const_get(class_name)
|
98
|
+
raise klass.new(*args), error['description']
|
99
|
+
rescue NameError, LoadError
|
100
|
+
# We got an unknown error, cast it to Error for now
|
101
|
+
raise Payg::Error.new, 'Unknown Error'
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/lib/payg/utility.rb
ADDED
data/lib/payg.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'payg/order'
|
2
|
+
require 'payg/errors'
|
3
|
+
require 'payg/utility'
|
4
|
+
require 'payg/constants'
|
5
|
+
|
6
|
+
|
7
|
+
# Base Payg module
|
8
|
+
module Payg
|
9
|
+
class << self
|
10
|
+
attr_accessor :auth
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.initialize(key, token, merchant_id)
|
14
|
+
self.auth = {key: key, token: token, merchant_id: merchant_id}
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/payg-ruby.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
lib = File.expand_path('lib', Dir.pwd)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'payg/constants'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'payg'
|
7
|
+
spec.version = Payg::VERSION
|
8
|
+
spec.authors = ['Charan']
|
9
|
+
spec.email = ['care@payg.in']
|
10
|
+
spec.summary = "Payg's Ruby API"
|
11
|
+
spec.description = 'Payg API official ruby bindings'
|
12
|
+
spec.homepage = 'https://payg.com/'
|
13
|
+
|
14
|
+
spec.files = `git ls-files`.split("\n")
|
15
|
+
spec.executables = spec.files.grep(/^bin/) { |f| File.basename(f) }
|
16
|
+
spec.require_paths = ['lib']
|
17
|
+
|
18
|
+
spec.add_dependency 'httparty', '~> 0.14'
|
19
|
+
|
20
|
+
spec.add_development_dependency 'coveralls', '~> 0.8'
|
21
|
+
spec.add_development_dependency 'minitest', '~> 5.11'
|
22
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
23
|
+
spec.add_development_dependency 'pry'
|
24
|
+
|
25
|
+
if RUBY_VERSION >= '2.1.0'
|
26
|
+
# rubocop is only run in the latest ruby build
|
27
|
+
# so we use the latest version and don't switch to a
|
28
|
+
# older version for 1.9.3
|
29
|
+
spec.add_development_dependency 'rubocop', '~> 0.49'
|
30
|
+
spec.add_development_dependency 'webmock', '~> 3.0'
|
31
|
+
else
|
32
|
+
# Webmock 3.0 does not support Ruby 1.9.3
|
33
|
+
spec.add_development_dependency 'webmock', '~> 2.3'
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: payg
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Charan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-10-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.14'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: coveralls
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.11'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.11'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '12.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '12.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
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: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.49'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.49'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.0'
|
111
|
+
description: Payg API official ruby bindings
|
112
|
+
email:
|
113
|
+
- care@payg.in
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".editorconfig"
|
119
|
+
- ".rubocop.yml"
|
120
|
+
- ".simplecov"
|
121
|
+
- Gemfile
|
122
|
+
- Gemfile.lock
|
123
|
+
- LICENSE.txt
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- lib/payg.rb
|
127
|
+
- lib/payg/constants.rb
|
128
|
+
- lib/payg/entity.rb
|
129
|
+
- lib/payg/errors.rb
|
130
|
+
- lib/payg/errors/bad_request_error.rb
|
131
|
+
- lib/payg/errors/gateway_error.rb
|
132
|
+
- lib/payg/errors/payg_error.rb
|
133
|
+
- lib/payg/errors/server_error.rb
|
134
|
+
- lib/payg/order.rb
|
135
|
+
- lib/payg/request.rb
|
136
|
+
- lib/payg/utility.rb
|
137
|
+
- payg-ruby.gemspec
|
138
|
+
homepage: https://payg.com/
|
139
|
+
licenses: []
|
140
|
+
metadata: {}
|
141
|
+
post_install_message:
|
142
|
+
rdoc_options: []
|
143
|
+
require_paths:
|
144
|
+
- lib
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
requirements: []
|
156
|
+
rubygems_version: 3.0.9
|
157
|
+
signing_key:
|
158
|
+
specification_version: 4
|
159
|
+
summary: Payg's Ruby API
|
160
|
+
test_files: []
|