spree_multi_vendor 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.rspec +3 -0
- data/.travis.yml +44 -0
- data/Appraisals +11 -0
- data/Gemfile +7 -0
- data/LICENSE +26 -0
- data/README.md +166 -0
- data/Rakefile +21 -0
- data/app/controllers/spree/admin/vendor_settings_controller.rb +34 -0
- data/app/controllers/spree/admin/vendors_controller.rb +60 -0
- data/app/controllers/spree/api/v2/storefront/vendors_controller.rb +28 -0
- data/app/controllers/spree_multi_vendor/spree/admin/base_controller_decorator.rb +10 -0
- data/app/controllers/spree_multi_vendor/spree/admin/option_types_controller_decorator.rb +7 -0
- data/app/controllers/spree_multi_vendor/spree/admin/products_controller_decorator.rb +24 -0
- data/app/controllers/spree_multi_vendor/spree/admin/properties_controller_decorator.rb +7 -0
- data/app/controllers/spree_multi_vendor/spree/admin/resource_controller_decorator.rb +8 -0
- data/app/controllers/spree_multi_vendor/spree/admin/shipping_methods_controller_decorator.rb +7 -0
- data/app/controllers/spree_multi_vendor/spree/admin/stock_locations_controller_decorator.rb +7 -0
- data/app/controllers/spree_multi_vendor/spree/admin/users_controller_decorator.rb +13 -0
- data/app/controllers/spree_multi_vendor/spree/admin/variants_controller_decorator.rb +7 -0
- data/app/controllers/spree_multi_vendor/spree/api/v1/variants_controller_decorator.rb +22 -0
- data/app/finders/spree_multi_vendor/products_finder_decorator.rb +31 -0
- data/app/helpers/spree/admin/vendor_helper.rb +15 -0
- data/app/mailers/spree/vendor_mailer.rb +15 -0
- data/app/models/concerns/spree/vendor_concern.rb +11 -0
- data/app/models/spree/order_commission.rb +11 -0
- data/app/models/spree/vendor.rb +77 -0
- data/app/models/spree/vendor_ability.rb +140 -0
- data/app/models/spree/vendor_image.rb +18 -0
- data/app/models/spree/vendor_order_totals.rb +28 -0
- data/app/models/spree/vendor_user.rb +16 -0
- data/app/models/spree_multi_vendor/configuration.rb +10 -0
- data/app/models/spree_multi_vendor/spree/ability_decorator.rb +9 -0
- data/app/models/spree_multi_vendor/spree/base_decorator.rb +13 -0
- data/app/models/spree_multi_vendor/spree/line_item_decorator.rb +48 -0
- data/app/models/spree_multi_vendor/spree/order_decorator.rb +105 -0
- data/app/models/spree_multi_vendor/spree/shipment_decorator.rb +8 -0
- data/app/models/spree_multi_vendor/spree/stock/package_decorator.rb +14 -0
- data/app/models/spree_multi_vendor/spree/user_decorator.rb +8 -0
- data/app/models/spree_multi_vendor/spree/variant_decorator.rb +41 -0
- data/app/overrides/spree/admin/orders/_form.rb +13 -0
- data/app/overrides/spree/admin/orders/_line_items.rb +6 -0
- data/app/overrides/spree/admin/orders/_line_items_edit_form.rb +6 -0
- data/app/overrides/spree/admin/orders/index.rb +6 -0
- data/app/overrides/spree/admin/products/form.rb +29 -0
- data/app/overrides/spree/admin/products/new.rb +16 -0
- data/app/overrides/spree/admin/shared/_main_menu.rb +23 -0
- data/app/overrides/spree/admin/shared/_order_summary.rb +35 -0
- data/app/overrides/spree/admin/users/_form.rb +13 -0
- data/app/serializers/spree/v2/storefront/vendor_image_serializer.rb +11 -0
- data/app/serializers/spree/v2/storefront/vendor_order_totals_serializer.rb +18 -0
- data/app/serializers/spree/v2/storefront/vendor_serializer.rb +14 -0
- data/app/serializers/spree_multi_vendor/cart_serializer_decorator.rb +19 -0
- data/app/serializers/spree_multi_vendor/serializer_decorator.rb +23 -0
- data/app/services/spree/orders/generate_commissions.rb +34 -0
- data/app/views/spree/admin/translations/vendor.html.erb +21 -0
- data/app/views/spree/admin/vendor_settings/edit.html.erb +47 -0
- data/app/views/spree/admin/vendors/_form.html.erb +36 -0
- data/app/views/spree/admin/vendors/edit.html.erb +11 -0
- data/app/views/spree/admin/vendors/index.html.erb +83 -0
- data/app/views/spree/admin/vendors/new.html.erb +11 -0
- data/app/views/spree/vendor_mailer/vendor_notification_email.html.erb +81 -0
- data/app/views/spree/vendor_mailer/vendor_notification_email.text.erb +36 -0
- data/bin/rails +7 -0
- data/config/initializers/spree_permitted_attributes.rb +10 -0
- data/config/locales/en.yml +34 -0
- data/config/locales/es.yml +33 -0
- data/config/locales/fr.yml +33 -0
- data/config/routes.rb +19 -0
- data/db/default/vendors.rb +13 -0
- data/db/migrate/20170406102250_create_spree_vendors.rb +9 -0
- data/db/migrate/20170406102944_add_vendor_id_to_spree_models.rb +10 -0
- data/db/migrate/20170410111150_add_state_to_vendors.rb +6 -0
- data/db/migrate/20170412124925_add_deleted_at_to_spree_vendors.rb +6 -0
- data/db/migrate/20170413094447_create_spree_vendor_users.rb +11 -0
- data/db/migrate/20190212161426_add_slug_to_spree_vendors.rb +6 -0
- data/db/migrate/20190214120226_add_about_us_to_spree_vendors.rb +5 -0
- data/db/migrate/20190214142526_add_contact_us_to_spree_vendors.rb +5 -0
- data/db/migrate/20190305120337_add_commission_to_spree_vendors.rb +5 -0
- data/db/migrate/20190308091546_add_priority_to_vendor.rb +8 -0
- data/db/migrate/20190312130754_create_spree_order_commissions.rb +14 -0
- data/db/migrate/20190322133128_add_notification_email_to_vendors.rb +5 -0
- data/db/migrate/20200416030721_add_translations_to_vendor.rb +19 -0
- data/gemfiles/spree_4_2.gemfile +9 -0
- data/gemfiles/spree_master.gemfile +9 -0
- data/lib/generators/spree_multi_vendor/install/install_generator.rb +21 -0
- data/lib/generators/spree_multi_vendor/mailers_preview/mailers_preview_generator.rb +22 -0
- data/lib/generators/spree_multi_vendor/mailers_preview/templates/mailers/previews/vendor_notification_preview.rb +5 -0
- data/lib/spree_multi_vendor.rb +14 -0
- data/lib/spree_multi_vendor/engine.rb +24 -0
- data/lib/spree_multi_vendor/factories.rb +7 -0
- data/lib/spree_multi_vendor/version.rb +11 -0
- data/lib/tasks/vendors.rake +8 -0
- data/spec/factories/spree/vendor_factory.rb +22 -0
- data/spec/factories/spree/vendor_image_factory.rb +5 -0
- data/spec/factories/spree/vendor_user_factory.rb +6 -0
- data/spec/features/spree/admin/orders_spec.rb +36 -0
- data/spec/features/spree/admin/product_spec.rb +177 -0
- data/spec/features/spree/admin/shipping_method_spec.rb +72 -0
- data/spec/features/spree/admin/stock_location_spec.rb +90 -0
- data/spec/features/spree/admin/vendor_settings_spec.rb +76 -0
- data/spec/features/spree/admin/vendor_spec.rb +125 -0
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/mailers/vendor_mailer_spec.rb +45 -0
- data/spec/models/spree/line_item_spec.rb +32 -0
- data/spec/models/spree/order_commission_spec.rb +8 -0
- data/spec/models/spree/order_spec.rb +179 -0
- data/spec/models/spree/product_spec.rb +19 -0
- data/spec/models/spree/variant_spec.rb +104 -0
- data/spec/models/spree/vendor_order_totals_spec.rb +33 -0
- data/spec/models/spree/vendor_spec.rb +57 -0
- data/spec/models/spree/vendor_user_spec.rb +12 -0
- data/spec/requests/spree/api/v2/storefront/cart_spec.rb +67 -0
- data/spec/requests/spree/api/v2/storefront/products_spec.rb +93 -0
- data/spec/requests/spree/api/v2/storefront/vendors_spec.rb +52 -0
- data/spec/serializers/spree/v2/storefront/stock_location_serializer_spec.rb +32 -0
- data/spec/serializers/spree/v2/storefront/vendor_image_serializer_spec.rb +18 -0
- data/spec/serializers/spree/v2/storefront/vendor_order_totals_serializer_spec.rb +54 -0
- data/spec/serializers/spree/v2/storefront/vendor_serializer_spec.rb +34 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/shoulda_matchers.rb +6 -0
- data/spree_multi_vendor.gemspec +41 -0
- metadata +313 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
<%= Spree.t('order_mailer.vendor_notification_email.dear_vendor') %>
|
2
|
+
|
3
|
+
============================================================
|
4
|
+
<%= Spree.t('order_mailer.vendor_notification_email.order_summary', number: @order.number) %>
|
5
|
+
============================================================
|
6
|
+
<% @line_items.each do |item| %>
|
7
|
+
<%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) <%= Spree.t('at_symbol') %> <%= item.single_money %> = <%= item.display_amount %>
|
8
|
+
<% end %>
|
9
|
+
============================================================
|
10
|
+
<%= Spree.t('order_mailer.subtotal') %> <%= Spree::Money.new(@subtotal, currency: @order.currency) %>
|
11
|
+
<% if @order.line_item_adjustments.exists? %>
|
12
|
+
<% if @order.all_adjustments.promotion.eligible.exists? %>
|
13
|
+
<% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
|
14
|
+
<%= Spree.t(:promotion) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% @order.shipments.group_by { |s| s.selected_shipping_rate.try(:name) }.each do |name, shipments| %>
|
20
|
+
<%= Spree.t(:shipping) %>: <%= name %> <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: @order.currency) %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% if @order.all_adjustments.eligible.tax.exists? %>
|
24
|
+
<% @order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
|
25
|
+
<%= Spree.t(:tax) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
<% @order.adjustments.eligible.each do |adjustment| %>
|
30
|
+
<% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
|
31
|
+
<%= adjustment.label %> <%= adjustment.display_amount %>
|
32
|
+
<% end %>
|
33
|
+
============================================================
|
34
|
+
<%= Spree.t('order_mailer.total') %> <%= Spree::Money.new(@total, currency: @order.currency) %>
|
35
|
+
|
36
|
+
<%= Spree.t('order_mailer.vendor_notification_email.thanks') %>
|
data/bin/rails
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
2
|
+
|
3
|
+
ENGINE_ROOT = File.expand_path('../..', __FILE__)
|
4
|
+
ENGINE_PATH = File.expand_path('../../lib/spree_multi_vendor/engine', __FILE__)
|
5
|
+
|
6
|
+
require 'rails/all'
|
7
|
+
require 'rails/engine/commands'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/vendor:
|
5
|
+
one: Vendor
|
6
|
+
other: Vendors
|
7
|
+
attributes:
|
8
|
+
spree/vendor:
|
9
|
+
about_us: About us
|
10
|
+
contact_us: Contact us
|
11
|
+
image: Image
|
12
|
+
name: name
|
13
|
+
state: state
|
14
|
+
created_at: created at
|
15
|
+
priority: priority
|
16
|
+
spree:
|
17
|
+
back_to_vendors_list: Back To Vendors List
|
18
|
+
blocked: Blocked
|
19
|
+
edit_vendor: Edit Vendor
|
20
|
+
new_vendor: New Vendor
|
21
|
+
only_alphanumeric_chars: should contain only letters and digits
|
22
|
+
order_mailer:
|
23
|
+
vendor_notification_email:
|
24
|
+
dear_vendor: Dear Vendor,
|
25
|
+
subject: Vendor notification
|
26
|
+
thanks: Thanks
|
27
|
+
vendor: Vendor
|
28
|
+
vendor_name: Vendor Name
|
29
|
+
vendor_states:
|
30
|
+
active: Active
|
31
|
+
blocked: Blocked
|
32
|
+
pending: Pending
|
33
|
+
admin:
|
34
|
+
commission: Commission
|
@@ -0,0 +1,33 @@
|
|
1
|
+
es:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/vendor:
|
5
|
+
one: Vendedor
|
6
|
+
other: Vendedores
|
7
|
+
attributes:
|
8
|
+
spree/vendor:
|
9
|
+
about_us: Acerca de
|
10
|
+
contact_us: Contáctanos
|
11
|
+
image: Imagen
|
12
|
+
name: Nombre
|
13
|
+
state: estado
|
14
|
+
created_at: creado en
|
15
|
+
priority: prioridad
|
16
|
+
spree:
|
17
|
+
back_to_vendors_list: Volver a la lista de vendedores
|
18
|
+
edit_vendor: Editar vendedor
|
19
|
+
new_vendor: Nuevo vendedor
|
20
|
+
only_alphanumeric_chars: Debería contener solo letras y dígitos
|
21
|
+
order_mailer:
|
22
|
+
vendor_notification_email:
|
23
|
+
dear_vendor: Estimado vendedor,
|
24
|
+
subject: Notificación de vendedor
|
25
|
+
thanks: Gracias
|
26
|
+
vendor: Vendedor
|
27
|
+
vendor_name: Nombre del vendedor
|
28
|
+
vendor_states:
|
29
|
+
active: Activo
|
30
|
+
blocked: Bloqueado
|
31
|
+
pending: Pendiente
|
32
|
+
admin:
|
33
|
+
commission: Comisión
|
@@ -0,0 +1,33 @@
|
|
1
|
+
fr:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
spree/vendor:
|
5
|
+
one: Vendeur
|
6
|
+
other: Vendeurs
|
7
|
+
attributes:
|
8
|
+
spree/vendor:
|
9
|
+
about_us: A propos
|
10
|
+
contact_us: Contact
|
11
|
+
image: Image
|
12
|
+
name: Nom
|
13
|
+
state: Status
|
14
|
+
created_at: créé le
|
15
|
+
priority: priorité
|
16
|
+
spree:
|
17
|
+
back_to_vendors_list: Retour à la liste des vendeurs
|
18
|
+
edit_vendor: Modifier vendeur
|
19
|
+
new_vendor: Nouveau vendeur
|
20
|
+
only_alphanumeric_chars: ne doit contenir que des caractères alphanumériques
|
21
|
+
order_mailer:
|
22
|
+
vendor_notification_email:
|
23
|
+
dear_vendor: Cher vendeur,
|
24
|
+
subject: Notification vendeur
|
25
|
+
thanks: Merci
|
26
|
+
vendor: Vendeur
|
27
|
+
vendor_name: Nom du vendeur
|
28
|
+
vendor_states:
|
29
|
+
active: Actif
|
30
|
+
blocked: Bloqué
|
31
|
+
pending: En attente
|
32
|
+
admin:
|
33
|
+
commission: Commission
|
data/config/routes.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Spree::Core::Engine.routes.draw do
|
2
|
+
namespace :admin do
|
3
|
+
resources :vendors do
|
4
|
+
collection do
|
5
|
+
post :update_positions
|
6
|
+
end
|
7
|
+
end
|
8
|
+
get 'vendor_settings' => 'vendor_settings#edit'
|
9
|
+
patch 'vendor_settings' => 'vendor_settings#update'
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :api, defaults: { format: 'json' } do
|
13
|
+
namespace :v2 do
|
14
|
+
namespace :storefront do
|
15
|
+
resources :vendors, only: [:show]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
vendor = Spree::Vendor.first_or_initialize do |v|
|
2
|
+
v.name = 'Test Vendor'
|
3
|
+
end
|
4
|
+
vendor.save!
|
5
|
+
|
6
|
+
puts "Created Vendor with the name \"#{vendor.name}\"!"
|
7
|
+
|
8
|
+
user = Spree.user_class.where(email: 'user@vendor.com').first_or_initialize do |u|
|
9
|
+
u.password = u.password_confirmation = 'vendor123'
|
10
|
+
end
|
11
|
+
|
12
|
+
vendor.users << user unless vendor.users.include?(user)
|
13
|
+
puts "Created Vendor Admin User with an email \"#{user.email}\" and password \"#{user.password}\"!"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class AddVendorIdToSpreeModels < SpreeExtension::Migration[4.2]
|
2
|
+
def change
|
3
|
+
SpreeMultiVendor.vendorized_models.each do |klass|
|
4
|
+
add_reference klass.table_name, :vendor, index: true
|
5
|
+
rescue
|
6
|
+
message = "Could not add vendor_id column to spree_#{klass}"
|
7
|
+
Rails.logger.error message
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateSpreeVendorUsers < SpreeExtension::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :spree_vendor_users do |t|
|
4
|
+
t.references :vendor
|
5
|
+
t.references :user
|
6
|
+
end
|
7
|
+
add_index :spree_vendor_users, [:vendor_id, :user_id], unique: true
|
8
|
+
add_index :spree_vendor_users, :vendor_id
|
9
|
+
add_index :spree_vendor_users, :user_id
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateSpreeOrderCommissions < SpreeExtension::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :spree_order_commissions do |t|
|
4
|
+
t.references :order
|
5
|
+
t.references :vendor
|
6
|
+
t.float :amount
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
add_index :spree_order_commissions, [:order_id, :vendor_id], unique: true
|
11
|
+
add_index :spree_order_commissions, :order_id
|
12
|
+
add_index :spree_order_commissions, :vendor_id
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Based on issue https://github.com/spree-contrib/spree_multi_vendor/issues/104
|
4
|
+
# This is a patch for Spree globalize to be friendly with the gem
|
5
|
+
|
6
|
+
class AddTranslationsToVendor < ActiveRecord::Migration[4.2]
|
7
|
+
def up
|
8
|
+
params = { name: :string, about_us: :text, contact_us: :text, slug: :string }
|
9
|
+
if defined?(SpreeGlobalize)
|
10
|
+
Spree::Vendor.create_translation_table!(params, { migrate_data: true })
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
if defined?(SpreeGlobalize)
|
16
|
+
Spree::Vendor.drop_translation_table! migrate_data: true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "spree", github: "spree/spree", branch: "master"
|
6
|
+
gem "spree_auth_devise", github: "spree/spree_auth_devise", branch: "master"
|
7
|
+
gem "rails-controller-testing"
|
8
|
+
|
9
|
+
gemspec path: "../"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module SpreeMultiVendor
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
|
5
|
+
class_option :auto_run_migrations, type: :boolean, default: false
|
6
|
+
|
7
|
+
def add_migrations
|
8
|
+
run 'bundle exec rake railties:install:migrations FROM=spree_multi_vendor'
|
9
|
+
end
|
10
|
+
|
11
|
+
def run_migrations
|
12
|
+
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
|
13
|
+
if run_migrations
|
14
|
+
run 'bundle exec rake db:migrate'
|
15
|
+
else
|
16
|
+
puts 'Skipping rake db:migrate, don\'t forget to run it!'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'spree/core'
|
3
|
+
|
4
|
+
module SpreeMultiVendor
|
5
|
+
module Generators
|
6
|
+
class MailersPreviewGenerator < Rails::Generators::Base
|
7
|
+
desc 'Generates mailers preview for development proposes'
|
8
|
+
|
9
|
+
def self.source_paths
|
10
|
+
[
|
11
|
+
File.expand_path('templates', __dir__)
|
12
|
+
]
|
13
|
+
end
|
14
|
+
|
15
|
+
def copy_mailers_previews
|
16
|
+
preview_path = Rails.application.config.action_mailer.preview_path || 'test/mailers/previews'
|
17
|
+
|
18
|
+
template 'mailers/previews/vendor_notification_preview.rb', "#{preview_path}/vendor_notification_preview.rb"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spree_core'
|
2
|
+
require 'spree_multi_vendor/engine'
|
3
|
+
require 'spree_multi_vendor/version'
|
4
|
+
require 'spree_extension'
|
5
|
+
require 'deface'
|
6
|
+
|
7
|
+
module SpreeMultiVendor
|
8
|
+
# TODO: this should be moved into preferences
|
9
|
+
def self.vendorized_models
|
10
|
+
SpreeMultiVendor::Config[:vendorized_models].map(&:classify).map do |class_name|
|
11
|
+
"Spree::#{class_name}".safe_constantize
|
12
|
+
end.compact.uniq
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SpreeMultiVendor
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
require 'spree/core'
|
4
|
+
isolate_namespace Spree
|
5
|
+
engine_name 'spree_multi_vendor'
|
6
|
+
|
7
|
+
# use rspec for tests
|
8
|
+
config.generators do |g|
|
9
|
+
g.test_framework :rspec
|
10
|
+
end
|
11
|
+
|
12
|
+
initializer 'spree_multi_vendor.environment', before: :load_config_initializers do |_app|
|
13
|
+
SpreeMultiVendor::Config = SpreeMultiVendor::Configuration.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.activate
|
17
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
|
18
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
config.to_prepare &method(:activate).to_proc
|
23
|
+
end
|
24
|
+
end
|