solidus_frontend 2.9.6 → 2.10.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_frontend might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/spree/frontend/screen.css.scss +3 -3
- data/app/controllers/spree/checkout_controller.rb +4 -0
- data/app/controllers/spree/orders_controller.rb +6 -2
- data/lib/generators/solidus/views/override_generator.rb +3 -2
- data/lib/spree/frontend/config.rb +9 -0
- data/lib/spree/frontend/engine.rb +5 -3
- data/lib/spree/frontend/middleware/seo_assist.rb +4 -4
- data/{app/models → lib}/spree/frontend_configuration.rb +1 -1
- data/solidus_frontend.gemspec +2 -1
- data/spec/controllers/spree/checkout_controller_spec.rb +7 -7
- data/spec/controllers/spree/orders_controller_ability_spec.rb +1 -1
- data/spec/controllers/spree/orders_controller_spec.rb +27 -2
- data/spec/features/checkout_spec.rb +51 -0
- data/spec/features/products_spec.rb +4 -4
- data/spec/features/taxons_spec.rb +4 -4
- metadata +27 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91b81a0499cfcc80c2679550b7d6db2ad71924487a5d46dbac789addd97edfda
|
4
|
+
data.tar.gz: a50ea281edb618f5ccc671bca43341e403e6e550aa7d0875a0b581ab663ddc32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53f459be7840d780e768a38a3ddc1355246cdf421fe0c28a0f2e9172ef0327d47266f43fa58a0aeea1595603d8f83da9b061e41706c20e48f256e90f38e5ff59
|
7
|
+
data.tar.gz: 781d5b3e99617412f0f3eb7e8871c68c47d94d05fb26d689c961cc8e4414e340e14362ec4bd19f3c546184c81c79c9249784e2988954bca79ecf7f498b1dbddf
|
@@ -963,8 +963,8 @@ p[data-hook="use_billing"] {
|
|
963
963
|
}
|
964
964
|
|
965
965
|
input[type="text"] {
|
966
|
-
flex:
|
967
|
-
width:
|
966
|
+
flex: 1 auto;
|
967
|
+
width: 50%;
|
968
968
|
margin-right: 5px;
|
969
969
|
}
|
970
970
|
|
@@ -1268,7 +1268,7 @@ table.order-summary {
|
|
1268
1268
|
// # Logo
|
1269
1269
|
#logo {
|
1270
1270
|
padding: 20px 0;
|
1271
|
-
|
1271
|
+
|
1272
1272
|
> a {
|
1273
1273
|
display: inline-block;
|
1274
1274
|
}
|
@@ -149,6 +149,10 @@ module Spree
|
|
149
149
|
redirect_to(spree.cart_path) && return unless @order
|
150
150
|
end
|
151
151
|
|
152
|
+
# Allow the customer to only go back or stay on the current state
|
153
|
+
# when trying to change it via params[:state]. It's not allowed to
|
154
|
+
# jump forward and skip states (unless #skip_state_validation? is
|
155
|
+
# truthy).
|
152
156
|
def set_state_if_present
|
153
157
|
if params[:state]
|
154
158
|
redirect_to checkout_state_path(@order.state) if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
|
@@ -42,6 +42,10 @@ module Spree
|
|
42
42
|
@order = current_order || Spree::Order.incomplete.find_or_initialize_by(guest_token: cookies.signed[:guest_token])
|
43
43
|
authorize! :read, @order, cookies.signed[:guest_token]
|
44
44
|
associate_user
|
45
|
+
if params[:id] && @order.number != params[:id]
|
46
|
+
flash[:error] = t('spree.cannot_edit_orders')
|
47
|
+
redirect_to cart_path
|
48
|
+
end
|
45
49
|
end
|
46
50
|
|
47
51
|
# Adds a new item to the order (creating a new order if none already exists)
|
@@ -59,8 +63,8 @@ module Spree
|
|
59
63
|
|
60
64
|
begin
|
61
65
|
@line_item = @order.contents.add(variant, quantity)
|
62
|
-
rescue ActiveRecord::RecordInvalid =>
|
63
|
-
@order.errors.add(:base,
|
66
|
+
rescue ActiveRecord::RecordInvalid => error
|
67
|
+
@order.errors.add(:base, error.record.errors.full_messages.join(", "))
|
64
68
|
end
|
65
69
|
|
66
70
|
respond_with(@order) do |format|
|
@@ -24,6 +24,7 @@ module Solidus
|
|
24
24
|
def copy_views
|
25
25
|
views_to_copy.each do |file|
|
26
26
|
next if File.directory?(file)
|
27
|
+
|
27
28
|
dest_file = Pathname.new(file).relative_path_from(source_dir)
|
28
29
|
copy_file file, Rails.root.join('app', 'views', 'spree', dest_file)
|
29
30
|
end
|
@@ -33,8 +34,8 @@ module Solidus
|
|
33
34
|
|
34
35
|
def views_to_copy
|
35
36
|
if @options['only']
|
36
|
-
VIEWS.select do |
|
37
|
-
Pathname.new(
|
37
|
+
VIEWS.select do |view|
|
38
|
+
Pathname.new(view).relative_path_from(source_dir).to_s.include?(@options['only'])
|
38
39
|
end
|
39
40
|
else
|
40
41
|
VIEWS
|
@@ -1,13 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'spree/frontend/config'
|
4
|
+
|
3
5
|
module Spree
|
4
6
|
module Frontend
|
5
7
|
class Engine < ::Rails::Engine
|
6
8
|
config.middleware.use "Spree::Frontend::Middleware::SeoAssist"
|
7
9
|
|
8
|
-
initializer
|
9
|
-
|
10
|
-
end
|
10
|
+
# Leave initializer empty for backwards-compatability. Other apps
|
11
|
+
# might still rely on this event.
|
12
|
+
initializer "spree.frontend.environment", before: :load_config_initializers do; end
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -38,11 +38,11 @@ module Spree
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def build_query(params)
|
41
|
-
params.map { |
|
42
|
-
if
|
43
|
-
build_query(
|
41
|
+
params.map { |key, value|
|
42
|
+
if value.class == Array
|
43
|
+
build_query(value.map { |parameter| ["#{key}[]", parameter] })
|
44
44
|
else
|
45
|
-
|
45
|
+
key + "=" + Rack::Utils.escape(value)
|
46
46
|
end
|
47
47
|
}.join("&")
|
48
48
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
class FrontendConfiguration < Preferences::Configuration
|
5
|
-
preference :locale, :string, default:
|
5
|
+
preference :locale, :string, default: I18n.default_locale
|
6
6
|
|
7
7
|
# Add your terms and conditions in app/views/spree/checkout/_terms_and_conditions.en.html.erb
|
8
8
|
preference :require_terms_and_conditions_acceptance, :boolean, default: false
|
data/solidus_frontend.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_path = 'lib'
|
19
19
|
s.requirements << 'none'
|
20
20
|
|
21
|
-
s.required_ruby_version = '>= 2.
|
21
|
+
s.required_ruby_version = '>= 2.4.0'
|
22
22
|
s.required_rubygems_version = '>= 1.8.23'
|
23
23
|
|
24
24
|
s.add_dependency 'solidus_api', s.version
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_dependency 'font-awesome-rails', '~> 4.0'
|
29
29
|
s.add_dependency 'jquery-rails'
|
30
30
|
s.add_dependency 'kaminari', '~> 1.1'
|
31
|
+
s.add_dependency 'responders'
|
31
32
|
s.add_dependency 'sassc-rails'
|
32
33
|
s.add_dependency 'truncate_html', '~> 0.9', '>= 0.9.2'
|
33
34
|
|
@@ -91,7 +91,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
91
91
|
|
92
92
|
context "with the order in the cart state", partial_double_verification: false do
|
93
93
|
before do
|
94
|
-
order.
|
94
|
+
order.update! user: user
|
95
95
|
order.update_column(:state, "cart")
|
96
96
|
end
|
97
97
|
|
@@ -140,7 +140,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
140
140
|
|
141
141
|
context "with the order in the address state", partial_double_verification: false do
|
142
142
|
before do
|
143
|
-
order.
|
143
|
+
order.update! user: user
|
144
144
|
order.update_columns(ship_address_id: create(:address).id, state: "address")
|
145
145
|
end
|
146
146
|
|
@@ -213,7 +213,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
213
213
|
end
|
214
214
|
|
215
215
|
before do
|
216
|
-
order.
|
216
|
+
order.update! user: user
|
217
217
|
3.times { order.next! } # should put us in the payment state
|
218
218
|
end
|
219
219
|
|
@@ -245,7 +245,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
245
245
|
end
|
246
246
|
|
247
247
|
before do
|
248
|
-
order.
|
248
|
+
order.update! user: user
|
249
249
|
3.times { order.next! } # should put us in the payment state
|
250
250
|
end
|
251
251
|
|
@@ -300,7 +300,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
300
300
|
|
301
301
|
context "when in the confirm state" do
|
302
302
|
before do
|
303
|
-
order.
|
303
|
+
order.update! user: user
|
304
304
|
order.update_column(:state, "confirm")
|
305
305
|
# An order requires a payment to reach the complete state
|
306
306
|
# This is because payment_required? is true on the order
|
@@ -330,7 +330,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
330
330
|
|
331
331
|
context "save unsuccessful" do
|
332
332
|
before do
|
333
|
-
order.
|
333
|
+
order.update! user: user
|
334
334
|
allow(order).to receive_messages valid?: false
|
335
335
|
end
|
336
336
|
|
@@ -367,7 +367,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
367
367
|
|
368
368
|
context "Spree::Core::GatewayError" do
|
369
369
|
before do
|
370
|
-
order.
|
370
|
+
order.update! user: user
|
371
371
|
allow(order).to receive(:next).and_raise(Spree::Core::GatewayError.new("Invalid something or other."))
|
372
372
|
post :update, params: { state: "address", order: { bill_address_attributes: address_params } }
|
373
373
|
end
|
@@ -37,7 +37,7 @@ module Spree
|
|
37
37
|
|
38
38
|
context '#update' do
|
39
39
|
it 'should check if user is authorized for :update' do
|
40
|
-
allow(order).to receive :
|
40
|
+
allow(order).to receive :update
|
41
41
|
expect(controller).to receive(:authorize!).with(:update, order, token)
|
42
42
|
post :update, params: { order: { email: "foo@bar.com" }, token: token }
|
43
43
|
end
|
@@ -102,6 +102,31 @@ describe Spree::OrdersController, type: :controller do
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
context '#edit' do
|
106
|
+
before do
|
107
|
+
allow(controller).to receive :authorize!
|
108
|
+
allow(controller).to receive_messages current_order: order
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should render cart' do
|
112
|
+
get :edit, params: { id: order.number }
|
113
|
+
|
114
|
+
expect(flash[:error]).to be_nil
|
115
|
+
expect(response).to be_ok
|
116
|
+
end
|
117
|
+
|
118
|
+
context 'with another order number than the current_order' do
|
119
|
+
let(:other_order) { create(:completed_order_with_totals) }
|
120
|
+
|
121
|
+
it 'should display error message' do
|
122
|
+
get :edit, params: { id: other_order.number }
|
123
|
+
|
124
|
+
expect(flash[:error]).to eq "You may only edit your current shopping cart."
|
125
|
+
expect(response).to redirect_to cart_path
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
105
130
|
context "#update" do
|
106
131
|
context "with authorization" do
|
107
132
|
before do
|
@@ -117,13 +142,13 @@ describe Spree::OrdersController, type: :controller do
|
|
117
142
|
end
|
118
143
|
|
119
144
|
it "should redirect to cart path (on success)" do
|
120
|
-
allow(order).to receive(:
|
145
|
+
allow(order).to receive(:update).and_return true
|
121
146
|
put :update
|
122
147
|
expect(response).to redirect_to(spree.cart_path)
|
123
148
|
end
|
124
149
|
|
125
150
|
it "should advance the order if :checkout button is pressed" do
|
126
|
-
allow(order).to receive(:
|
151
|
+
allow(order).to receive(:update).and_return true
|
127
152
|
expect(order).to receive(:next)
|
128
153
|
put :update, params: { checkout: true }
|
129
154
|
expect(response).to redirect_to checkout_state_path('address')
|
@@ -680,6 +680,57 @@ describe "Checkout", type: :feature, inaccessible: true do
|
|
680
680
|
end
|
681
681
|
end
|
682
682
|
|
683
|
+
# Regression test for: https://github.com/solidusio/solidus/issues/2998
|
684
|
+
context 'when two shipping categories are available' do
|
685
|
+
let!(:first_category) { create(:shipping_category) }
|
686
|
+
let!(:second_category) { create(:shipping_category) }
|
687
|
+
|
688
|
+
let!(:first_shipping_method) do
|
689
|
+
create(:shipping_method,
|
690
|
+
shipping_categories: [first_category],
|
691
|
+
stores: [store])
|
692
|
+
end
|
693
|
+
|
694
|
+
let!(:second_shipping_method) do
|
695
|
+
create(:shipping_method,
|
696
|
+
shipping_categories: [second_category],
|
697
|
+
stores: [store])
|
698
|
+
end
|
699
|
+
|
700
|
+
context 'assigned to two different products' do
|
701
|
+
let!(:first_product) do
|
702
|
+
create(:product,
|
703
|
+
name: 'First product',
|
704
|
+
shipping_category: first_category)
|
705
|
+
end
|
706
|
+
|
707
|
+
let!(:second_product) do
|
708
|
+
create(:product,
|
709
|
+
name: 'Second product',
|
710
|
+
shipping_category: second_category)
|
711
|
+
end
|
712
|
+
|
713
|
+
before do
|
714
|
+
stock_location.stock_items.update_all(count_on_hand: 10)
|
715
|
+
end
|
716
|
+
|
717
|
+
it 'transitions successfully to the delivery step', js: true do
|
718
|
+
visit spree.product_path(first_product)
|
719
|
+
click_button 'add-to-cart-button'
|
720
|
+
visit spree.product_path(second_product)
|
721
|
+
click_button 'add-to-cart-button'
|
722
|
+
|
723
|
+
click_button 'Checkout'
|
724
|
+
|
725
|
+
fill_in_address
|
726
|
+
fill_in 'order_email', with: 'test@example.com'
|
727
|
+
click_button 'Save and Continue'
|
728
|
+
|
729
|
+
expect(Spree::Order.last.state).to eq('delivery')
|
730
|
+
end
|
731
|
+
end
|
732
|
+
end
|
733
|
+
|
683
734
|
def fill_in_credit_card(number: "4111 1111 1111 1111")
|
684
735
|
fill_in "Name on card", with: 'Mary Doe'
|
685
736
|
fill_in_with_force "Card Number", with: number
|
@@ -51,20 +51,20 @@ describe "Visiting Products", type: :feature, inaccessible: true do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'displays metas' do
|
54
|
-
jersey.
|
54
|
+
jersey.update metas
|
55
55
|
click_link jersey.name
|
56
56
|
expect(page).to have_meta(:description, 'Brand new Ruby on Rails Jersey')
|
57
57
|
expect(page).to have_meta(:keywords, 'ror, jersey, ruby')
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'displays title if set' do
|
61
|
-
jersey.
|
61
|
+
jersey.update metas
|
62
62
|
click_link jersey.name
|
63
63
|
expect(page).to have_title('Ruby on Rails Baseball Jersey Buy High Quality Geek Apparel')
|
64
64
|
end
|
65
65
|
|
66
66
|
it "doesn't use meta_title as heading on page" do
|
67
|
-
jersey.
|
67
|
+
jersey.update metas
|
68
68
|
click_link jersey.name
|
69
69
|
within("h1") do
|
70
70
|
expect(page).to have_content(jersey.name)
|
@@ -73,7 +73,7 @@ describe "Visiting Products", type: :feature, inaccessible: true do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
it 'uses product name in title when meta_title set to empty string' do
|
76
|
-
jersey.
|
76
|
+
jersey.update meta_title: ''
|
77
77
|
click_link jersey.name
|
78
78
|
expect(page).to have_title('Ruby on Rails Baseball Jersey - ' + store_name)
|
79
79
|
end
|
@@ -30,14 +30,14 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
30
30
|
|
31
31
|
describe 'meta tags and title' do
|
32
32
|
it 'displays metas' do
|
33
|
-
t_shirts.
|
33
|
+
t_shirts.update metas
|
34
34
|
visit '/t/category/super-clothing/t-shirts'
|
35
35
|
expect(page).to have_meta(:description, 'Brand new Ruby on Rails TShirts')
|
36
36
|
expect(page).to have_meta(:keywords, 'ror, tshirt, ruby')
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'display title if set' do
|
40
|
-
t_shirts.
|
40
|
+
t_shirts.update metas
|
41
41
|
visit '/t/category/super-clothing/t-shirts'
|
42
42
|
expect(page).to have_title("Ruby On Rails TShirt")
|
43
43
|
end
|
@@ -49,7 +49,7 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
49
49
|
|
50
50
|
# Regression test for https://github.com/spree/spree/issues/2814
|
51
51
|
it "doesn't use meta_title as heading on page" do
|
52
|
-
t_shirts.
|
52
|
+
t_shirts.update metas
|
53
53
|
visit '/t/category/super-clothing/t-shirts'
|
54
54
|
within("h1.taxon-title") do
|
55
55
|
expect(page).to have_content(t_shirts.name)
|
@@ -57,7 +57,7 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it 'uses taxon name in title when meta_title set to empty string' do
|
60
|
-
t_shirts.
|
60
|
+
t_shirts.update meta_title: ''
|
61
61
|
visit '/t/category/super-clothing/t-shirts'
|
62
62
|
expect(page).to have_title('Category - T-Shirts - ' + store_name)
|
63
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_frontend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.10.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_api
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.10.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.10.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: solidus_core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.10.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.10.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: canonical-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: responders
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: sassc-rails
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,7 +218,6 @@ files:
|
|
204
218
|
- app/controllers/spree/taxons_controller.rb
|
205
219
|
- app/helpers/spree/orders_helper.rb
|
206
220
|
- app/helpers/spree/taxon_filters_helper.rb
|
207
|
-
- app/models/spree/frontend_configuration.rb
|
208
221
|
- app/views/spree/address/_form.html.erb
|
209
222
|
- app/views/spree/address/_form_hidden.html.erb
|
210
223
|
- app/views/spree/checkout/_address.html.erb
|
@@ -264,8 +277,10 @@ files:
|
|
264
277
|
- lib/generators/solidus/views/override_generator.rb
|
265
278
|
- lib/solidus_frontend.rb
|
266
279
|
- lib/spree/frontend.rb
|
280
|
+
- lib/spree/frontend/config.rb
|
267
281
|
- lib/spree/frontend/engine.rb
|
268
282
|
- lib/spree/frontend/middleware/seo_assist.rb
|
283
|
+
- lib/spree/frontend_configuration.rb
|
269
284
|
- lib/spree_frontend.rb
|
270
285
|
- lib/tasks/rake_util.rb
|
271
286
|
- lib/tasks/taxon.rake
|
@@ -316,7 +331,7 @@ homepage: http://solidus.io/
|
|
316
331
|
licenses:
|
317
332
|
- BSD-3-Clause
|
318
333
|
metadata: {}
|
319
|
-
post_install_message:
|
334
|
+
post_install_message:
|
320
335
|
rdoc_options: []
|
321
336
|
require_paths:
|
322
337
|
- lib
|
@@ -324,7 +339,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
324
339
|
requirements:
|
325
340
|
- - ">="
|
326
341
|
- !ruby/object:Gem::Version
|
327
|
-
version: 2.
|
342
|
+
version: 2.4.0
|
328
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
329
344
|
requirements:
|
330
345
|
- - ">="
|
@@ -332,8 +347,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
347
|
version: 1.8.23
|
333
348
|
requirements:
|
334
349
|
- none
|
335
|
-
rubygems_version: 3.
|
336
|
-
signing_key:
|
350
|
+
rubygems_version: 3.1.4
|
351
|
+
signing_key:
|
337
352
|
specification_version: 4
|
338
353
|
summary: Cart and storefront for the Solidus e-commerce project.
|
339
354
|
test_files: []
|