spree_core 3.3.6 → 3.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/spree/base_helper.rb +17 -18
- data/app/helpers/spree/products_helper.rb +5 -5
- data/app/models/concerns/spree/calculated_adjustments.rb +4 -3
- data/app/models/concerns/spree/default_price.rb +4 -5
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/ransackable_attributes.rb +5 -6
- data/app/models/concerns/spree/user_address.rb +6 -6
- data/app/models/concerns/spree/user_methods.rb +3 -3
- data/app/models/concerns/spree/user_payment_source.rb +4 -2
- data/app/models/concerns/spree/user_reporting.rb +1 -1
- data/app/models/spree/ability.rb +3 -3
- data/app/models/spree/address.rb +13 -9
- data/app/models/spree/adjustable/adjuster/promotion.rb +1 -1
- data/app/models/spree/adjustable/adjustments_updater.rb +2 -2
- data/app/models/spree/adjustable/promotion_accumulator.rb +6 -4
- data/app/models/spree/adjustment.rb +2 -3
- data/app/models/spree/app_configuration.rb +5 -6
- data/app/models/spree/base.rb +1 -1
- data/app/models/spree/calculator/default_tax.rb +4 -5
- data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
- data/app/models/spree/calculator/flat_rate.rb +3 -3
- data/app/models/spree/calculator/flexi_rate.rb +5 -5
- data/app/models/spree/calculator/price_sack.rb +9 -9
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
- data/app/models/spree/calculator/shipping/flat_rate.rb +3 -3
- data/app/models/spree/calculator/shipping/flexi_rate.rb +7 -7
- data/app/models/spree/calculator/shipping/per_item.rb +2 -2
- data/app/models/spree/calculator/shipping/price_sack.rb +4 -4
- data/app/models/spree/calculator/tiered_flat_rate.rb +3 -2
- data/app/models/spree/calculator/tiered_percent.rb +4 -3
- data/app/models/spree/calculator.rb +4 -4
- data/app/models/spree/classification.rb +2 -2
- data/app/models/spree/credit_card.rb +1 -1
- data/app/models/spree/exchange.rb +4 -5
- data/app/models/spree/gateway/bogus.rb +20 -20
- data/app/models/spree/gateway/bogus_simple.rb +2 -4
- data/app/models/spree/gateway.rb +4 -4
- data/app/models/spree/image.rb +3 -3
- data/app/models/spree/inventory_unit.rb +30 -30
- data/app/models/spree/line_item.rb +7 -9
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/order/checkout.rb +5 -5
- data/app/models/spree/order/currency_updater.rb +1 -4
- data/app/models/spree/order/payments.rb +4 -4
- data/app/models/spree/order/store_credit.rb +2 -2
- data/app/models/spree/order.rb +11 -29
- data/app/models/spree/order_contents.rb +6 -5
- data/app/models/spree/order_inventory.rb +3 -4
- data/app/models/spree/order_updater.rb +13 -14
- data/app/models/spree/payment/processing.rb +25 -26
- data/app/models/spree/payment.rb +72 -79
- data/app/models/spree/payment_capture_event.rb +1 -1
- data/app/models/spree/payment_method/check.rb +1 -1
- data/app/models/spree/payment_method/store_credit.rb +5 -5
- data/app/models/spree/payment_method.rb +7 -7
- data/app/models/spree/preferences/configuration.rb +6 -9
- data/app/models/spree/preferences/preferable.rb +11 -11
- data/app/models/spree/preferences/preferable_class_methods.rb +2 -3
- data/app/models/spree/preferences/scoped_store.rb +6 -5
- data/app/models/spree/preferences/store.rb +9 -14
- data/app/models/spree/price.rb +1 -1
- data/app/models/spree/product/scopes.rb +49 -49
- data/app/models/spree/product.rb +16 -16
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +2 -1
- data/app/models/spree/promotion/actions/free_shipping.rb +1 -1
- data/app/models/spree/promotion/rules/first_order.rb +7 -6
- data/app/models/spree/promotion/rules/item_total.rb +3 -5
- data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
- data/app/models/spree/promotion/rules/option_value.rb +14 -6
- data/app/models/spree/promotion/rules/product.rb +4 -4
- data/app/models/spree/promotion/rules/taxon.rb +6 -6
- data/app/models/spree/promotion/rules/user.rb +3 -3
- data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
- data/app/models/spree/promotion.rb +15 -16
- data/app/models/spree/promotion_action.rb +1 -1
- data/app/models/spree/promotion_handler/cart.rb +3 -2
- data/app/models/spree/promotion_handler/free_shipping.rb +1 -3
- data/app/models/spree/promotion_handler/page.rb +3 -3
- data/app/models/spree/promotion_rule.rb +5 -4
- data/app/models/spree/refund.rb +8 -8
- data/app/models/spree/reimbursement/credit.rb +1 -1
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
- data/app/models/spree/reimbursement.rb +4 -8
- data/app/models/spree/reimbursement_performer.rb +0 -5
- data/app/models/spree/reimbursement_tax_calculator.rb +5 -12
- data/app/models/spree/reimbursement_type.rb +2 -2
- data/app/models/spree/return_authorization.rb +22 -26
- data/app/models/spree/return_item/eligibility_validator/default.rb +3 -3
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +2 -3
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +2 -2
- data/app/models/spree/return_item.rb +15 -19
- data/app/models/spree/returns_calculator.rb +1 -2
- data/app/models/spree/shipment.rb +14 -35
- data/app/models/spree/shipment_handler.rb +10 -12
- data/app/models/spree/shipping_calculator.rb +5 -6
- data/app/models/spree/shipping_method.rb +3 -3
- data/app/models/spree/shipping_rate.rb +2 -2
- data/app/models/spree/state.rb +2 -2
- data/app/models/spree/stock/availability_validator.rb +1 -1
- data/app/models/spree/stock/content_item.rb +2 -3
- data/app/models/spree/stock/coordinator.rb +3 -2
- data/app/models/spree/stock/differentiator.rb +3 -2
- data/app/models/spree/stock/estimator.rb +7 -5
- data/app/models/spree/stock/package.rb +5 -5
- data/app/models/spree/stock/packer.rb +1 -1
- data/app/models/spree/stock/prioritizer.rb +5 -7
- data/app/models/spree/stock/quantifier.rb +0 -1
- data/app/models/spree/stock/splitter/backordered.rb +2 -4
- data/app/models/spree/stock/splitter/base.rb +3 -2
- data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
- data/app/models/spree/stock_item.rb +1 -1
- data/app/models/spree/stock_location.rb +12 -11
- data/app/models/spree/stock_movement.rb +1 -3
- data/app/models/spree/stock_transfer.rb +1 -1
- data/app/models/spree/store.rb +4 -4
- data/app/models/spree/store_credit.rb +3 -3
- data/app/models/spree/tax_category.rb +1 -1
- data/app/models/spree/tax_rate.rb +10 -10
- data/app/models/spree/taxon.rb +13 -13
- data/app/models/spree/taxonomy.rb +9 -8
- data/app/models/spree/validations/db_maximum_length_validator.rb +2 -3
- data/app/models/spree/variant.rb +30 -41
- data/app/models/spree/zone.rb +10 -10
- data/app/validators/db_maximum_length_validator.rb +5 -5
- data/config/initializers/acts_as_taggable_on.rb +3 -3
- data/config/initializers/assets.rb +1 -1
- data/config/initializers/friendly_id.rb +1 -1
- data/config/initializers/premailer_assets.rb +1 -1
- data/config/locales/en.yml +8 -2
- data/db/default/spree/states.rb +1 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +12 -15
- data/lib/generators/spree/install/install_generator.rb +45 -32
- data/lib/spree/core/components.rb +3 -3
- data/lib/spree/core/controller_helpers/auth.rb +5 -10
- data/lib/spree/core/controller_helpers/common.rb +2 -3
- data/lib/spree/core/controller_helpers/order.rb +3 -7
- data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
- data/lib/spree/core/engine.rb +3 -3
- data/lib/spree/core/environment/calculators.rb +0 -1
- data/lib/spree/core/environment_extension.rb +8 -8
- data/lib/spree/core/importer/order.rb +64 -67
- data/lib/spree/core/importer/product.rb +10 -9
- data/lib/spree/core/product_filters.rb +17 -18
- data/lib/spree/core/routes.rb +2 -6
- data/lib/spree/core/search/base.rb +62 -59
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +4 -6
- data/lib/spree/i18n.rb +3 -5
- data/lib/spree/localized_number.rb +0 -2
- data/lib/spree/migrations.rb +8 -7
- data/lib/spree/money.rb +3 -7
- data/lib/spree/permitted_attributes.rb +2 -2
- data/lib/spree/responder.rb +4 -5
- data/lib/spree/testing_support/authorization_helpers.rb +3 -3
- data/lib/spree/testing_support/caching.rb +5 -5
- data/lib/spree/testing_support/capybara_ext.rb +16 -18
- data/lib/spree/testing_support/common_rake.rb +8 -9
- data/lib/spree/testing_support/controller_requests.rb +6 -6
- data/lib/spree/testing_support/extension_rake.rb +2 -3
- data/lib/spree/testing_support/factories/address_factory.rb +1 -1
- data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/calculator_factory.rb +1 -1
- data/lib/spree/testing_support/factories/country_factory.rb +1 -1
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
- data/lib/spree/testing_support/factories/customer_return_factory.rb +1 -3
- data/lib/spree/testing_support/factories/image_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -1
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
- data/lib/spree/testing_support/factories/options_factory.rb +1 -1
- data/lib/spree/testing_support/factories/order_factory.rb +1 -1
- data/lib/spree/testing_support/factories/payment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/payment_method_factory.rb +4 -4
- data/lib/spree/testing_support/factories/price_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +1 -2
- data/lib/spree/testing_support/factories/promotion_factory.rb +1 -2
- data/lib/spree/testing_support/factories/promotion_rule_factory.rb +1 -1
- data/lib/spree/testing_support/factories/property_factory.rb +1 -1
- data/lib/spree/testing_support/factories/prototype_factory.rb +1 -1
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -2
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/role_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipment_factory.rb +2 -2
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +3 -3
- data/lib/spree/testing_support/factories/state_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tag_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/taxon_factory.rb +1 -1
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tracker_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_member_factory.rb +1 -1
- data/lib/spree/testing_support/factories.rb +3 -3
- data/lib/spree/testing_support/flash.rb +1 -3
- data/lib/spree/testing_support/i18n.rb +5 -6
- data/lib/spree/testing_support/kernel.rb +1 -2
- data/lib/spree/testing_support/order_walkthrough.rb +12 -15
- data/lib/spree/testing_support/preferences.rb +0 -1
- data/lib/tasks/core.rake +47 -56
- data/lib/tasks/email.rake +2 -2
- data/lib/tasks/exchanges.rake +5 -5
- data/spree_core.gemspec +1 -1
- metadata +5 -9
- data/app/models/spree/calculator/percent_per_item.rb +0 -51
- data/config/initializers/premailer_rails.rb +0 -3
- data/lib/spree/core/delegate_belongs_to.rb +0 -99
- data/lib/spree/testing_support/microdata.rb +0 -192
@@ -3,27 +3,26 @@ module Spree
|
|
3
3
|
include Rails::Generators::ResourceHelpers
|
4
4
|
include Rails::Generators::Migration
|
5
5
|
|
6
|
-
|
7
|
-
desc "Set up a Spree installation with a custom User class"
|
6
|
+
desc 'Set up a Spree installation with a custom User class'
|
8
7
|
|
9
8
|
def self.source_paths
|
10
|
-
paths =
|
9
|
+
paths = superclass.source_paths
|
11
10
|
paths << File.expand_path('../templates', __FILE__)
|
12
11
|
paths.flatten
|
13
12
|
end
|
14
13
|
|
15
14
|
def check_for_constant
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
|
16
|
+
klass
|
17
|
+
rescue NameError
|
18
|
+
@shell.say "Couldn't find #{class_name}. Are you sure that this class exists within your application and is loaded?", :red
|
19
|
+
exit(1)
|
20
|
+
|
22
21
|
end
|
23
22
|
|
24
23
|
def generate
|
25
|
-
migration_template 'migration.rb.tt',
|
26
|
-
template 'authentication_helpers.rb.tt',
|
24
|
+
migration_template 'migration.rb.tt', 'db/migrate/add_spree_fields_to_custom_user_table.rb'
|
25
|
+
template 'authentication_helpers.rb.tt', 'lib/spree/authentication_helpers.rb'
|
27
26
|
|
28
27
|
file_action = File.exist?('config/initializers/spree.rb') ? :append_file : :create_file
|
29
28
|
send(file_action, 'config/initializers/spree.rb') do
|
@@ -37,9 +36,9 @@ module Spree
|
|
37
36
|
def self.next_migration_number(dirname)
|
38
37
|
if ApplicationRecord.timestamped_migrations
|
39
38
|
sleep 1 # make sure to get a different migration every time
|
40
|
-
Time.new.utc.strftime(
|
39
|
+
Time.new.utc.strftime('%Y%m%d%H%M%S')
|
41
40
|
else
|
42
|
-
|
41
|
+
format('%.3d', (current_migration_number(dirname) + 1))
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
@@ -50,7 +49,5 @@ module Spree
|
|
50
49
|
def table_name
|
51
50
|
klass.table_name
|
52
51
|
end
|
53
|
-
|
54
52
|
end
|
55
53
|
end
|
56
|
-
|
@@ -3,12 +3,14 @@ require 'highline/import'
|
|
3
3
|
require 'bundler'
|
4
4
|
require 'bundler/cli'
|
5
5
|
require 'active_support/core_ext/string/indent'
|
6
|
+
require 'spree/core'
|
6
7
|
|
7
8
|
module Spree
|
8
9
|
class InstallGenerator < Rails::Generators::Base
|
9
10
|
class_option :migrate, type: :boolean, default: true, banner: 'Run Spree migrations'
|
10
11
|
class_option :seed, type: :boolean, default: true, banner: 'load seed data (migrations must be run)'
|
11
12
|
class_option :sample, type: :boolean, default: true, banner: 'load sample data (migrations must be run)'
|
13
|
+
class_option :copy_views, type: :boolean, default: true, banner: 'copy frontend views from spree to your application for easy customization'
|
12
14
|
class_option :auto_accept, type: :boolean
|
13
15
|
class_option :user_class, type: :string
|
14
16
|
class_option :admin_email, type: :string
|
@@ -17,7 +19,7 @@ module Spree
|
|
17
19
|
class_option :enforce_available_locales, type: :boolean, default: nil
|
18
20
|
|
19
21
|
def self.source_paths
|
20
|
-
paths =
|
22
|
+
paths = superclass.source_paths
|
21
23
|
paths << File.expand_path('../templates', "../../#{__FILE__}")
|
22
24
|
paths << File.expand_path('../templates', "../#{__FILE__}")
|
23
25
|
paths << File.expand_path('../templates', __FILE__)
|
@@ -28,10 +30,11 @@ module Spree
|
|
28
30
|
@run_migrations = options[:migrate]
|
29
31
|
@load_seed_data = options[:seed]
|
30
32
|
@load_sample_data = options[:sample]
|
33
|
+
@copy_views = options[:copy_views]
|
31
34
|
|
32
35
|
unless @run_migrations
|
33
|
-
|
34
|
-
|
36
|
+
@load_seed_data = false
|
37
|
+
@load_sample_data = false
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
@@ -40,8 +43,8 @@ module Spree
|
|
40
43
|
end
|
41
44
|
|
42
45
|
def additional_tweaks
|
43
|
-
return unless File.
|
44
|
-
append_file
|
46
|
+
return unless File.exist? 'public/robots.txt'
|
47
|
+
append_file 'public/robots.txt', <<-ROBOTS.strip_heredoc
|
45
48
|
User-agent: *
|
46
49
|
Disallow: /checkout
|
47
50
|
Disallow: /cart
|
@@ -56,23 +59,33 @@ module Spree
|
|
56
59
|
def setup_assets
|
57
60
|
@lib_name = 'spree'
|
58
61
|
%w{javascripts stylesheets images}.each do |path|
|
59
|
-
|
60
|
-
|
62
|
+
if Spree::Core::Engine.frontend_available? || Rails.env.test?
|
63
|
+
empty_directory "vendor/assets/#{path}/spree/frontend"
|
64
|
+
end
|
65
|
+
if Spree::Core::Engine.backend_available? || Rails.env.test?
|
66
|
+
empty_directory "vendor/assets/#{path}/spree/backend"
|
67
|
+
end
|
61
68
|
end
|
62
69
|
|
63
|
-
if
|
64
|
-
template
|
65
|
-
template
|
70
|
+
if Spree::Core::Engine.frontend_available? || Rails.env.test?
|
71
|
+
template 'vendor/assets/javascripts/spree/frontend/all.js'
|
72
|
+
template 'vendor/assets/stylesheets/spree/frontend/all.css'
|
66
73
|
end
|
67
74
|
|
68
|
-
if
|
69
|
-
template
|
70
|
-
template
|
75
|
+
if Spree::Core::Engine.backend_available? || Rails.env.test?
|
76
|
+
template 'vendor/assets/javascripts/spree/backend/all.js'
|
77
|
+
template 'vendor/assets/stylesheets/spree/backend/all.css'
|
71
78
|
end
|
72
79
|
end
|
73
80
|
|
74
81
|
def create_overrides_directory
|
75
|
-
empty_directory
|
82
|
+
empty_directory 'app/overrides'
|
83
|
+
end
|
84
|
+
|
85
|
+
def copy_views
|
86
|
+
if @copy_views && Spree::Core::Engine.frontend_available?
|
87
|
+
generate 'spree:frontend:copy_views'
|
88
|
+
end
|
76
89
|
end
|
77
90
|
|
78
91
|
def configure_application
|
@@ -91,7 +104,7 @@ module Spree
|
|
91
104
|
end
|
92
105
|
APP
|
93
106
|
|
94
|
-
|
107
|
+
unless options[:enforce_available_locales].nil?
|
95
108
|
application <<-APP.strip_heredoc.indent!(4)
|
96
109
|
# Prevent this deprecation message: https://github.com/svenfuchs/i18n/commit/3b6e56e
|
97
110
|
I18n.enforce_available_locales = #{options[:enforce_available_locales]}
|
@@ -100,7 +113,7 @@ module Spree
|
|
100
113
|
end
|
101
114
|
|
102
115
|
def include_seed_data
|
103
|
-
append_file
|
116
|
+
append_file 'db/seeds.rb', <<-SEEDS.strip_heredoc
|
104
117
|
|
105
118
|
Spree::Core::Engine.load_seed if defined?(Spree::Core)
|
106
119
|
Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
|
@@ -108,14 +121,14 @@ module Spree
|
|
108
121
|
end
|
109
122
|
|
110
123
|
def install_migrations
|
111
|
-
say_status :copying,
|
124
|
+
say_status :copying, 'migrations'
|
112
125
|
silence_stream(STDOUT) do
|
113
126
|
silence_warnings { rake 'railties:install:migrations' }
|
114
127
|
end
|
115
128
|
end
|
116
129
|
|
117
130
|
def create_database
|
118
|
-
say_status :creating,
|
131
|
+
say_status :creating, 'database'
|
119
132
|
silence_stream(STDOUT) do
|
120
133
|
silence_stream(STDERR) do
|
121
134
|
silence_warnings { rake 'db:create' }
|
@@ -125,7 +138,7 @@ module Spree
|
|
125
138
|
|
126
139
|
def run_migrations
|
127
140
|
if @run_migrations
|
128
|
-
say_status :running,
|
141
|
+
say_status :running, 'migrations'
|
129
142
|
silence_stream(STDOUT) do
|
130
143
|
silence_stream(STDERR) do
|
131
144
|
silence_warnings { rake 'db:migrate' }
|
@@ -138,13 +151,13 @@ module Spree
|
|
138
151
|
|
139
152
|
def populate_seed_data
|
140
153
|
if @load_seed_data
|
141
|
-
say_status :loading,
|
142
|
-
rake_options=[]
|
143
|
-
rake_options <<
|
154
|
+
say_status :loading, 'seed data'
|
155
|
+
rake_options = []
|
156
|
+
rake_options << 'AUTO_ACCEPT=1' if options[:auto_accept]
|
144
157
|
rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
|
145
158
|
rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
|
146
159
|
|
147
|
-
cmd =
|
160
|
+
cmd = -> { rake("db:seed #{rake_options.join(' ')}") }
|
148
161
|
if options[:auto_accept] || (options[:admin_email] && options[:admin_password])
|
149
162
|
silence_stream(STDOUT) do
|
150
163
|
silence_stream(STDERR) do
|
@@ -155,20 +168,20 @@ module Spree
|
|
155
168
|
cmd.call
|
156
169
|
end
|
157
170
|
else
|
158
|
-
say_status :skipping,
|
171
|
+
say_status :skipping, 'seed data (you can always run rake db:seed)'
|
159
172
|
end
|
160
173
|
end
|
161
174
|
|
162
175
|
def load_sample_data
|
163
176
|
if @load_sample_data
|
164
|
-
say_status :loading,
|
177
|
+
say_status :loading, 'sample data'
|
165
178
|
silence_stream(STDOUT) do
|
166
179
|
silence_stream(STDERR) do
|
167
180
|
silence_warnings { rake 'spree_sample:load' }
|
168
181
|
end
|
169
182
|
end
|
170
183
|
else
|
171
|
-
say_status :skipping,
|
184
|
+
say_status :skipping, 'sample data (you can always run rake spree_sample:load)'
|
172
185
|
end
|
173
186
|
end
|
174
187
|
|
@@ -189,19 +202,19 @@ module Spree
|
|
189
202
|
end
|
190
203
|
|
191
204
|
unless options[:quiet]
|
192
|
-
puts
|
205
|
+
puts '*' * 50
|
193
206
|
puts "We added the following line to your application's config/routes.rb file:"
|
194
|
-
puts
|
207
|
+
puts ' '
|
195
208
|
puts " mount Spree::Core::Engine, at: '/'"
|
196
209
|
end
|
197
210
|
end
|
198
211
|
|
199
212
|
def complete
|
200
213
|
unless options[:quiet]
|
201
|
-
puts
|
214
|
+
puts '*' * 50
|
202
215
|
puts "Spree has been installed successfully. You're all ready to go!"
|
203
|
-
puts
|
204
|
-
puts
|
216
|
+
puts ' '
|
217
|
+
puts 'Enjoy!'
|
205
218
|
end
|
206
219
|
end
|
207
220
|
|
@@ -219,7 +232,7 @@ module Spree
|
|
219
232
|
|
220
233
|
def file_exists?(extensions, filename)
|
221
234
|
extensions.detect do |extension|
|
222
|
-
File.
|
235
|
+
File.exist?("#{filename}#{extension}")
|
223
236
|
end
|
224
237
|
end
|
225
238
|
|
@@ -2,15 +2,15 @@ module Spree
|
|
2
2
|
module Core
|
3
3
|
class Engine < ::Rails::Engine
|
4
4
|
def self.api_available?
|
5
|
-
@@api_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Api::Engine')
|
5
|
+
@@api_available ||= ::Rails::Engine.subclasses.map(&:instance).map { |e| e.class.to_s }.include?('Spree::Api::Engine')
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.backend_available?
|
9
|
-
@@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Backend::Engine')
|
9
|
+
@@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map { |e| e.class.to_s }.include?('Spree::Backend::Engine')
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.frontend_available?
|
13
|
-
@@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Frontend::Engine')
|
13
|
+
@@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map { |e| e.class.to_s }.include?('Spree::Frontend::Engine')
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -9,7 +9,7 @@ module Spree
|
|
9
9
|
before_action :set_guest_token
|
10
10
|
helper_method :try_spree_current_user
|
11
11
|
|
12
|
-
rescue_from CanCan::AccessDenied do |
|
12
|
+
rescue_from CanCan::AccessDenied do |_exception|
|
13
13
|
redirect_unauthorized_access
|
14
14
|
end
|
15
15
|
end
|
@@ -20,8 +20,8 @@ module Spree
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def redirect_back_or_default(default)
|
23
|
-
redirect_to(session[
|
24
|
-
session[
|
23
|
+
redirect_to(session['spree_user_return_to'] || request.env['HTTP_REFERER'] || default)
|
24
|
+
session['spree_user_return_to'] = nil
|
25
25
|
end
|
26
26
|
|
27
27
|
def set_guest_token
|
@@ -35,12 +35,10 @@ module Spree
|
|
35
35
|
authentication_routes = [:spree_signup_path, :spree_login_path, :spree_logout_path]
|
36
36
|
disallowed_urls = []
|
37
37
|
authentication_routes.each do |route|
|
38
|
-
if respond_to?(route)
|
39
|
-
disallowed_urls << send(route)
|
40
|
-
end
|
38
|
+
disallowed_urls << send(route) if respond_to?(route)
|
41
39
|
end
|
42
40
|
|
43
|
-
disallowed_urls.map!{ |url| url[/\/\w+$/] }
|
41
|
+
disallowed_urls.map! { |url| url[/\/\w+$/] }
|
44
42
|
unless disallowed_urls.include?(request.fullpath)
|
45
43
|
session['spree_user_return_to'] = request.fullpath.gsub('//', '/')
|
46
44
|
end
|
@@ -56,8 +54,6 @@ module Spree
|
|
56
54
|
# This one will be defined by Devise
|
57
55
|
elsif respond_to?(:current_spree_user)
|
58
56
|
current_spree_user
|
59
|
-
else
|
60
|
-
nil
|
61
57
|
end
|
62
58
|
end
|
63
59
|
|
@@ -79,7 +75,6 @@ module Spree
|
|
79
75
|
end
|
80
76
|
end
|
81
77
|
end
|
82
|
-
|
83
78
|
end
|
84
79
|
end
|
85
80
|
end
|
@@ -40,9 +40,9 @@ module Spree
|
|
40
40
|
current_store.seo_title
|
41
41
|
end
|
42
42
|
|
43
|
-
def render_404(
|
43
|
+
def render_404(_exception = nil)
|
44
44
|
respond_to do |type|
|
45
|
-
type.html { render status: :not_found, file: "#{::Rails.root}/public/404", formats: [:html], layout: nil}
|
45
|
+
type.html { render status: :not_found, file: "#{::Rails.root}/public/404", formats: [:html], layout: nil }
|
46
46
|
type.all { head :not_found }
|
47
47
|
end
|
48
48
|
end
|
@@ -66,7 +66,6 @@ module Spree
|
|
66
66
|
def get_layout
|
67
67
|
layout ||= Spree::Config[:layout]
|
68
68
|
end
|
69
|
-
|
70
69
|
end
|
71
70
|
end
|
72
71
|
end
|
@@ -13,7 +13,6 @@ module Spree
|
|
13
13
|
|
14
14
|
# Used in the link_to_cart helper.
|
15
15
|
def simple_current_order
|
16
|
-
|
17
16
|
return @simple_current_order if @simple_current_order
|
18
17
|
|
19
18
|
@simple_current_order = find_order_by_token_or_user
|
@@ -67,14 +66,14 @@ module Spree
|
|
67
66
|
private
|
68
67
|
|
69
68
|
def last_incomplete_order
|
70
|
-
@last_incomplete_order ||= try_spree_current_user.last_incomplete_spree_order
|
69
|
+
@last_incomplete_order ||= try_spree_current_user.last_incomplete_spree_order(current_store)
|
71
70
|
end
|
72
71
|
|
73
72
|
def current_order_params
|
74
73
|
{ currency: current_currency, guest_token: cookies.signed[:guest_token], store_id: current_store.id, user_id: try_spree_current_user.try(:id) }
|
75
74
|
end
|
76
75
|
|
77
|
-
def find_order_by_token_or_user(options={}, with_adjustments = false)
|
76
|
+
def find_order_by_token_or_user(options = {}, with_adjustments = false)
|
78
77
|
options[:lock] ||= false
|
79
78
|
|
80
79
|
# Find any incomplete orders for the guest_token
|
@@ -87,13 +86,10 @@ module Spree
|
|
87
86
|
end
|
88
87
|
|
89
88
|
# Find any incomplete orders for the current user
|
90
|
-
if order.nil? && try_spree_current_user
|
91
|
-
order = last_incomplete_order
|
92
|
-
end
|
89
|
+
order = last_incomplete_order if order.nil? && try_spree_current_user
|
93
90
|
|
94
91
|
order
|
95
92
|
end
|
96
|
-
|
97
93
|
end
|
98
94
|
end
|
99
95
|
end
|
@@ -7,7 +7,7 @@ module ActionController
|
|
7
7
|
# Checkout AS Array#extract_options! and original respond_with
|
8
8
|
# implementation for a better picture of this hack
|
9
9
|
if resources.last.is_a? Hash
|
10
|
-
resources.last
|
10
|
+
resources.last[:action_name] = action_name.to_sym
|
11
11
|
else
|
12
12
|
resources.push action_name: action_name.to_sym
|
13
13
|
end
|
@@ -35,7 +35,7 @@ module Spree
|
|
35
35
|
self.spree_responders = {}
|
36
36
|
end
|
37
37
|
|
38
|
-
def respond_override(options={})
|
38
|
+
def respond_override(options = {})
|
39
39
|
unless options.blank?
|
40
40
|
action_name = options.keys.first
|
41
41
|
action_value = options.values.first
|
@@ -52,10 +52,10 @@ module Spree
|
|
52
52
|
end
|
53
53
|
|
54
54
|
if format_value.is_a?(Proc)
|
55
|
-
options = {action_name.to_sym => {format_name.to_sym => {success: format_value}}}
|
55
|
+
options = { action_name.to_sym => { format_name.to_sym => { success: format_value } } }
|
56
56
|
end
|
57
57
|
|
58
|
-
|
58
|
+
spree_responders.deep_merge!(name.to_sym => options)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
data/lib/spree/core/engine.rb
CHANGED
@@ -116,12 +116,12 @@ module Spree
|
|
116
116
|
end
|
117
117
|
|
118
118
|
config.to_prepare do
|
119
|
-
#
|
120
|
-
I18n.load_path
|
119
|
+
# Load spree locales before decorators
|
120
|
+
I18n.load_path += Dir.glob(
|
121
121
|
File.join(
|
122
122
|
File.dirname(__FILE__), '../../../config/locales', '*.{rb,yml}'
|
123
123
|
)
|
124
|
-
)
|
124
|
+
)
|
125
125
|
|
126
126
|
# Load application's model / class decorators
|
127
127
|
Dir.glob(File.join(File.dirname(__FILE__), '../../../app/**/*_decorator*.rb')) do |c|
|
@@ -4,22 +4,22 @@ module Spree
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def add_class(name)
|
7
|
-
|
7
|
+
instance_variable_set "@#{name}", Set.new
|
8
8
|
|
9
|
-
create_method(
|
10
|
-
instance_variable_set(
|
11
|
-
|
9
|
+
create_method("#{name}=".to_sym) do |val|
|
10
|
+
instance_variable_set('@' + name, val)
|
11
|
+
end
|
12
12
|
|
13
13
|
create_method(name.to_sym) do
|
14
|
-
instance_variable_get(
|
14
|
+
instance_variable_get('@' + name)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
def create_method(name, &block)
|
21
|
+
self.class.send(:define_method, name, &block)
|
22
|
+
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|