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 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
@@ -0,0 +1,4 @@
1
+ SimpleCov.start do
2
+ add_filter "test"
3
+ command_name "Minitest"
4
+ end
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in razorpay-ruby.gemspec
4
+ gemspec
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
@@ -0,0 +1,6 @@
1
+ # Version and other constants are defined here
2
+ module Payg
3
+ BASE_URI = 'https://uatapi.payg.in/payment/api/'.freeze
4
+ TEST_URL = 'https://uatapi.payg.in/payment/api/'.freeze
5
+ VERSION = '0.0.1'.freeze
6
+ end
@@ -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
@@ -0,0 +1,7 @@
1
+ require 'payg/errors/payg_error'
2
+
3
+ module Payg
4
+ # Error in Gateway Communication.
5
+ class GatewayError < Payg::Error
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module Payg
2
+ # Default Error class for any unknown errors
3
+ class Error < StandardError
4
+ attr_reader :code, :status
5
+
6
+ def initialize(code = nil, status = nil)
7
+ @code = code
8
+ @status = status
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ require 'payg/errors/payg_error'
2
+
3
+ module Payg
4
+ # There is some problem with the server
5
+ class ServerError < Payg::Error
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ require 'payg/errors/payg_error'
2
+ require 'payg/errors/bad_request_error'
3
+ require 'payg/errors/gateway_error'
4
+ require 'payg/errors/server_error'
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
@@ -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
@@ -0,0 +1,11 @@
1
+ require 'openssl'
2
+ require 'base64'
3
+
4
+ module Payg
5
+ # Helper functions are defined here
6
+ class Utility
7
+ def self.base64_encode
8
+ Base64.strict_encode64("#{Payg.auth[:key]}:#{Payg.auth[:token]}:M:#{Payg.auth[:merchant_id]}")
9
+ end
10
+ end
11
+ end
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: []