solidus_braintree 3.1.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7ae76586a99aff5a6eb02f0ab111d2d7d204c2e4b69cdb67b076b462a724baa
4
- data.tar.gz: 4af1563fbbfe0de86743e720779e6afcb229a90d6fa68be6d2528a1ad5aed2a2
3
+ metadata.gz: 7c477c4fb737d9baee566d1ab8b32a9c7392568ff6eeb50626fc6051a207a8bd
4
+ data.tar.gz: 571f9fcea4d239cba51c81df5f8b4ce311041531a1f1224d38f0958cdce662f1
5
5
  SHA512:
6
- metadata.gz: 845b6fccabb214dfbda78b8d5480e2efc8c9ecffebb3d41084f57a4c7bd3008f81333f84e43024b9e019006458888cc3d5a46f26073c60ffee9b63c2abd7ecc6
7
- data.tar.gz: 00bfd9d0d54cdd8b9abd65d0dd8f9e3b99d6bdcbc4ea3d4540339dad8e584e44c053c1da927e9706ae3898cad6e5f9fbc11fce9f981ce69e3317ea530d2256ef
6
+ metadata.gz: 34832b18ee08aa908a519c85c3c4e5d1b2593a540503791105f7a49f23599d851aa58544795e8ae5e5e30c2e2feddc1e7762c9d0e7ee80a6ca682ec3848d66e0
7
+ data.tar.gz: '085b9c9baad9f06b98239ecaf625fdfe6b32aa025ebd58d5672d06a0202934416262f89675fdea4e9e1c6f0ac321872446e8cecb8e87cca0c4da609b2c7a0dae'
data/.circleci/config.yml CHANGED
@@ -24,37 +24,36 @@ commands:
24
24
  command: |
25
25
  export FRONTEND=starter
26
26
  sudo gem update --system
27
- gem install bundler rails
28
- bin/dummy-app
29
- bin/rspec
27
+ gem install bundler rails:'~>7.2'
28
+ bundle exec rake
30
29
  - solidusio_extensions/store-test-results
31
30
 
32
31
  jobs:
33
32
  run-specs-with-postgres:
34
33
  executor:
35
34
  name: solidusio_extensions/postgres
36
- ruby_version: '3.2'
35
+ ruby_version: "3.2"
37
36
  steps:
38
37
  - test-with-starter-frontend
39
38
 
40
39
  run-specs-with-mysql:
41
40
  executor:
42
41
  name: solidusio_extensions/mysql
43
- ruby_version: '3.1'
42
+ ruby_version: "3.1"
44
43
  steps:
45
44
  - test-with-starter-frontend
46
45
 
47
46
  run-specs-with-sqlite:
48
47
  executor:
49
48
  name: solidusio_extensions/sqlite
50
- ruby_version: '3.0'
49
+ ruby_version: "3.1"
51
50
  steps:
52
51
  - test-with-starter-frontend
53
52
 
54
53
  lint-code:
55
54
  executor:
56
55
  name: solidusio_extensions/sqlite-memory
57
- ruby_version: '3.0'
56
+ ruby_version: "3.1"
58
57
  steps:
59
58
  - solidusio_extensions/lint-code
60
59
 
data/7.2 ADDED
File without changes
data/Gemfile CHANGED
@@ -6,10 +6,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
6
6
  branch = ENV.fetch('SOLIDUS_BRANCH', 'main')
7
7
  gem 'solidus', github: 'solidusio/solidus', branch: branch
8
8
 
9
- # Needed to help Bundler figure out how to resolve dependencies,
10
- # otherwise it takes forever to resolve them.
11
- # See https://github.com/bundler/bundler/issues/6677
12
- gem 'rails', '>0.a'
9
+ gem 'rails', ENV.fetch('RAILS_VERSION', '~> 7.0')
13
10
 
14
11
  # Provides basic authentication functionality for testing parts of your engine
