solidus_inter 1.5.0 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6880a50bb4064d065f42b193d4eca5f279a69e26a53f5e8e98cc4aa1f2ba1f25
4
- data.tar.gz: f6f455ab7c640fb55bcee39bf46e0d93e3c1bb0ca93fe5191ae0e83292900dd1
3
+ metadata.gz: 58e3197c7a31acf76c7cbabd7c4d022d90f066bb7f6fca452b32ef561eb47e9e
4
+ data.tar.gz: 279a556d8a93c6bf976b32f64730e792fca81100b0ac68063fbe68bbec24da86
5
5
  SHA512:
6
- metadata.gz: cc31d973df48f0b66e5913fcc9b0bb71df492e09db7d90470cb029fb3bf183a2b97d7e45f1a587844ceee8a340ebc6d6a86b4722a6c30bd98d3172714b030b24
7
- data.tar.gz: e3fdbe911fc408488f990597aee8d218c4408daa33ec02678595c751b22572722e17baf7ef6da09d0393fa9706faf0f865723d34a01deb42988936cb8ef7d57a
6
+ metadata.gz: ae1df800132213db65a529aaab5a9c2a89bcff18006a4419fb94cf1f9a0da0c46c0bb65dd58bd53dd6a71af71ad3e560b4d327ca962b7920eaa97f2488dc2970
7
+ data.tar.gz: 890be9c8071c42e1aadafc995aef753d454a34107187e0ebcdf99420082943f8f3363e46694d02cb08c2120fd700c5428e7c76876b6fb4f6a6920fdedecc79f8
data/README.md CHANGED
@@ -1,8 +1,4 @@
1
1
  # Solidus Inter
