pagseguro_next 0.1.0

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: d809b8bae61f471fdaf8452d62055e7fd12b8456c85c00228fa142366aaa61bf
4
+ data.tar.gz: 4639e344cf4951a77730140f90776e06b992c2d9670e07dc38a5c9a8d1202701
5
+ SHA512:
6
+ metadata.gz: 761d6f2f5fbe1fa335bfb00d743119dbb2d91c3ca69450314249b542da1146891ce3accfff22b3689abedbad9566e068220c466aa4142f83f9016ccb77f04556
7
+ data.tar.gz: 8db1410512a170c4ebeac345a7fa137e2ccadaf85434802da134996c3e6bc9e83d6feb88fc1df3e1c764efc0a66d43792c241b57b59d036e6756d2c7a3eac971
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # PagSeguro
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/pagseguro_next`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'pagseguro_next'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install pagseguro_next
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ 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`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/rainerborene/pagseguro_next.
36
+
37
+ ## License
38
+
39
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:spec) do |t|
5
+ t.libs << "spec"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["spec/**/*_spec.rb"]
8
+ end
9
+
10
+ task default: :spec
@@ -0,0 +1,88 @@
1
+ require "faraday"
2
+ require "faraday_middleware"
3
+
4
+ module PagSeguro
5
+ class API
6
+ delegate :get, :post, :put, :patch, to: :@connection
7
+
8
+ attr_reader :options, :logger
9
+
10
+ def initialize(options = {})
11
+ @options = options
12
+ @logger = options.delete(:logger)
13
+ @connection ||= Faraday.new api_url do |conn|
14
+ conn.request :json
15
+ conn.response :xml, content_type: /\bxml$/
16
+ conn.response :json, content_type: /\bjson$/
17
+ conn.response :logger, logger, bodies: true if logger
18
+ conn.adapter :net_http
19
+ conn.params = auth_params
20
+ conn.headers[:accept] = FORMATS[:json]
21
+ end
22
+ end
23
+
24
+ def subscriptions
25
+ @subscriptions ||= Subscriptions.new(self)
26
+ end
27
+
28
+ def payment_orders
29
+ @payment_orders ||= PaymentOrders.new(self)
30
+ end
31
+
32
+ def sessions
33
+ @sessions ||= Sessions.new(self)
34
+ end
35
+
36
+ def plans
37
+ @plans ||= Plans.new(self)
38
+ end
39
+
40
+ def authorizations
41
+ @authorizations ||= Authorizations.new(self)
42
+ end
43
+
44
+ def checkout
45
+ @checkout ||= Checkout.new(self)
46
+ end
47
+
48
+ def transactions
49
+ @transactions ||= Transactions.new(self)
50
+ end
51
+
52
+ def build_url(source, path, params = {})
53
+ url = URI(send("#{source}_url"))
54
+ url.path = path
55
+ url.query = params.to_query
56
+ url.to_s
57
+ end
58
+
59
+ private
60
+
61
+ def site_url
62
+ PagSeguro.uris[environment][:site]
63
+ end
64
+
65
+ def api_url
66
+ PagSeguro.uris[environment][:api]
67
+ end
68
+
69
+ def environment
70
+ options[:environment] || PagSeguro.environment
71
+ end
72
+
73
+ def auth_params
74
+ auth = {}
75
+
76
+ if options.key?(:app) || options.key?(:app_id)
77
+ auth[:appId] = options.fetch :app_id, PagSeguro.app_id
78
+ auth[:appKey] = options.fetch :app_key, PagSeguro.app_key
79
+ auth[:authorizationCode] = options[:authorization_code]
80
+ else
81
+ auth[:token] = options.fetch :token, PagSeguro.token
82
+ auth[:email] = options.fetch :email, PagSeguro.email
83
+ end
84
+
85
+ auth.compact
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,53 @@
1
+ module PagSeguro
2
+ class Authorizations < Base
3
+ PERMISSIONS = {
4
+ checkouts: "CREATE_CHECKOUTS",
5
+ notifications: "RECEIVE_TRANSACTION_NOTIFICATIONS",
6
+ searches: "SEARCH_TRANSACTIONS",
7
+ payments: "DIRECT_PAYMENT",
8
+ refunds: "REFUND_TRANSACTIONS",
9
+ cancels: "CANCEL_TRANSACTIONS",
10
+ direct_pre_approval: "USE_DIRECT_PRE_APPROVAL",
11
+ manage_pre_approvals: "MANAGE_PAYMENT_PRE_APPROVALS"
12
+ }
13
+
14
+ def create(params)
15
+ xml = build_request(params).to_xml
16
+
17
+ response = api.post "/v2/authorizations/request", xml do |conn|
18
+ conn.headers[:content_type] = FORMATS[:xml]
19
+ conn.headers[:accept] = FORMATS[:xml]
20
+ end
21
+
22
+ parse response.body["authorizationRequest"]
23
+ end
24
+
25
+ def find_by_notification_code(code)
26
+ response = api.get "/v2/authorizations/notifications/#{code}" do |conn|
27
+ conn.headers[:content_type] = FORMATS[:xml]
28
+ conn.headers[:accept] = FORMATS[:xml]
29
+ end
30
+
31
+ parse response.body["authorization"]
32
+ end
33
+
34
+ def url(code)
35
+ api.build_url :site, "/v2/authorization/request.jhtml", code: code
36
+ end
37
+
38
+ private
39
+
40
+ def build_request(params)
41
+ builder do
42
+ authorizationRequest do
43
+ redirectURL params[:redirect_url]
44
+ permissions do
45
+ params[:permissions].each do |aliased|
46
+ code PERMISSIONS[aliased]
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,31 @@
1
+ require "nokogiri"
2
+
3
+ module PagSeguro
4
+ class Base
5
+ attr_reader :api
6
+
7
+ def initialize(api)
8
+ @api = api
9
+ end
10
+
11
+ def parse(hash)
12
+ Response.new(hash)
13
+ end
14
+
15
+ def parse_body(response)
16
+ parse response.body
17
+ end
18
+
19
+ def parameterize(hash)
20
+ hash.as_json.deep_transform_keys! do |key|
21
+ key.to_s.camelize(:lower)
22
+ end
23
+ end
24
+
25
+ def builder(&block)
26
+ Nokogiri::XML::Builder.new do |xml|
27
+ xml.instance_eval(&block)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,42 @@
1
+ module PagSeguro
2
+ class Checkout < Base
3
+ def create(params)
4
+ params = build_request(params).to_xml
5
+
6
+ response = api.post "/v2/checkout", params do |conn|
7
+ conn.headers[:content_type] = FORMATS[:xml]
8
+ conn.headers[:accept] = FORMATS[:xml]
9
+ end
10
+
11
+ parse response.body["checkout"]
12
+ end
13
+
14
+ def url(code)
15
+ api.build_url :site, "/v2/checkout/payment.html", code: code
16
+ end
17
+
18
+ private
19
+
20
+ def build_request(params)
21
+ builder do
22
+ checkout do
23
+ currency "BRL"
24
+ sender do
25
+ ip params[:remote_ip]
26
+ end if params.key?(:remote_ip)
27
+ items do
28
+ item do
29
+ id params[:id]
30
+ description params[:description]
31
+ amount format("%.2f", params[:amount].to_f)
32
+ quantity 1
33
+ end
34
+ end
35
+ shipping do
36
+ addressRequired false
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,20 @@
1
+ module PagSeguro
2
+ class PaymentOrders < Base
3
+ class Item < Hashie::Dash
4
+ include Hashie::Extensions::Dash::PropertyTranslation
5
+ include Hashie::Extensions::IgnoreUndeclared
6
+ include Hashie::Extensions::IndifferentAccess
7
+
8
+ property :amount, transform_with: ->(value) { format "R$%.2f", value }
9
+ property :scheduling_date, from: :schedulingDate, transform_with: ->(value) { value.to_date }
10
+ property :last_event_date, from: :lastEventDate, transform_with: ->(value) { value.to_date }
11
+ end
12
+
13
+ def fetch(code, params = {})
14
+ params.reverse_merge! status: 5, page: 0
15
+ response = api.get("/pre-approvals/#{code}/payment-orders", params)
16
+ orders = response.body["paymentOrders"] || {}
17
+ orders.values.map { |item| Item.new item }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,23 @@
1
+ module PagSeguro
2
+ class Plans < Base
3
+ def create(params)
4
+ params[:amount_per_payment] = to_money params[:amount_per_payment]
5
+ params = parameterize params
6
+
7
+ parse_body api.post("/pre-approvals/request", preApproval: params)
8
+ end
9
+
10
+ def update(code, params)
11
+ params[:amount_per_payment] = to_money params[:amount_per_payment]
12
+ params = parameterize params
13
+
14
+ api.put "/pre-approvals/request/#{code}/payment", params
15
+ end
16
+
17
+ private
18
+
19
+ def to_money(value)
20
+ format "%.2f", value.to_f
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ module PagSeguro
2
+ class Response < Hashie::Mash
3
+ protected
4
+
5
+ def convert_key(key)
6
+ key.to_s.underscore
7
+ end
8
+
9
+ def convert_value(val, duping = false)
10
+ obj = super
11
+ obj = self.class.new(obj) if Hashie::Mash == obj
12
+ obj
13
+ end
14
+
15
+ def initializing_reader(key)
16
+ ck = convert_key(key)
17
+ regular_writer(ck, self.class.new) unless key?(ck)
18
+ regular_reader(ck)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ module PagSeguro
2
+ class Sessions < Base
3
+ def create
4
+ response = api.post "/v2/sessions" do |conn|
5
+ conn.headers[:accept] = FORMATS[:xml]
6
+ end
7
+
8
+ parse response.body["session"]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module PagSeguro
2
+ class Subscriptions < Base
3
+ def find_by_notification_code(code)
4
+ parse_body api.get("/pre-approvals/notifications/#{code}")
5
+ end
6
+
7
+ def create(params)
8
+ params = parameterize params
9
+
10
+ parse_body api.post("/pre-approvals", params)
11
+ end
12
+
13
+ def update(code, params)
14
+ params = parameterize params
15
+
16
+ api.put("/pre-approvals/#{code}/payment-method", params)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,40 @@
1
+ module PagSeguro
2
+ class Transactions < Base
3
+ STATUSES = {
4
+ "0" => :initiated,
5
+ "1" => :waiting_payment,
6
+ "2" => :in_analysis,
7
+ "3" => :paid,
8
+ "4" => :available,
9
+ "5" => :in_dispute,
10
+ "6" => :refunded,
11
+ "7" => :cancelled,
12
+ "8" => :chargeback_charged,
13
+ "9" => :contested
14
+ }
15
+
16
+ def find(code)
17
+ response = api.get "/v3/transactions/#{code}" do |conn|
18
+ conn.headers[:accept] = FORMATS[:xml]
19
+ end
20
+
21
+ parse_body response
22
+ end
23
+
24
+ def find_by_notification_code(code)
25
+ response = api.get "/v2/transactions/notifications/#{code}" do |conn|
26
+ conn.headers[:accept] = FORMATS[:xml]
27
+ end
28
+
29
+ parse_body response
30
+ end
31
+
32
+ private
33
+
34
+ def parse_body(response)
35
+ parse(response.body["transaction"]).tap do |transaction|
36
+ transaction.status = STATUSES[transaction.status]
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module PagSeguro
2
+ VERSION = "0.1.0"
3
+ end
data/lib/pagseguro.rb ADDED
@@ -0,0 +1,50 @@
1
+ require "pagseguro/version"
2
+ require "hashie"
3
+ require "active_support/core_ext/string/inflections"
4
+ require "active_support/core_ext/module/delegation"
5
+ require "active_support/core_ext/hash/reverse_merge"
6
+ require "active_support/core_ext/string/conversions"
7
+ require "active_support/core_ext/object/json"
8
+
9
+ module PagSeguro
10
+ autoload :API, "pagseguro/api"
11
+ autoload :Base, "pagseguro/base"
12
+ autoload :Subscriptions, "pagseguro/subscriptions"
13
+ autoload :PaymentOrders, "pagseguro/payment_orders"
14
+ autoload :Sessions, "pagseguro/sessions"
15
+ autoload :Plans, "pagseguro/plans"
16
+ autoload :Authorizations, "pagseguro/authorizations"
17
+ autoload :Checkout, "pagseguro/checkout"
18
+ autoload :Transactions, "pagseguro/transactions"
19
+ autoload :Response, "pagseguro/response"
20
+
21
+ FORMATS = {
22
+ json: "application/vnd.pagseguro.com.br.v3+json;charset=ISO-8859-1",
23
+ xml: "application/xml;charset=ISO-8859-1"
24
+ }
25
+
26
+ class << self
27
+ attr_accessor :token
28
+ attr_accessor :email
29
+ attr_accessor :app_id
30
+ attr_accessor :app_key
31
+ attr_accessor :environment
32
+ end
33
+
34
+ def self.configure(&block)
35
+ instance_eval(&block)
36
+ end
37
+
38
+ def self.uris
39
+ @uris ||= {
40
+ production: {
41
+ api: "https://ws.pagseguro.uol.com.br",
42
+ site: "https://pagseguro.uol.com.br"
43
+ },
44
+ sandbox: {
45
+ site: "https://sandbox.pagseguro.uol.com.br",
46
+ api: "https://ws.sandbox.pagseguro.uol.com.br"
47
+ }
48
+ }
49
+ end
50
+ end
@@ -0,0 +1 @@
1
+ require_relative "pagseguro"
@@ -0,0 +1,31 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "pagseguro/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "pagseguro_next"
7
+ spec.version = PagSeguro::VERSION
8
+ spec.authors = ["Rainer Borene"]
9
+ spec.email = ["rainerborene@gmail.com"]
10
+
11
+ spec.summary = "Yet another client to PagSeguro API"
12
+ spec.description = "Yet another client to PagSeguro API"
13
+ spec.homepage = "https://github.com/rainerborene/pagseguro_next"
14
+ spec.license = "MIT"
15
+ spec.files = %w(README.md Rakefile pagseguro_next.gemspec)
16
+ spec.files += Dir.glob("lib/**/*.rb")
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_dependency "faraday", [">= 0.7.4", "< 1.0"]
20
+ spec.add_dependency "faraday_middleware", "~> 0.13"
21
+ spec.add_dependency "hashie", [">= 3.4.6", "< 3.7.0"]
22
+ spec.add_dependency "nokogiri", ">= 1.6"
23
+ spec.add_dependency "activesupport", ">= 4"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.17"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "minitest", "~> 5.0"
28
+ spec.add_development_dependency "vcr", "~> 4.0"
29
+ spec.add_development_dependency "webmock", "~> 3.5"
30
+ spec.add_development_dependency "pry"
31
+ end
metadata ADDED
@@ -0,0 +1,225 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pagseguro_next
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rainer Borene
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.7.4
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.7.4
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: faraday_middleware
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.13'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.13'
47
+ - !ruby/object:Gem::Dependency
48
+ name: hashie
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 3.4.6
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: 3.7.0
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 3.4.6
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 3.7.0
67
+ - !ruby/object:Gem::Dependency
68
+ name: nokogiri
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '1.6'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '1.6'
81
+ - !ruby/object:Gem::Dependency
82
+ name: activesupport
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '4'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '4'
95
+ - !ruby/object:Gem::Dependency
96
+ name: bundler
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.17'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.17'
109
+ - !ruby/object:Gem::Dependency
110
+ name: rake
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '10.0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '10.0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: minitest
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '5.0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '5.0'
137
+ - !ruby/object:Gem::Dependency
138
+ name: vcr
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '4.0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '4.0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: webmock
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '3.5'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3.5'
165
+ - !ruby/object:Gem::Dependency
166
+ name: pry
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ description: Yet another client to PagSeguro API
180
+ email:
181
+ - rainerborene@gmail.com
182
+ executables: []
183
+ extensions: []
184
+ extra_rdoc_files: []
185
+ files:
186
+ - README.md
187
+ - Rakefile
188
+ - lib/pagseguro.rb
189
+ - lib/pagseguro/api.rb
190
+ - lib/pagseguro/authorizations.rb
191
+ - lib/pagseguro/base.rb
192
+ - lib/pagseguro/checkout.rb
193
+ - lib/pagseguro/payment_orders.rb
194
+ - lib/pagseguro/plans.rb
195
+ - lib/pagseguro/response.rb
196
+ - lib/pagseguro/sessions.rb
197
+ - lib/pagseguro/subscriptions.rb
198
+ - lib/pagseguro/transactions.rb
199
+ - lib/pagseguro/version.rb
200
+ - lib/pagseguro_next.rb
201
+ - pagseguro_next.gemspec
202
+ homepage: https://github.com/rainerborene/pagseguro_next
203
+ licenses:
204
+ - MIT
205
+ metadata: {}
206
+ post_install_message:
207
+ rdoc_options: []
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ requirements: []
221
+ rubygems_version: 3.0.3
222
+ signing_key:
223
+ specification_version: 4
224
+ summary: Yet another client to PagSeguro API
225
+ test_files: []