15
12
  gem 'solidus_auth_devise'
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBraintree
4
+ module SpreeStoreDecorator
5
+ def self.prepended(base)
6
+ base.has_one :braintree_configuration, class_name: "SolidusBraintree::Configuration", dependent: :destroy
7
+ base.before_create :build_default_configuration
8
+ end
9
+
10
+ private
11
+
12
+ def build_default_configuration
13
+ build_braintree_configuration unless braintree_configuration
14
+ end
15
+
16
+ ::Spree::Store.prepend self
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBraintree
4
+ module SpreeUserDecorator
5
+ def self.prepended(base)
6
+ base.has_one :braintree_customer, class_name: 'SolidusBraintree::Customer', inverse_of: :user
7
+ end
8
+
9
+ ::Spree.user_class.prepend self
10
+ end
11
+ end
@@ -12,12 +12,8 @@ module SolidusBraintree
12
12
  to: :spree_address
13
13
 
14
14
  def self.split_name(name)
15
- if defined?(Spree::Address::Name)
16
- address_name = Spree::Address::Name.new(name)
17
- [address_name.first_name, address_name.last_name]
18
- else
19
- name.strip.split(' ', 2)
20
- end
15
+ address_name = Spree::Address::Name.new(name)
16
+ [address_name.first_name, address_name.last_name].compact
21
17
  end
22
18
 
