solidus_frontend_devise_token_auth 2.8.0.alpha.2

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.
Files changed (163) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/README.md +42 -0
  4. data/Rakefile +17 -0
  5. data/app/assets/config/solidus_frontend_manifest.js +4 -0
  6. data/app/assets/images/credit_cards/amex_cid.gif +0 -0
  7. data/app/assets/images/credit_cards/credit_card.gif +0 -0
  8. data/app/assets/images/credit_cards/discover_cid.gif +0 -0
  9. data/app/assets/images/credit_cards/icons/american_express.png +0 -0
  10. data/app/assets/images/credit_cards/icons/cirrus.png +0 -0
  11. data/app/assets/images/credit_cards/icons/delta.png +0 -0
  12. data/app/assets/images/credit_cards/icons/diners_club.png +0 -0
  13. data/app/assets/images/credit_cards/icons/directdebit.png +0 -0
  14. data/app/assets/images/credit_cards/icons/discover.png +0 -0
  15. data/app/assets/images/credit_cards/icons/egold.png +0 -0
  16. data/app/assets/images/credit_cards/icons/maestro.png +0 -0
  17. data/app/assets/images/credit_cards/icons/master.png +0 -0
  18. data/app/assets/images/credit_cards/icons/paypal.png +0 -0
  19. data/app/assets/images/credit_cards/icons/solo.png +0 -0
  20. data/app/assets/images/credit_cards/icons/switch.png +0 -0
  21. data/app/assets/images/credit_cards/icons/visa.png +0 -0
  22. data/app/assets/images/credit_cards/icons/visaelectron.png +0 -0
  23. data/app/assets/images/credit_cards/icons/westernunion.png +0 -0
  24. data/app/assets/images/credit_cards/icons/wirecard.png +0 -0
  25. data/app/assets/images/credit_cards/icons/worldpay.png +0 -0
  26. data/app/assets/images/credit_cards/master_cid.jpg +0 -0
  27. data/app/assets/images/credit_cards/visa_cid.gif +0 -0
  28. data/app/assets/images/favicon.ico +0 -0
  29. data/app/assets/images/icons/add-to-cart.png +0 -0
  30. data/app/assets/images/icons/checkout.png +0 -0
  31. data/app/assets/images/icons/delete.png +0 -0
  32. data/app/assets/images/icons/update.png +0 -0
  33. data/app/assets/images/spinner.gif +0 -0
  34. data/app/assets/images/spree/frontend/cart.png +0 -0
  35. data/app/assets/javascripts/spree/frontend/cart.js +30 -0
  36. data/app/assets/javascripts/spree/frontend/checkout/address.js +127 -0
  37. data/app/assets/javascripts/spree/frontend/checkout/coupon-code.js +41 -0
  38. data/app/assets/javascripts/spree/frontend/checkout/payment.js +55 -0
  39. data/app/assets/javascripts/spree/frontend/checkout.js +24 -0
  40. data/app/assets/javascripts/spree/frontend/locale_selector.js +5 -0
  41. data/app/assets/javascripts/spree/frontend/product.js +81 -0
  42. data/app/assets/javascripts/spree/frontend.js +5 -0
  43. data/app/assets/stylesheets/spree/frontend/_skeleton.scss +242 -0
  44. data/app/assets/stylesheets/spree/frontend/_variables.scss +65 -0
  45. data/app/assets/stylesheets/spree/frontend/screen.css.scss +1387 -0
  46. data/app/assets/stylesheets/spree/frontend.css +5 -0
  47. data/app/controllers/spree/checkout_controller.rb +236 -0
  48. data/app/controllers/spree/content_controller.rb +11 -0
  49. data/app/controllers/spree/home_controller.rb +14 -0
  50. data/app/controllers/spree/locale_controller.rb +20 -0
  51. data/app/controllers/spree/orders_controller.rb +138 -0
  52. data/app/controllers/spree/products_controller.rb +52 -0
  53. data/app/controllers/spree/store_controller.rb +30 -0
  54. data/app/controllers/spree/taxons_controller.rb +31 -0
  55. data/app/helpers/spree/orders_helper.rb +18 -0
  56. data/app/helpers/spree/taxon_filters_helper.rb +13 -0
  57. data/app/models/spree/frontend_configuration.rb +10 -0
  58. data/app/views/spree/address/_form.html.erb +96 -0
  59. data/app/views/spree/address/_form_hidden.html.erb +12 -0
  60. data/app/views/spree/checkout/_address.html.erb +33 -0
  61. data/app/views/spree/checkout/_confirm.html.erb +25 -0
  62. data/app/views/spree/checkout/_coupon_code.html.erb +12 -0
  63. data/app/views/spree/checkout/_delivery.html.erb +108 -0
  64. data/app/views/spree/checkout/_payment.html.erb +67 -0
  65. data/app/views/spree/checkout/_summary.html.erb +76 -0
  66. data/app/views/spree/checkout/_terms_and_conditions.en.html.erb +1 -0
  67. data/app/views/spree/checkout/edit.html.erb +32 -0
  68. data/app/views/spree/checkout/existing_payment/_gateway.html.erb +9 -0
  69. data/app/views/spree/checkout/payment/_check.html.erb +0 -0
  70. data/app/views/spree/checkout/payment/_gateway.html.erb +36 -0
  71. data/app/views/spree/content/cvv.html.erb +13 -0
  72. data/app/views/spree/home/index.html.erb +12 -0
  73. data/app/views/spree/layouts/spree_application.html.erb +36 -0
  74. data/app/views/spree/orders/_adjustment_row.html.erb +8 -0
  75. data/app/views/spree/orders/_adjustments.html.erb +24 -0
  76. data/app/views/spree/orders/_form.html.erb +29 -0
  77. data/app/views/spree/orders/_line_item.html.erb +34 -0
  78. data/app/views/spree/orders/edit.html.erb +47 -0
  79. data/app/views/spree/orders/show.html.erb +22 -0
  80. data/app/views/spree/payments/_payment.html.erb +18 -0
  81. data/app/views/spree/products/_cart_form.html.erb +65 -0
  82. data/app/views/spree/products/_image.html.erb +8 -0
  83. data/app/views/spree/products/_promotions.html.erb +19 -0
  84. data/app/views/spree/products/_properties.html.erb +15 -0
  85. data/app/views/spree/products/_taxons.html.erb +14 -0
  86. data/app/views/spree/products/_thumbnails.html.erb +21 -0
  87. data/app/views/spree/products/index.html.erb +27 -0
  88. data/app/views/spree/products/show.html.erb +51 -0
  89. data/app/views/spree/shared/_address.html.erb +38 -0
  90. data/app/views/spree/shared/_filters.html.erb +27 -0
  91. data/app/views/spree/shared/_footer.html.erb +6 -0
  92. data/app/views/spree/shared/_head.html.erb +14 -0
  93. data/app/views/spree/shared/_header.html.erb +5 -0
  94. data/app/views/spree/shared/_image.html.erb +12 -0
  95. data/app/views/spree/shared/_link_to_cart.html.erb +1 -0
  96. data/app/views/spree/shared/_locale_selector.html.erb +25 -0
  97. data/app/views/spree/shared/_login_bar_items.html.erb +1 -0
  98. data/app/views/spree/shared/_main_nav_bar.html.erb +12 -0
  99. data/app/views/spree/shared/_nav_bar.html.erb +9 -0
  100. data/app/views/spree/shared/_order_details.html.erb +146 -0
  101. data/app/views/spree/shared/_products.html.erb +51 -0
  102. data/app/views/spree/shared/_search.html.erb +11 -0
  103. data/app/views/spree/shared/_shipment_tracking.html.erb +9 -0
  104. data/app/views/spree/shared/_sidebar.html.erb +3 -0
  105. data/app/views/spree/shared/_taxonomies.html.erb +9 -0
  106. data/app/views/spree/shared/unauthorized.html.erb +0 -0
  107. data/app/views/spree/store/cart_link.html.erb +1 -0
  108. data/app/views/spree/taxons/_taxon.html.erb +4 -0
  109. data/app/views/spree/taxons/show.html.erb +20 -0
  110. data/config/initializers/assets.rb +3 -0
  111. data/config/initializers/canonical_rails.rb +16 -0
  112. data/config/routes.rb +33 -0
  113. data/lib/generators/solidus/views/override_generator.rb +49 -0
  114. data/lib/solidus_frontend.rb +3 -0
  115. data/lib/spree/frontend/engine.rb +13 -0
  116. data/lib/spree/frontend/middleware/seo_assist.rb +52 -0
  117. data/lib/spree/frontend.rb +15 -0
  118. data/lib/spree_frontend.rb +3 -0
  119. data/lib/tasks/rake_util.rb +18 -0
  120. data/lib/tasks/taxon.rake +16 -0
  121. data/script/rails +10 -0
  122. data/solidus_frontend.gemspec +35 -0
  123. data/spec/controllers/controller_helpers_spec.rb +30 -0
  124. data/spec/controllers/locale_controller_spec.rb +57 -0
  125. data/spec/controllers/spree/checkout_controller_spec.rb +539 -0
  126. data/spec/controllers/spree/checkout_controller_with_views_spec.rb +37 -0
  127. data/spec/controllers/spree/content_controller_spec.rb +9 -0
  128. data/spec/controllers/spree/current_order_tracking_spec.rb +47 -0
  129. data/spec/controllers/spree/home_controller_spec.rb +29 -0
  130. data/spec/controllers/spree/orders_controller_ability_spec.rb +93 -0
  131. data/spec/controllers/spree/orders_controller_spec.rb +225 -0
  132. data/spec/controllers/spree/orders_controller_transitions_spec.rb +33 -0
  133. data/spec/controllers/spree/products_controller_spec.rb +38 -0
  134. data/spec/controllers/spree/taxons_controller_spec.rb +14 -0
  135. data/spec/features/address_spec.rb +78 -0
  136. data/spec/features/automatic_promotion_adjustments_spec.rb +49 -0
  137. data/spec/features/caching/products_spec.rb +48 -0
  138. data/spec/features/caching/taxons_spec.rb +21 -0
  139. data/spec/features/cart_spec.rb +85 -0
  140. data/spec/features/checkout_spec.rb +690 -0
  141. data/spec/features/checkout_unshippable_spec.rb +37 -0
  142. data/spec/features/coupon_code_spec.rb +266 -0
  143. data/spec/features/currency_spec.rb +20 -0
  144. data/spec/features/free_shipping_promotions_spec.rb +60 -0
  145. data/spec/features/locale_spec.rb +27 -0
  146. data/spec/features/order_spec.rb +73 -0
  147. data/spec/features/products_spec.rb +291 -0
  148. data/spec/features/promotion_code_invalidation_spec.rb +54 -0
  149. data/spec/features/quantity_promotions_spec.rb +130 -0
  150. data/spec/features/taxons_spec.rb +158 -0
  151. data/spec/features/template_rendering_spec.rb +20 -0
  152. data/spec/fixtures/thinking-cat.jpg +0 -0
  153. data/spec/generators/solidus/views/override_generator_spec.rb +50 -0
  154. data/spec/helpers/base_helper_spec.rb +13 -0
  155. data/spec/helpers/order_helper_spec.rb +14 -0
  156. data/spec/helpers/taxon_filters_helper_spec.rb +12 -0
  157. data/spec/spec_helper.rb +106 -0
  158. data/spec/support/features/fill_in_with_force.rb +12 -0
  159. data/spec/support/shared_contexts/checkout_setup.rb +12 -0
  160. data/spec/support/shared_contexts/custom_products.rb +28 -0
  161. data/spec/support/shared_contexts/locales.rb +16 -0
  162. data/spec/views/spree/checkout/_summary_spec.rb +11 -0
  163. metadata +337 -0
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'generator_spec'
5
+ require 'generators/solidus/views/override_generator'
6
+
7
+ RSpec.describe Solidus::Views::OverrideGenerator, type: :generator do
8
+ destination Rails.root.join('app', 'views', 'spree')
9
+
10
+ before(:all) do
11
+ prepare_destination
12
+ end
13
+
14
+ subject! do
15
+ run_generator arguments
16
+ end
17
+
18
+ let(:src) do
19
+ Spree::Frontend::Engine.root.join('app', 'views', 'spree')
20
+ end
21
+
22
+ let(:dest) do
23
+ Rails.root.join('app', 'views', 'spree')
24
+ end
25
+
26
+ context 'without any arguments' do
27
+ let(:arguments) { %w() }
28
+
29
+ it 'copies all views into the host app' do
30
+ expect(src.entries).to match_array(dest.entries)
31
+ end
32
+ end
33
+
34
+ context 'when "products" is passed as --only argument' do
35
+ let(:arguments) { %w(--only products) }
36
+
37
+ context 'as folder' do
38
+ it 'exclusively copies views whose name contains "products"' do
39
+ Dir.glob(dest.join("**", "*")).each do |file|
40
+ next if File.directory?(file)
41
+ expect(file.to_s).to match("products")
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ after do
48
+ FileUtils.rm_rf destination_root
49
+ end
50
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ module Spree
6
+ describe BaseHelper, type: :helper do
7
+ # Regression test for https://github.com/spree/spree/issues/2759
8
+ it "nested_taxons_path works with a Taxon object" do
9
+ taxon = create(:taxon, name: "iphone")
10
+ expect(spree.nested_taxons_path(taxon)).to eq("/t/iphone")
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ module Spree
6
+ describe Spree::OrdersHelper, type: :helper do
7
+ # Regression test for https://github.com/spree/spree/issues/2518 and https://github.com/spree/spree/issues/2323
8
+ it "truncates HTML correctly in product description" do
9
+ product = double(description: "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
10
+ expected = "<strong>" + ("a" * 95) + "</strong>..."
11
+ expect(truncated_product_description(product)).to eq(expected)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Spree::TaxonFiltersHelper, type: :helper do
6
+ let(:taxon) { nil }
7
+ subject { applicable_filters_for(taxon) }
8
+
9
+ it "returns the price/brand filters" do
10
+ expect(subject.map { |y| y[:name] }).to eq ['Brands', 'Price Range']
11
+ end
12
+ end
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ if ENV["COVERAGE"]
4
+ require 'simplecov'
5
+ SimpleCov.start('rails')
6
+ end
7
+
8
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
9
+ # from the project root directory.
10
+ ENV["RAILS_ENV"] ||= 'test'
11
+
12
+ require 'solidus_frontend'
13
+ require 'spree/testing_support/dummy_app'
14
+ DummyApp.setup(
15
+ gem_root: File.expand_path('..', __dir__),
16
+ lib_name: 'solidus_frontend'
17
+ )
18
+
19
+ require 'rails-controller-testing'
20
+ require 'rspec/rails'
21
+ require 'rspec-activemodel-mocks'
22
+
23
+ # Requires supporting files with custom matchers and macros, etc,
24
+ # in ./support/ and its subdirectories.
25
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
26
+
27
+ require 'database_cleaner'
28
+
29
+ require 'spree/testing_support/authorization_helpers'
30
+ require 'spree/testing_support/capybara_ext'
31
+ require 'spree/testing_support/factories'
32
+ require 'spree/testing_support/preferences'
33
+ require 'spree/testing_support/controller_requests'
34
+ require 'spree/testing_support/flash'
35
+ require 'spree/testing_support/url_helpers'
36
+ require 'spree/testing_support/order_walkthrough'
37
+ require 'spree/testing_support/caching'
38
+
39
+ require 'capybara-screenshot/rspec'
40
+ Capybara.save_path = ENV['CIRCLE_ARTIFACTS'] if ENV['CIRCLE_ARTIFACTS']
41
+ Capybara.default_max_wait_time = ENV['DEFAULT_MAX_WAIT_TIME'].to_f if ENV['DEFAULT_MAX_WAIT_TIME'].present?
42
+
43
+ require "selenium/webdriver"
44
+ Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym
45
+
46
+ ActiveJob::Base.queue_adapter = :test
47
+
48
+ RSpec.configure do |config|
49
+ config.color = true
50
+ config.infer_spec_type_from_file_location!
51
+ config.expect_with :rspec do |c|
52
+ c.syntax = :expect
53
+ end
54
+ config.mock_with :rspec do |c|
55
+ c.syntax = :expect
56
+ end
57
+
58
+ config.fixture_path = File.join(__dir__, "fixtures")
59
+
60
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
61
+ # examples within a transaction, comment the following line or assign false
62
+ # instead of true.
63
+ config.use_transactional_fixtures = true
64
+
65
+ if ENV['WEBDRIVER'] == 'accessible'
66
+ config.around(:each, inaccessible: true) do |example|
67
+ Capybara::Accessible.skip_audit { example.run }
68
+ end
69
+ end
70
+
71
+ config.before(:suite) do
72
+ DatabaseCleaner.clean_with :truncation
73
+ end
74
+
75
+ config.before(:each) do
76
+ Rails.cache.clear
77
+ reset_spree_preferences
78
+ end
79
+
80
+ config.before(:each, type: :feature) do
81
+ if page.driver.browser.respond_to?(:url_blacklist)
82
+ page.driver.browser.url_blacklist = ['http://fonts.googleapis.com']
83
+ end
84
+ end
85
+
86
+ config.after(:each, type: :feature) do |example|
87
+ missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
88
+ if missing_translations.any?
89
+ puts "Found missing translations: #{missing_translations.inspect}"
90
+ puts "In spec: #{example.location}"
91
+ end
92
+ end
93
+
94
+ config.include FactoryBot::Syntax::Methods
95
+
96
+ config.include Spree::TestingSupport::Preferences
97
+ config.include Spree::TestingSupport::UrlHelpers
98
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
99
+ config.include Spree::TestingSupport::Flash
100
+
101
+ config.example_status_persistence_file_path = "./spec/examples.txt"
102
+
103
+ config.order = :random
104
+
105
+ Kernel.srand config.seed
106
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FillInWithForce
4
+ def fill_in_with_force(locator, with:)
5
+ field_id = find_field(locator)[:id]
6
+ page.execute_script "document.getElementById('#{field_id}').value = '#{with}';"
7
+ end
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.include FillInWithForce, type: :feature
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ shared_context 'checkout setup' do
4
+ let!(:store) { create(:store) }
5
+ let!(:country) { create(:country, states_required: true) }
6
+ let!(:state) { create(:state, country: country) }
7
+ let!(:shipping_method) { create(:shipping_method) }
8
+ let!(:stock_location) { create(:stock_location) }
9
+ let!(:mug) { create(:product, name: "RoR Mug") }
10
+ let!(:payment_method) { create(:check_payment_method) }
11
+ let!(:zone) { create(:zone) }
12
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ shared_context "custom products" do
4
+ before(:each) do
5
+ create(:store)
6
+ taxonomy = FactoryBot.create(:taxonomy, name: 'Categories')
7
+ root = taxonomy.root
8
+ clothing_taxon = FactoryBot.create(:taxon, name: 'Clothing', parent_id: root.id)
9
+ bags_taxon = FactoryBot.create(:taxon, name: 'Bags', parent_id: root.id)
10
+ mugs_taxon = FactoryBot.create(:taxon, name: 'Mugs', parent_id: root.id)
11
+
12
+ taxonomy = FactoryBot.create(:taxonomy, name: 'Brands')
13
+ root = taxonomy.root
14
+ apache_taxon = FactoryBot.create(:taxon, name: 'Apache', parent_id: root.id)
15
+ rails_taxon = FactoryBot.create(:taxon, name: 'Ruby on Rails', parent_id: root.id)
16
+ ruby_taxon = FactoryBot.create(:taxon, name: 'Ruby', parent_id: root.id)
17
+
18
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Ringer T-Shirt', price: '19.99', taxons: [rails_taxon, clothing_taxon])
19
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Mug', price: '15.99', taxons: [rails_taxon, mugs_taxon])
20
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Tote', price: '15.99', taxons: [rails_taxon, bags_taxon])
21
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Bag', price: '22.99', taxons: [rails_taxon, bags_taxon])
22
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Baseball Jersey', price: '19.99', taxons: [rails_taxon, clothing_taxon])
23
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Stein', price: '16.99', taxons: [rails_taxon, mugs_taxon])
24
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Jr. Spaghetti', price: '19.99', taxons: [rails_taxon, clothing_taxon])
25
+ FactoryBot.create(:custom_product, name: 'Ruby Baseball Jersey', price: '19.99', taxons: [ruby_taxon, clothing_taxon])
26
+ FactoryBot.create(:custom_product, name: 'Apache Baseball Jersey', price: '19.99', taxons: [apache_taxon, clothing_taxon])
27
+ end
28
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ shared_context 'fr locale' do
4
+ before do
5
+ I18n.backend.store_translations(:fr, spree: {
6
+ i18n: { this_file_language: "Français" },
7
+ cart: 'Panier',
8
+ shopping_cart: 'Panier'
9
+ })
10
+ end
11
+
12
+ after do
13
+ I18n.locale = :en # reset locale after each spec.
14
+ I18n.reload!
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "spree/checkout/_summary.html.erb", type: :view do
6
+ # Regression spec for https://github.com/spree/spree/issues/4223
7
+ it "does not use the @order instance variable" do
8
+ order = stub_model(Spree::Order)
9
+ render partial: "spree/checkout/summary", locals: { order: order }
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,337 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_frontend_devise_token_auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.8.0.alpha.2
5
+ platform: ruby
6
+ authors:
7
+ - Solidus Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: solidus_api_devise_token_auth
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.8.0.alpha.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.8.0.alpha.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: solidus_core_devise_token_auth
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 2.8.0.alpha.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 2.8.0.alpha.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: canonical-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: font-awesome-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: jquery-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
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: kaminari
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sassc-rails
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'
111
+ - !ruby/object:Gem::Dependency
112
+ name: truncate_html
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 0.9.2
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '0.9'
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 0.9.2
131
+ - !ruby/object:Gem::Dependency
132
+ name: capybara-accessible
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ description: Cart and storefront for the Solidus e-commerce project.
146
+ email: contact@solidus.io
147
+ executables: []
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - LICENSE
152
+ - README.md
153
+ - Rakefile
154
+ - app/assets/config/solidus_frontend_manifest.js
155
+ - app/assets/images/credit_cards/amex_cid.gif
156
+ - app/assets/images/credit_cards/credit_card.gif
157
+ - app/assets/images/credit_cards/discover_cid.gif
158
+ - app/assets/images/credit_cards/icons/american_express.png
159
+ - app/assets/images/credit_cards/icons/cirrus.png
160
+ - app/assets/images/credit_cards/icons/delta.png
161
+ - app/assets/images/credit_cards/icons/diners_club.png
162
+ - app/assets/images/credit_cards/icons/directdebit.png
163
+ - app/assets/images/credit_cards/icons/discover.png
164
+ - app/assets/images/credit_cards/icons/egold.png
165
+ - app/assets/images/credit_cards/icons/maestro.png
166
+ - app/assets/images/credit_cards/icons/master.png
167
+ - app/assets/images/credit_cards/icons/paypal.png
168
+ - app/assets/images/credit_cards/icons/solo.png
169
+ - app/assets/images/credit_cards/icons/switch.png
170
+ - app/assets/images/credit_cards/icons/visa.png
171
+ - app/assets/images/credit_cards/icons/visaelectron.png
172
+ - app/assets/images/credit_cards/icons/westernunion.png
173
+ - app/assets/images/credit_cards/icons/wirecard.png
174
+ - app/assets/images/credit_cards/icons/worldpay.png
175
+ - app/assets/images/credit_cards/master_cid.jpg
176
+ - app/assets/images/credit_cards/visa_cid.gif
177
+ - app/assets/images/favicon.ico
178
+ - app/assets/images/icons/add-to-cart.png
179
+ - app/assets/images/icons/checkout.png
180
+ - app/assets/images/icons/delete.png
181
+ - app/assets/images/icons/update.png
182
+ - app/assets/images/spinner.gif
183
+ - app/assets/images/spree/frontend/cart.png
184
+ - app/assets/javascripts/spree/frontend.js
185
+ - app/assets/javascripts/spree/frontend/cart.js
186
+ - app/assets/javascripts/spree/frontend/checkout.js
187
+ - app/assets/javascripts/spree/frontend/checkout/address.js
188
+ - app/assets/javascripts/spree/frontend/checkout/coupon-code.js
189
+ - app/assets/javascripts/spree/frontend/checkout/payment.js
190
+ - app/assets/javascripts/spree/frontend/locale_selector.js
191
+ - app/assets/javascripts/spree/frontend/product.js
192
+ - app/assets/stylesheets/spree/frontend.css
193
+ - app/assets/stylesheets/spree/frontend/_skeleton.scss
194
+ - app/assets/stylesheets/spree/frontend/_variables.scss
195
+ - app/assets/stylesheets/spree/frontend/screen.css.scss
196
+ - app/controllers/spree/checkout_controller.rb
197
+ - app/controllers/spree/content_controller.rb
198
+ - app/controllers/spree/home_controller.rb
199
+ - app/controllers/spree/locale_controller.rb
200
+ - app/controllers/spree/orders_controller.rb
201
+ - app/controllers/spree/products_controller.rb
202
+ - app/controllers/spree/store_controller.rb
203
+ - app/controllers/spree/taxons_controller.rb
204
+ - app/helpers/spree/orders_helper.rb
205
+ - app/helpers/spree/taxon_filters_helper.rb
206
+ - app/models/spree/frontend_configuration.rb
207
+ - app/views/spree/address/_form.html.erb
208
+ - app/views/spree/address/_form_hidden.html.erb
209
+ - app/views/spree/checkout/_address.html.erb
210
+ - app/views/spree/checkout/_confirm.html.erb
211
+ - app/views/spree/checkout/_coupon_code.html.erb
212
+ - app/views/spree/checkout/_delivery.html.erb
213
+ - app/views/spree/checkout/_payment.html.erb
214
+ - app/views/spree/checkout/_summary.html.erb
215
+ - app/views/spree/checkout/_terms_and_conditions.en.html.erb
216
+ - app/views/spree/checkout/edit.html.erb
217
+ - app/views/spree/checkout/existing_payment/_gateway.html.erb
218
+ - app/views/spree/checkout/payment/_check.html.erb
219
+ - app/views/spree/checkout/payment/_gateway.html.erb
220
+ - app/views/spree/content/cvv.html.erb
221
+ - app/views/spree/home/index.html.erb
222
+ - app/views/spree/layouts/spree_application.html.erb
223
+ - app/views/spree/orders/_adjustment_row.html.erb
224
+ - app/views/spree/orders/_adjustments.html.erb
225
+ - app/views/spree/orders/_form.html.erb
226
+ - app/views/spree/orders/_line_item.html.erb
227
+ - app/views/spree/orders/edit.html.erb
228
+ - app/views/spree/orders/show.html.erb
229
+ - app/views/spree/payments/_payment.html.erb
230
+ - app/views/spree/products/_cart_form.html.erb
231
+ - app/views/spree/products/_image.html.erb
232
+ - app/views/spree/products/_promotions.html.erb
233
+ - app/views/spree/products/_properties.html.erb
234
+ - app/views/spree/products/_taxons.html.erb
235
+ - app/views/spree/products/_thumbnails.html.erb
236
+ - app/views/spree/products/index.html.erb
237
+ - app/views/spree/products/show.html.erb
238
+ - app/views/spree/shared/_address.html.erb
239
+ - app/views/spree/shared/_filters.html.erb
240
+ - app/views/spree/shared/_footer.html.erb
241
+ - app/views/spree/shared/_head.html.erb
242
+ - app/views/spree/shared/_header.html.erb
243
+ - app/views/spree/shared/_image.html.erb
244
+ - app/views/spree/shared/_link_to_cart.html.erb
245
+ - app/views/spree/shared/_locale_selector.html.erb
246
+ - app/views/spree/shared/_login_bar_items.html.erb
247
+ - app/views/spree/shared/_main_nav_bar.html.erb
248
+ - app/views/spree/shared/_nav_bar.html.erb
249
+ - app/views/spree/shared/_order_details.html.erb
250
+ - app/views/spree/shared/_products.html.erb
251
+ - app/views/spree/shared/_search.html.erb
252
+ - app/views/spree/shared/_shipment_tracking.html.erb
253
+ - app/views/spree/shared/_sidebar.html.erb
254
+ - app/views/spree/shared/_taxonomies.html.erb
255
+ - app/views/spree/shared/unauthorized.html.erb
256
+ - app/views/spree/store/cart_link.html.erb
257
+ - app/views/spree/taxons/_taxon.html.erb
258
+ - app/views/spree/taxons/show.html.erb
259
+ - config/initializers/assets.rb
260
+ - config/initializers/canonical_rails.rb
261
+ - config/routes.rb
262
+ - lib/generators/solidus/views/override_generator.rb
263
+ - lib/solidus_frontend.rb
264
+ - lib/spree/frontend.rb
265
+ - lib/spree/frontend/engine.rb
266
+ - lib/spree/frontend/middleware/seo_assist.rb
267
+ - lib/spree_frontend.rb
268
+ - lib/tasks/rake_util.rb
269
+ - lib/tasks/taxon.rake
270
+ - script/rails
271
+ - solidus_frontend.gemspec
272
+ - spec/controllers/controller_helpers_spec.rb
273
+ - spec/controllers/locale_controller_spec.rb
274
+ - spec/controllers/spree/checkout_controller_spec.rb
275
+ - spec/controllers/spree/checkout_controller_with_views_spec.rb
276
+ - spec/controllers/spree/content_controller_spec.rb
277
+ - spec/controllers/spree/current_order_tracking_spec.rb
278
+ - spec/controllers/spree/home_controller_spec.rb
279
+ - spec/controllers/spree/orders_controller_ability_spec.rb
280
+ - spec/controllers/spree/orders_controller_spec.rb
281
+ - spec/controllers/spree/orders_controller_transitions_spec.rb
282
+ - spec/controllers/spree/products_controller_spec.rb
283
+ - spec/controllers/spree/taxons_controller_spec.rb
284
+ - spec/features/address_spec.rb
285
+ - spec/features/automatic_promotion_adjustments_spec.rb
286
+ - spec/features/caching/products_spec.rb
287
+ - spec/features/caching/taxons_spec.rb
288
+ - spec/features/cart_spec.rb
289
+ - spec/features/checkout_spec.rb
290
+ - spec/features/checkout_unshippable_spec.rb
291
+ - spec/features/coupon_code_spec.rb
292
+ - spec/features/currency_spec.rb
293
+ - spec/features/free_shipping_promotions_spec.rb
294
+ - spec/features/locale_spec.rb
295
+ - spec/features/order_spec.rb
296
+ - spec/features/products_spec.rb
297
+ - spec/features/promotion_code_invalidation_spec.rb
298
+ - spec/features/quantity_promotions_spec.rb
299
+ - spec/features/taxons_spec.rb
300
+ - spec/features/template_rendering_spec.rb
301
+ - spec/fixtures/thinking-cat.jpg
302
+ - spec/generators/solidus/views/override_generator_spec.rb
303
+ - spec/helpers/base_helper_spec.rb
304
+ - spec/helpers/order_helper_spec.rb
305
+ - spec/helpers/taxon_filters_helper_spec.rb
306
+ - spec/spec_helper.rb
307
+ - spec/support/features/fill_in_with_force.rb
308
+ - spec/support/shared_contexts/checkout_setup.rb
309
+ - spec/support/shared_contexts/custom_products.rb
310
+ - spec/support/shared_contexts/locales.rb
311
+ - spec/views/spree/checkout/_summary_spec.rb
312
+ homepage: http://solidus.io/
313
+ licenses:
314
+ - BSD-3-Clause
315
+ metadata: {}
316
+ post_install_message:
317
+ rdoc_options: []
318
+ require_paths:
319
+ - lib
320
+ required_ruby_version: !ruby/object:Gem::Requirement
321
+ requirements:
322
+ - - ">="
323
+ - !ruby/object:Gem::Version
324
+ version: 2.2.2
325
+ required_rubygems_version: !ruby/object:Gem::Requirement
326
+ requirements:
327
+ - - ">="
328
+ - !ruby/object:Gem::Version
329
+ version: 1.8.23
330
+ requirements:
331
+ - none
332
+ rubyforge_project:
333
+ rubygems_version: 2.7.6
334
+ signing_key:
335
+ specification_version: 4
336
+ summary: Cart and storefront for the Solidus e-commerce project.
337
+ test_files: []