2
-
3
- [![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_inter.svg?style=shield)](https://circleci.com/gh/solidusio-contrib/solidus_inter)
4
- [![codecov](https://codecov.io/gh/solidusio-contrib/solidus_inter/branch/main/graph/badge.svg)](https://codecov.io/gh/solidusio-contrib/solidus_inter)
5
-
6
2
  <!-- Explain what your extension does. -->
7
3
 
8
4
  ## Installation
@@ -1,26 +1,26 @@
1
1
  module SolidusInter
2
2
  class Gateway
3
- def initialize options
3
+ def initialize(options)
4
4
  end
5
5
 
6
- def purchase money, source, options = {}
6
+ def purchase(_money, source, _options = {})
7
7
  inter_payment = source.retrieve_from_api
8
8
  if inter_payment.paid?
9
- source.update(status: "approved", e2e_id: inter_payment.end_to_end_id)
9
+ source.update(status: "approved", paid_amount: inter_payment.valor_pago, e2e_id: inter_payment.end_to_end_id)
10
10
  successful_response("Pagamento realizado", inter_payment.txid)
11
11
  else
12
12
  failure_response(inter_payment.internal_error || "Ocorreu um erro no pagamento.")
13
13
  end
14
14
  end
15
15
 
16
- def void(transaction_id, options = {})
16
+ def void(transaction_id, _options = {})
17
17
  # Respondendo sempre com successful_response para funcionar o botão de "Cancelar" do pedido. Reembolso deve ser feito por fora.
18
- successful_response("Pedido cancelado. Se necessário, realize o reembolso.", transaction_id)
18
+ successful_response("Pagamento cancelado. Se necessário, realize o reembolso.", transaction_id)
19
19
  end
20
20
 
21
21
  private
22
22
 
23
- def successful_response message, transaction_id
23
+ def successful_response(message, transaction_id)
24
24
  ActiveMerchant::Billing::Response.new(
25
25
  true,
26
26
  message,
@@ -29,7 +29,7 @@ module SolidusInter
29
29
  )
30
30
  end
31
31
 
32
- def failure_response message
32
+ def failure_response(message)
33
33
  ActiveMerchant::Billing::Response.new(
34
34
  false,
35
35
  message
@@ -27,45 +27,41 @@ module SolidusInter
27
27
  "inter_pix"
28
28
  end
29
29
 
30
- def create_payment(payment)
31
- client = set_api_client
32
- inter_payment = client.create_payment(
33
- amount: payment.amount,
34
- payer_tax_id: payment.source.payer_tax_id,
35
- payer_name: payment.source.payer_name,
36
- expiration: 600
37
- )
38
- payment.response_code = inter_payment.txid
39
- payment.source.assign_attributes(
40
- txid: inter_payment.txid,
41
- pix_code: inter_payment.copia_e_cola,
42
- qr_code_svg: inter_payment.qr_code,
43
- status: inter_payment.status,
44
- expiration: inter_payment.expiracao,
45
- internal_error: inter_payment.internal_error
46
- )
47
- payment.log_entries.new(parsed_payment_response_details_with_fallback: failure_response(inter_payment.internal_error)) if inter_payment.internal_error
48
- inter_payment
49
- end
50
-
51
30
  def find_payment(txid)
52
31
  client = set_api_client
53
32
  client.get_payment(txid)
54
33
  end
55
34
 
35
+ def create_payment(order)
36
+ existing_payment = find_existing_payment(order)
37
+ return existing_payment if payment_is_usable?(existing_payment, order)
38
+
39
+ payment = order.payments.new(amount: order.total, payment_method: self)
40
+ payment.source = init_source(order)
41
+ payment.save
42
+
43
+ inter_payment = create_inter_payment(payment.source)
44
+ process_payment_response(payment, inter_payment)
45
+ payment
46
+ end
47
+
56
48
  def invalidate_payment(payment_source)
57
49
  return false unless payment_source&.txid
50
+
58
51
  inter_payment = find_payment(payment_source.txid)
59
52
  return false if inter_payment.paid?
53
+
60
54
  inter_payment.invalidate!
61
55
  payment_source.payments[0].log_entries.create!(parsed_payment_response_details_with_fallback: failure_response("Pagamento cancelado"))
62
56
  true
63
57
  end
64
58
 
65
- def pay_test_payment payment
66
- return false unless payment && payment.source.txid
67
- inter_payment = find_payment(payment.source.txid)
59
+ def pay_test_payment(payment_source)
60
+ return false unless payment_source&.txid
61
+
62
+ inter_payment = find_payment(payment_source.txid)
68
63
  return false if inter_payment.paid?
64
+
69
65
  client = set_api_client
70
66
  client.pay_pix(inter_payment.txid, inter_payment.valor_original)
71
67
  end
@@ -81,6 +77,70 @@ module SolidusInter
81
77
 
82
78
  private
83
79
 
80
+ def init_source(order)
81
+ PixPaymentSource.new(
82
+ amount: order.total,
83
+ payer_name: order.ship_address.name,
84
+ payer_tax_id: order.tax_id,
85
+ payment_method: self
86
+ )
87
+ end
88
+
89
+ def create_inter_payment(payment_source)
90
+ client = set_api_client
91
+ client.create_payment(
92
+ amount: payment_source.amount,
93
+ payer_tax_id: payment_source.payer_tax_id,
94
+ payer_name: payment_source.payer_name,
95
+ expiration: 600
96
+ )
97
+ end
98
+
99
+ def find_existing_payment(order)
100
+ pix_payments = order.payments.checkout
101
+ raise "More than one valid payment for #{order.number}" if pix_payments.count > 1
102
+
103
+ pix_payments.first
104
+ end
105
+
106
+ def payment_is_usable?(payment, order)
107
+ return false unless payment
108
+
109
+ payment.source.active? && payment.amount == order.total
110
+ end
111
+
112
+ def process_payment_response(payment, inter_payment)
113
+ payment.update(response_code: inter_payment.txid)
114
+ payment.source.update(
115
+ txid: inter_payment.txid,
116
+ pix_code: inter_payment.copia_e_cola,
117
+ qr_code_svg: inter_payment.qr_code,
118
+ status: inter_payment.status,
119
+ expiration: inter_payment.expiracao
120
+ )
121
+
122
+ if inter_payment.internal_error
123
+ handle_payment_error(payment, inter_payment)
124
+ else
125
+ update_payment_status(payment, inter_payment)
126
+ end
127
+ end
128
+
129
+ def update_payment_status(payment, inter_payment)
130
+ status = case inter_payment.status
131
+ when "ATIVA" then "pending"
132
+ end
133
+ payment.source.update(status: status)
134
+ end
135
+
136
+ def handle_payment_error(payment, inter_payment)
137
+ payment.invalidate
138
+ error_message = inter_payment.internal_error || "Erro ao criar o pagamento"
139
+ response = failure_response(error_message)
140
+ payment.log_entries.create(parsed_payment_response_details_with_fallback: response)
141
+ payment.source.update(internal_error: error_message, status: "error")
142
+ end
143
+
84
144
  def set_api_client
85
145
  account = SolidusInter::Account.find_by(chave_pix: preferences[:chave_pix])
86
146
  client = ::InterApi::Client.new(
@@ -94,18 +154,21 @@ module SolidusInter
94
154
  token_expires_at: account&.expires_at,
95
155
  test_mode: preferences[:test_mode]
96
156
  )
97
- SolidusInter::Account.upsert({token: client.token, expires_at: client.token_expires_at, chave_pix: client.chave_pix, spree_payment_method_id: id}, unique_by: :chave_pix)
157
+ SolidusInter::Account.upsert(
158
+ {token: client.token, expires_at: client.token_expires_at, chave_pix: client.chave_pix,
159
+ spree_payment_method_id: id}, unique_by: :chave_pix
160
+ )
98
161
  client
99
162
  end
100
163
 
101
- def temp_file content
164
+ def temp_file(content)
102
165
  t = Tempfile.new
103
166
  t << content
104
167
  t.close
105
168
  t
106
169
  end
107
170
 
108
- def successful_response message, transaction_id
171
+ def successful_response(message, transaction_id)
109
172
  ActiveMerchant::Billing::Response.new(
110
173
  true,
111
174
  message,
@@ -114,7 +177,7 @@ module SolidusInter
114
177
  )
115
178
  end
116
179
 
117
- def failure_response message
180
+ def failure_response(message)
118
181
  ActiveMerchant::Billing::Response.new(
119
182
  false,
120
183
  message
@@ -16,14 +16,14 @@ module SolidusInter
16
16
  payment.completed? && payment.credit_allowed > 0
17
17
  end
18
18
 
19
- def usable?
20
- txid.present? && expiration.future?
21
- end
22
-
23
19
  def expired?
24
20
  expiration.past?
25
21
  end
26
22
 
23
+ def active?
24
+ expiration.future?
25
+ end
26
+
27
27
  def retrieve_from_api
28
28
  payment_method.find_payment(txid)
29
29
  end
@@ -1,5 +1,5 @@
1
1
  <div class="content-wrapper">
2
- <fieldset class="no-border-top">
2
+ <fieldset class="no-border-top">
3
3
  <legend>
4
4
  Pagamento Inter Pix
5
5
  </legend>
@@ -40,7 +40,7 @@
40
40
 
41
41
  <div class="field">
42
42
  <%= label_tag :expiration, "Expiração" %>
43
- <%= text_field_tag :expiration, payment.source.expiration.in_time_zone('America/Sao_Paulo').strftime("%d/%m/%Y às %H:%M"), class:"fullwidth", disabled: true %>
43
+ <%= text_field_tag :expiration, payment.source.expiration&.in_time_zone('America/Sao_Paulo')&.strftime("%d/%m/%Y às %H:%M"), class:"fullwidth", disabled: true %>
44
44
  </div>
45
45
 
46
46
  <div class="field">
@@ -15,11 +15,11 @@ module SolidusInter
15
15
  end
16
16
 
17
17
  def run_migrations
18
- run_migrations = options[:auto_run_migrations] || ["", "y", "Y"].include?(ask("Would you like to run the migrations now? [Y/n]")) # rubocop:disable Layout/LineLength
18
+ run_migrations = options[:auto_run_migrations] || ["", "y", "Y"].include?(ask("Would you like to run the migrations now? [Y/n]"))
19
19
  if run_migrations
20
20
  run "bin/rails db:migrate"
21
21
  else
22
- puts "Skipping bin/rails db:migrate, don't forget to run it!" # rubocop:disable Rails/Output
22
+ puts "Skipping bin/rails db:migrate, don't forget to run it!"
23
23
  end
24
24
  end
25
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusInter
4
- VERSION = "1.5.0"
4
+ VERSION = "1.7.0"
5
5
  end
metadata CHANGED
@@ -1,49 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_inter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ulysses
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-12 00:00:00.000000000 Z
11
+ date: 2024-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: solidus_core
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 2.0.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 2.0.0
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5'
33
- - !ruby/object:Gem::Dependency
34
- name: solidus_support
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '0.5'
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '0.5'
47
13
  - !ruby/object:Gem::Dependency
48
14
  name: inter_api
49
15
  requirement: !ruby/object:Gem::Requirement
@@ -72,38 +38,13 @@ dependencies:
72
38
  - - ">="
73
39
  - !ruby/object:Gem::Version
74
40
  version: '0'
75
- - !ruby/object:Gem::Dependency
76
- name: solidus_dev_support
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '2.9'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '2.9'
89
41
  description: ''
90
42
  email: ulyssesh.20@gmail.com
91
43
  executables: []
92
44
  extensions: []
93
45
  extra_rdoc_files: []
94
46
  files:
95
- - ".circleci/config.yml"
96
- - ".gem_release.yml"
97
- - ".github/stale.yml"
98
- - ".github_changelog_generator"
99
- - ".gitignore"
100
- - ".rspec"
101
- - ".rubocop.yml"
102
- - CHANGELOG.md
103
- - Gemfile
104
- - LICENSE
105
47
  - README.md
106
- - Rakefile
107
48
  - app/models/solidus_inter/account.rb
108
49
  - app/models/solidus_inter/gateway.rb
109
50
  - app/models/solidus_inter/inter_pix.rb
@@ -111,32 +52,18 @@ files:
111
52
  - app/views/spree/admin/payments/source_forms/_inter_pix.html.erb
112
53
  - app/views/spree/admin/payments/source_views/_inter_pix.html.erb
113
54
  - app/views/spree/api/payments/source_views/_inter_pix.jbuilder
114
- - bin/console
115
- - bin/rails
116
- - bin/rails-engine
117
- - bin/rails-sandbox
118
- - bin/rake
119
- - bin/sandbox
120
- - bin/setup
121
55
  - config/locales/en.yml
122
- - config/routes.rb
123
56
  - db/migrate/20240527193953_create_solidus_inter_pix_payment_sources.rb
124
57
  - db/migrate/20240603132203_create_solidus_inter_accounts.rb
125
58
  - db/migrate/20241128145329_add_e2e_id_to_soliuds_inter_pix_payment_source.rb
126
59
  - lib/generators/solidus_inter/install/install_generator.rb
127
60
  - lib/solidus_inter.rb
128
61
  - lib/solidus_inter/engine.rb
129
- - lib/solidus_inter/testing_support/factories.rb
130
62
  - lib/solidus_inter/version.rb
131
- - solidus_inter.gemspec
132
- homepage: https://github.com/ulysses-bull/solidus_inter#readme
133
- licenses:
134
- - BSD-3-Clause
135
- metadata:
136
- homepage_uri: https://github.com/ulysses-bull/solidus_inter#readme
137
- source_code_uri: https://github.com/ulysses-bull/solidus_inter
138
- changelog_uri: https://github.com/ulysses-bull/solidus_inter/blob/main/CHANGELOG.md
139
- post_install_message:
63
+ homepage: https://github.com/todasessascoisas/solidus_inter
64
+ licenses: []
65
+ metadata: {}
66
+ post_install_message:
140
67
  rdoc_options: []
141
68
  require_paths:
142
69
  - lib
@@ -154,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
81
  - !ruby/object:Gem::Version
155
82
  version: '0'
156
83
  requirements: []
157
- rubygems_version: 3.5.3
158
- signing_key:
84
+ rubygems_version: 3.5.10
85
+ signing_key:
159
86
  specification_version: 4
160
87
  summary: ''
161
88
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,53 +0,0 @@
1
- version: 2.1
2
-
3
- orbs:
4
- # Required for feature specs.
5
- browser-tools: circleci/browser-tools@1.1
6
-
7
- # Always take the latest version of the orb, this allows us to
8
- # run specs against Solidus supported versions only without the need
9
- # to change this configuration every time a Solidus version is released
10
- # or goes EOL.
11
- solidusio_extensions: solidusio/extensions@volatile
12
-
13
- jobs:
14
- run-specs-with-sqlite:
15
- executor: solidusio_extensions/sqlite
16
- steps:
17
- - browser-tools/install-chrome
18
- - solidusio_extensions/run-tests
19
- run-specs-with-postgres:
20
- executor: solidusio_extensions/postgres
21
- steps:
22
- - browser-tools/install-chrome
23
- - solidusio_extensions/run-tests
24
- run-specs-with-mysql:
25
- executor: solidusio_extensions/mysql
26
- steps:
27
- - browser-tools/install-chrome
28
- - solidusio_extensions/run-tests
29
- lint-code:
30
- executor: solidusio_extensions/sqlite-memory
31
- steps:
32
- - solidusio_extensions/lint-code
33
-
34
- workflows:
35
- "Run specs on supported Solidus versions":
36
- jobs:
37
- - run-specs-with-sqlite
38
- - run-specs-with-postgres
39
- - run-specs-with-mysql
40
- - lint-code
41
-
42
- "Weekly run specs against main":
43
- triggers:
44
- - schedule:
45
- cron: "0 0 * * 4" # every Thursday
46
- filters:
47
- branches:
48
- only:
49
- - main
50
- jobs:
51
- - run-specs-with-sqlite
52
- - run-specs-with-postgres
53
- - run-specs-with-mysql
data/.gem_release.yml DELETED
@@ -1,5 +0,0 @@
1
- bump:
2
- recurse: false
3
- file: 'lib/solidus_inter/version.rb'
4
- message: Bump SolidusInter to %{version}
5
- tag: true
data/.github/stale.yml DELETED
@@ -1 +0,0 @@
1
- _extends: .github
@@ -1,2 +0,0 @@
1
- issues=false
2
- exclude-labels=infrastructure
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- *.gem
2
- \#*
3
- *~
4
- .#*
5
- .DS_Store
6
- .idea
7
- .project
8
- .sass-cache
9
- coverage
10
- Gemfile.lock
11
- Gemfile-local
12
- tmp
13
- nbproject
14
- pkg
15
- *.swp
16
- spec/dummy
17
- spec/examples.txt
18
- /sandbox
19
- .rvmrc
20
- .ruby-version
21
- .ruby-gemset
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,5 +0,0 @@
1
- require:
2
- - solidus_dev_support/rubocop
3
-
4
- AllCops:
5
- NewCops: disable
data/CHANGELOG.md DELETED
@@ -1,3 +0,0 @@
1
- # Changelog
2
-
3
- See https://github.com/solidusio-contrib/solidus_inter/releases or OLD_CHANGELOG.md for older versions.
data/Gemfile DELETED
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
-
6
- branch = ENV.fetch("SOLIDUS_BRANCH", "main")
7
- gem "solidus", github: "solidusio/solidus", branch: branch
8
-
9
- # The solidus_frontend gem has been pulled out since v3.2
10
- if branch >= "v3.2"
11
- gem "solidus_frontend"
12
- elsif branch == "main"
13
- gem "solidus_frontend", github: "solidusio/solidus_frontend"
14
- else
15
- gem "solidus_frontend", github: "solidusio/solidus", branch: branch
16
- end
17
-
18
- # Needed to help Bundler figure out how to resolve dependencies,
19
- # otherwise it takes forever to resolve them.
20
- # See https://github.com/bundler/bundler/issues/6677
21
- gem "rails", ">0.a"
22
-
23
- # Provides basic authentication functionality for testing parts of your engine
24
- gem "solidus_auth_devise"
25
-
26
- case ENV.fetch("DB", nil)
27
- when "mysql"
28
- gem "mysql2"
29
- when "postgresql"
30
- gem "pg"
31
- else
32
- gem "sqlite3"
33
- end
34
-
35
- # While we still support Ruby < 3 we need to workaround a limitation in
36
- # the 'async' gem that relies on the latest ruby, since RubyGems doesn't
37
- # resolve gems based on the required ruby version.
38
- gem "async", "< 3" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3")
39
-
40
- gemspec
41
-
42
- # Use a local Gemfile to include development dependencies that might not be
43
- # relevant for the project or for other contributors, e.g. pry-byebug.
44
- #
45
- # We use `send` instead of calling `eval_gemfile` to work around an issue with
46
- # how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
47
- send(:eval_gemfile, "Gemfile-local") if File.exist? "Gemfile-local"
data/LICENSE DELETED
@@ -1,26 +0,0 @@
1
- Copyright (c) 2024 ulysses
2
- All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without modification,
5
- are permitted provided that the following conditions are met:
6
-
7
- * Redistributions of source code must retain the above copyright notice,
8
- this list of conditions and the following disclaimer.
9
- * Redistributions in binary form must reproduce the above copyright notice,
10
- this list of conditions and the following disclaimer in the documentation
11
- and/or other materials provided with the distribution.
12
- * Neither the name Solidus nor the names of its contributors may be used to
13
- endorse or promote products derived from this software without specific
14
- prior written permission.
15
-
16
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "solidus_dev_support/rake_tasks"
5
- SolidusDevSupport::RakeTasks.install
6
-
7
- task default: "extension:specs"
data/bin/console DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # frozen_string_literal: true
4
-
5
- require "bundler/setup"
6
- require "solidus_inter"
7
-
8
- # You can add fixtures and/or initialization code here to make experimenting
9
- # with your gem easier. You can also use a different console, if you like.
10
- $LOAD_PATH.unshift(*Dir["#{__dir__}/../app/*"])
11
-
12
- # (If you use this, don't forget to add pry to your Gemfile!)
13
- # require "pry"
14
- # Pry.start
15
-
16
- require "irb"
17
- IRB.start(__FILE__)
data/bin/rails DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- if %w[g generate].include? ARGV.first
4
- exec "#{__dir__}/rails-engine", *ARGV
5
- else
6
- exec "#{__dir__}/rails-sandbox", *ARGV
7
- end
data/bin/rails-engine DELETED
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # This command will automatically be run when you run "rails" with Rails gems
3
- # installed from the root of your application.
4
-
5
- ENGINE_ROOT = File.expand_path('..', __dir__)
6
- ENGINE_PATH = File.expand_path('../lib/solidus_inter/engine', __dir__)
7
-
8
- # Set up gems listed in the Gemfile.
9
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
10
- require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
11
-
12
- require 'rails/all'
13
- require 'rails/engine/commands'
data/bin/rails-sandbox DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- app_root = 'sandbox'
4
-
5
- unless File.exist? "#{app_root}/bin/rails"
6
- warn 'Creating the sandbox app...'
7
- Dir.chdir "#{__dir__}/.." do
8
- system "#{__dir__}/sandbox" or begin
9
- warn 'Automatic creation of the sandbox app failed'
10
- exit 1
11
- end
12
- end
13
- end
14
-
15
- Dir.chdir app_root
16
- exec 'bin/rails', *ARGV
data/bin/rake DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require "rubygems"
5
- require "bundler/setup"
6
-
7
- load Gem.bin_path("rake", "rake")
data/bin/sandbox DELETED
@@ -1,76 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
- test -z "${DEBUG+empty_string}" || set -x
5
-
6
- test "$DB" = "sqlite" && export DB="sqlite3"
7
-
8
- if [ -z "$PAYMENT_METHOD" ]
9
- then
10
- PAYMENT_METHOD="none"
11
- fi
12
-
13
- if [ -z "$SOLIDUS_BRANCH" ]
14
- then
15
- echo "~~> Use 'export SOLIDUS_BRANCH=[main|v4.0|...]' to control the Solidus branch"
16
- SOLIDUS_BRANCH="main"
17
- fi
18
- echo "~~> Using branch $SOLIDUS_BRANCH of solidus"
19
-
20
- extension_name="solidus_inter"
21
-
22
- # Stay away from the bundler env of the containing extension.
23
- function unbundled {
24
- ruby -rbundler -e'
25
- Bundler.with_unbundled_env {system *ARGV}' -- \
26
- env BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES=true $@
27
- }
28
-
29
- echo "~~~> Removing the old sandbox"
30
- rm -rf ./sandbox
31
-
32
- echo "~~~> Creating a pristine Rails app"
33
- rails new sandbox \
34
- --database="${DB:-sqlite3}" \
35
- --skip-git \
36
- --skip-keeps \
37
- --skip-rc \
38
- --skip-bootsnap \
39
- --skip-test
40
-
41
- if [ ! -d "sandbox" ]; then
42
- echo 'sandbox rails application failed'
43
- exit 1
44
- fi
45
-
46
- echo "~~~> Adding solidus (with i18n) to the Gemfile"
47
- cd ./sandbox
48
- cat <<RUBY >> Gemfile
49
- gem 'solidus', github: 'solidusio/solidus', branch: '$SOLIDUS_BRANCH'
50
- gem 'rails-i18n'
51
- gem 'solidus_i18n'
52
- gem 'solidus_auth_devise'
53
-
54
- gem '$extension_name', path: '..'
55
-
56
- group :test, :development do
57
- platforms :mri do
58
- gem 'pry-byebug'
59
- end
60
- end
61
- RUBY
62
-
63
- unbundled bundle install --gemfile Gemfile
64
-
65
- unbundled bundle exec rake db:drop db:create
66
-
67
- unbundled bundle exec rails generate solidus:install \
68
- --auto-accept \
69
- $@
70
-
71
- unbundled bundle exec rails generate solidus:auth:install --auto-run-migrations
72
- unbundled bundle exec rails generate ${extension_name}:install --auto-run-migrations
73
-
74
- echo
75
- echo "🚀 Sandbox app successfully created for $extension_name!"
76
- echo "🧪 This app is intended for test purposes."
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- gem install bundler --conservative
7
- bundle update
8
- bin/rake clobber
data/config/routes.rb DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Spree::Core::Engine.routes.draw do
4
- # Add your extension routes here
5
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- FactoryBot.define do
4
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/solidus_inter/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "solidus_inter"
7
- spec.version = SolidusInter::VERSION
8
- spec.authors = ["ulysses"]
9
- spec.email = "ulyssesh.20@gmail.com"
10
-
11
- spec.summary = ""
12
- spec.description = ""
13
- spec.homepage = "https://github.com/ulysses-bull/solidus_inter#readme"
14
- spec.license = "BSD-3-Clause"
15
-
16
- spec.metadata["homepage_uri"] = spec.homepage
17
- spec.metadata["source_code_uri"] = "https://github.com/ulysses-bull/solidus_inter"
18
- spec.metadata["changelog_uri"] = "https://github.com/ulysses-bull/solidus_inter/blob/main/CHANGELOG.md"
19
-
20
- spec.required_ruby_version = Gem::Requirement.new(">= 2.5", "< 4")
21
-
22
- # Specify which files should be added to the gem when it is released.
23
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
- files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
25
-
26
- spec.files = files.grep_v(%r{^(test|spec|features)/})
27
- spec.bindir = "exe"
28
- spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
- spec.require_paths = ["lib"]
30
-
31
- spec.add_dependency "solidus_core", [">= 2.0.0", "< 5"]
32
- spec.add_dependency "solidus_support", "~> 0.5"
33
- spec.add_dependency "inter_api"
34
- spec.add_dependency "solidus_brazilian_adaptations"
35
-
36
- spec.add_development_dependency "solidus_dev_support", "~> 2.9"
37
- end