23
19
  def initialize(spree_address)
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBraintree
4
+ def self.table_name_prefix
5
+ 'solidus_paypal_braintree_'
6
+ end
7
+
8
+ class BaseRecord < ::Spree::Base
9
+ self.abstract_class = true
10
+ end
11
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBraintree
4
- class Configuration < ::Spree::Base
4
+ class Configuration < BaseRecord
5
5
  PAYPAL_BUTTON_PREFERENCES = {
6
6
  color: { availables: %w[gold blue silver white black], default: 'white' },
7
7
  shape: { availables: %w[pill rect], default: 'rect' },
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBraintree
4
- class Customer < ApplicationRecord
4
+ class Customer < BaseRecord
5
5
  belongs_to :user, class_name: ::Spree::UserClassHandle.new, optional: true
6
6
  has_many :sources, class_name: "SolidusBraintree::Source", inverse_of: :customer, dependent: :destroy
7
7
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'braintree'
4
3
  require 'solidus_braintree/request_protection'
5
4
 
6
5
  module SolidusBraintree
@@ -6,16 +6,18 @@ module SolidusBraintree
6
6
  class Source < ::Spree::PaymentSource
7
7
  include RequestProtection
8
8
 
9
+ self.table_name = "solidus_paypal_braintree_sources"
10
+
9
11
  PAYPAL = "PayPalAccount"
10
12
  APPLE_PAY = "ApplePayCard"
11
13
  VENMO = "VenmoAccount"
12
14
  CREDIT_CARD = "CreditCard"
13
15
 
14
- enum paypal_funding_source: {
16
+ enum :paypal_funding_source, {
15
17
  applepay: 0, bancontact: 1, blik: 2, boleto: 3, card: 4, credit: 5, eps: 6, giropay: 7, ideal: 8,
16
18
  itau: 9, maxima: 10, mercadopago: 11, mybank: 12, oxxo: 13, p24: 14, paylater: 15, paypal: 16, payu: 17,
17
19
  sepa: 18, sofort: 19, trustly: 20, venmo: 21, verkkopankki: 22, wechatpay: 23, zimpler: 24
18
- }, _suffix: :funding
20
+ }, suffix: :funding
19
21
 
20
22
  belongs_to :user, class_name: ::Spree::UserClassHandle.new, optional: true
21
23
  belongs_to :payment_method, class_name: 'Spree::PaymentMethod'
data/bin/dummy-app CHANGED
@@ -14,7 +14,8 @@ function unbundled {
14
14
  test "$DB" = "sqlite" && export DB="sqlite3"
15
15
 
16
16
  rm -rf ./dummy-app
17
- rails new dummy-app \
17
+ rails_version=`bundle exec ruby -e'require "rails"; puts Rails.version'`
18
+ rails _${rails_version}_ new dummy-app \
18
19
  --database=${DB:-sqlite3} \
19
20
  --skip-git \
20
21
  --skip-keeps \
@@ -30,6 +31,6 @@ fi
30
31
  cd ./dummy-app
31
32
  unbundled bundle add solidus --github solidusio/solidus --branch "${BRANCH:-main}" --version '> 0.a'
32
33
  unbundled bundle exec rake db:drop db:create
33
- unbundled bundle exec rails generate solidus:install --auto-accept --payment-method=none --no-seed --no-sample "$@"
34
+ unbundled bundle exec rails generate solidus:install --auto-accept --payment-method=none --no-seed --no-sample --admin-preview=false "$@"
34
35
  unbundled bundle add $extension_name --path ..
35
36
  unbundled bundle exec rails generate $extension_name:install --migrate --specs=all
@@ -59,7 +59,7 @@ module SolidusBraintree
59
59
  gsub_file 'config/routes.rb',
60
60
  "mount SolidusPaypalBraintree::Engine, at: '/solidus_paypal_braintree'\n", ''
61
61
 
62
- route "mount SolidusBraintree::Engine, at: '/solidus_braintree'"
62
+ route "mount SolidusBraintree::Engine, at: '#{solidus_mount_point}solidus_braintree'"
63
63
  end
64
64
 
65
65
  def install_solidus_backend_support
@@ -149,6 +149,12 @@ module SolidusBraintree
149
149
 
150
150
  private
151
151
 
152
+ def solidus_mount_point
153
+ mount_point = Spree::Core::Engine.routes.find_script_name({})
154
+ mount_point += "/" unless mount_point.end_with?("/")
155
+ mount_point
156
+ end
157
+
152
158
  def support_code_for(component_name, &block)
153
159
  if @components[component_name]
154
160
  say_status :install, "[#{engine.engine_name}] solidus_#{component_name}", :blue
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBraintree
4
- VERSION = '3.1.0'
4
+ VERSION = '3.3.0'
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'solidus_core'
4
4
  require 'solidus_support'
5
+ require 'braintree'
5
6
 
6
7
  require 'solidus_braintree/country_mapper'
7
8
  require 'solidus_braintree/request_protection'
@@ -10,7 +11,4 @@ require 'solidus_braintree/version'
10
11
  require 'solidus_braintree/engine'
11
12
 
12
13
  module SolidusBraintree
13
- def self.table_name_prefix
14
- 'solidus_paypal_braintree_'
15
- end
16
14
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.require_paths = ["lib"]
31
31
 
32
32
  spec.add_dependency 'activemerchant', '~> 1.48'
33
- spec.add_dependency 'braintree', '~> 3.4'
33
+ spec.add_dependency 'braintree', '~> 4.2'
34
34
  spec.add_dependency 'solidus_api', ['>= 3.4.0.dev', '< 5']
35
35
  spec.add_dependency 'solidus_backend', ['>= 3.4.0.dev', '< 5']
36
36
  spec.add_dependency 'solidus_core', ['>= 3.4.0.dev', '< 5']
@@ -4,4 +4,4 @@ RSpec.configure do |config|
4
4
  end
5
5
  end
6
6
 
7
- Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym
7
+ Capybara.javascript_driver = (ENV['CAPYBARA_JS_DRIVER'] || :selenium_chrome_headless).to_sym
@@ -98,7 +98,7 @@ RSpec.describe 'entering credit card details', type: :feature, js: true do
98
98
 
99
99
  it "checks out successfully" do
100
100
  within(".confirm-step") do
101
- expect(page).to have_content("CONFIRM")
101
+ expect(page).to have_content(/confirm/i)
102
102
  end
103
103
 
104
104
  check('accept_terms_and_conditions')
@@ -114,7 +114,7 @@ RSpec.describe 'entering credit card details', type: :feature, js: true do
114
114
  authenticate_3ds
115
115
 
116
116
  within(".confirm-step") do
117
- expect(page).to have_content("CONFIRM")
117
+ expect(page).to have_content(/confirm/i)
118
118
  end
119
119
 
120
120
  check('accept_terms_and_conditions')
@@ -177,7 +177,7 @@ RSpec.describe 'entering credit card details', type: :feature, js: true do
177
177
  click_button("Save and Continue")
178
178
 
179
179
  within(".confirm-step") do
180
- expect(page).to have_content("CONFIRM")
180
+ expect(page).to have_content(/confirm/i)
181
181
  end
182
182
 
183
183
  check('accept_terms_and_conditions')
@@ -152,8 +152,7 @@ RSpec.describe "Checkout", type: :feature, js: true do
152
152
  end
153
153
 
154
154
  def add_mug_to_cart
155
- visit root_path
156
- click_link mug.name
155
+ visit product_path(mug)
157
156
  click_button "add-to-cart-button"
158
157
  end
159
158
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stembolt
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-10-04 00:00:00.000000000 Z
10
+ date: 2025-01-22 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activemerchant
@@ -30,14 +29,14 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '3.4'
32
+ version: '4.2'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '3.4'
39
+ version: '4.2'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: solidus_api
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +158,7 @@ files:
159
158
  - ".gitignore"
160
159
  - ".rspec"
161
160
  - ".rubocop.yml"
161
+ - '7.2'
162
162
  - CHANGELOG.md
163
163
  - Gemfile
164
164
  - LICENSE
@@ -173,13 +173,12 @@ files:
173
173
  - app/assets/javascripts/spree/backend/solidus_braintree/promise.js
174
174
  - app/assets/stylesheets/spree/backend/solidus_braintree.scss
175
175
  - app/decorators/controllers/solidus_braintree/admin_payments_controller_decorator.rb
176
- - app/decorators/controllers/solidus_braintree/client_tokens_controller.rb
177
- - app/decorators/models/solidus_braintree/spree/store_decorator.rb
178
- - app/decorators/models/solidus_braintree/spree/user_decorator.rb
176
+ - app/decorators/models/solidus_braintree/spree_store_decorator.rb
177
+ - app/decorators/models/solidus_braintree/spree_user_decorator.rb
179
178
  - app/helpers/solidus_braintree/braintree_admin_helper.rb
180
- - app/models/application_record.rb
181
179
  - app/models/solidus_braintree/address.rb
182
180
  - app/models/solidus_braintree/avs_result.rb
181
+ - app/models/solidus_braintree/base_record.rb
183
182
  - app/models/solidus_braintree/configuration.rb
184
183
  - app/models/solidus_braintree/customer.rb
185
184
  - app/models/solidus_braintree/gateway.rb
@@ -215,6 +214,7 @@ files:
215
214
  - db/migrate/20220104150301_add_venmo_to_braintree_configuration.rb
216
215
  - db/migrate/20230109080950_rename_solidus_paypal_braintree_source_type.rb
217
216
  - db/migrate/20230210104310_add_device_data_to_braintree_sources.rb
217
+ - lib/controllers/api/solidus_braintree/client_tokens_controller.rb
218
218
  - lib/controllers/backend/solidus_braintree/configurations_controller.rb
219
219
  - lib/generators/solidus_braintree/install/install_generator.rb
220
220
  - lib/generators/solidus_braintree/install/templates/app/assets/images/solidus_braintree/venmo/venmo_active_blue_button_280x48.svg
@@ -345,7 +345,6 @@ metadata:
345
345
  homepage_uri: https://github.com/solidusio/solidus_braintree
346
346
  source_code_uri: https://github.com/solidusio/solidus_braintree
347
347
  changelog_uri: https://github.com/solidusio/solidus_braintree/releases
348
- post_install_message:
349
348
  rdoc_options: []
350
349
  require_paths:
351
350
  - lib
@@ -363,8 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
363
362
  - !ruby/object:Gem::Version
364
363
  version: '0'
365
364
  requirements: []
366
- rubygems_version: 3.3.23
367
- signing_key:
365
+ rubygems_version: 3.6.3
368
366
  specification_version: 4
369
367
  summary: Officially supported Braintree extension
370
368
  test_files:
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SolidusBraintree
4
- module Spree
5
- module StoreDecorator
6
- def self.prepended(base)
7
- base.has_one :braintree_configuration, class_name: "SolidusBraintree::Configuration", dependent: :destroy
8
- base.before_create :build_default_configuration
9
- end
10
-
11
- private
12
-
13
- def build_default_configuration
14
- build_braintree_configuration unless braintree_configuration
15
- end
16
-
17
- ::Spree::Store.prepend self
18
- end
19
- end
20
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SolidusBraintree
4
- module Spree
5
- module UserDecorator
6
- def self.prepended(base)
7
- base.has_one :braintree_customer, class_name: 'SolidusBraintree::Customer', inverse_of: :user
8
- end
9
-
10
- ::Spree.user_class.prepend self
11
- end
12
- end
13
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class ApplicationRecord < ActiveRecord::Base
4
- self.abstract_class = true
5
- end