solidus_frontend_devise_token_auth 2.8.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
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: []