solidus_multi_domain 1.0.0 → 1.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 52d337168f77ee0a5c1645598299ae808ab415e4
4
- data.tar.gz: 2bc617558995dfb85db2a816feb05e8be58efab9
3
+ metadata.gz: 191f8cf6df04e131b0007d89065a3a690f5d4f41
4
+ data.tar.gz: a9de546369e8aa0d751eba3be96ad2f2077fcc41
5
5
  SHA512:
6
- metadata.gz: 2d4b32d871c50b2e5a8b8abba49bd16103904da4037a7789d6b849720231712ecf151954d192aef5e3660223c67ba17be04912da400ede556457cbff5068b913
7
- data.tar.gz: f491bf9f85566ac2f0b2be660e02cba7ba3654b78b0f3c768591a1d108a3886ed33ff26f4523b87cb8bfeb21dff72b124902428bc6931ed35c9ca6e81644f413
6
+ metadata.gz: 6867d1c89bc564d8a435258b541bc60e60347406cf4c088e85149d7a99e412da058d02e73f7458b3a4126e9a95fcef9733d2725fc18c60b968817ab62181b959
7
+ data.tar.gz: 2879bc42a0beef6997ca48528887b2c6d8517f26335312b566d46ee32d66f0926e41fb273a4eb5a2136685b4ffbafe6239c55de18df734c31d5f7d43d796cee5
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "solidus", git: "git@github.com:solidusio/solidus.git", branch: "master"
3
+ gem "solidus", github: "solidusio/solidus"
4
4
 
5
5
  group :development, :test do
6
6
  gem "pry-rails"
data/README.md CHANGED
@@ -51,7 +51,7 @@ Then run from the command line:
51
51
 
52
52
  ```shell
53
53
  bundle install
54
- rails g spree_multi_domain:install
54
+ rails g solidus_multi_domain:install
55
55
  ```
56
56
 
57
57
  You should see 'Stores & Domains' in Configuration tab of Spree Admin.
@@ -3,7 +3,7 @@ module SpreeMultiDomain::CreateLineItemSupport
3
3
 
4
4
  included do
5
5
  prepend(InstanceMethods)
6
- rescue_from SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError, with: :product_does_not_belong_to_store
6
+ rescue_from SpreeMultiDomain::LineItemConcerns::ProductDoesNotBelongToStoreError, with: :product_does_not_belong_to_store
7
7
  end
8
8
 
9
9
  module InstanceMethods
@@ -0,0 +1 @@
1
+ Spree::LineItem.include(SpreeMultiDomain::LineItemConcerns)
@@ -1,7 +1,4 @@
1
1
  Spree::Order.class_eval do
2
- belongs_to :store
3
- scope :by_store, lambda { |store| where(:store_id => store.id) }
4
-
5
2
  def available_payment_methods
6
3
  @available_payment_methods ||= Spree::PaymentMethod.available(:front_end, store)
7
4
  end
@@ -1,4 +1,4 @@
1
- module SpreeMultiDomain::LineItemDecorator
1
+ module SpreeMultiDomain::LineItemConcerns
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  class ProductDoesNotBelongToStoreError < StandardError; end
@@ -12,9 +12,7 @@ module SpreeMultiDomain::LineItemDecorator
12
12
  private
13
13
 
14
14
  def ensure_product_belongs_to_store
15
- raise SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError if order.store.present? && !product.stores.include?(order.store)
15
+ raise ProductDoesNotBelongToStoreError if order.store.present? && !product.stores.include?(order.store)
16
16
  end
17
17
  end
18
18
  end
19
-
20
- Spree::LineItem.include(SpreeMultiDomain::LineItemDecorator)
@@ -3,11 +3,11 @@ class CreateProductsStores < ActiveRecord::Migration
3
3
  create_table :products_stores, :id => false do |t|
4
4
  t.references :product
5
5
  t.references :store
6
- t.timestamps
6
+ t.timestamps null: true
7
7
  end
8
8
  end
9
9
 
10
10
  def self.down
11
11
  drop_table :products_stores
12
12
  end
13
- end
13
+ end
@@ -4,7 +4,7 @@ class AddStorePaymentMethods < ActiveRecord::Migration
4
4
  t.integer :store_id
5
5
  t.integer :payment_method_id
6
6
 
7
- t.timestamps
7
+ t.timestamps null: true
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ class AddStoreShippingMethods < ActiveRecord::Migration
4
4
  t.integer :store_id
5
5
  t.integer :shipping_method_id
6
6
 
7
- t.timestamps
7
+ t.timestamps null: true
8
8
  end
9
9
 
10
10
  add_index :spree_store_shipping_methods, :store_id
@@ -1,4 +1,4 @@
1
- module SpreeMultiDomain
1
+ module SolidusMultiDomain
2
2
  module Generators
3
3
  class InstallGenerator < Rails::Generators::Base
4
4
  class_option :auto_run_migrations, type: :boolean, default: false
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |s|
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.name = "solidus_multi_domain"
6
- s.version = "1.0.0"
6
+ s.version = "1.0.1"
7
7
  s.summary = "Adds multiple site support to Solidus"
8
8
  s.description = "Multiple Solidus stores on different domains - single unified backed for processing orders."
9
9
  s.required_ruby_version = ">= 2.1"
@@ -17,7 +17,7 @@ describe Spree::Api::LineItemsController do
17
17
  context "A SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError is raised" do
18
18
  before(:each) do
19
19
  def controller.create
20
- raise SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError
20
+ raise SpreeMultiDomain::LineItemConcerns::ProductDoesNotBelongToStoreError
21
21
  end
22
22
  end
23
23
 
@@ -27,7 +27,7 @@ describe Spree::Api::ProductsController do
27
27
  end
28
28
 
29
29
  it 'should return 404' do
30
- controller.stub(:current_store => store_2)
30
+ allow(controller).to receive_messages(:current_store => store_2)
31
31
  spree_get :show, :id => product.to_param, format: :json
32
32
 
33
33
  expect(response.response_code) == 404
@@ -42,7 +42,7 @@ describe Spree::Api::ProductsController do
42
42
  end
43
43
 
44
44
  it 'should return 200' do
45
- controller.stub(:current_store => store)
45
+ allow(controller).to receive_messages(:current_store => store)
46
46
  spree_get :show, :id => product.to_param, format: :json
47
47
 
48
48
  expect(response.response_code) == 200
@@ -9,20 +9,20 @@ describe Spree::Api::ShipmentsController do
9
9
  let!(:order_from_store2) { FactoryGirl.create(:order, store: store2, user: user) }
10
10
 
11
11
  before(:each) do
12
- controller.stub(current_api_user: user)
12
+ allow(controller).to receive_messages(current_api_user: user)
13
13
  end
14
14
 
15
15
  it 'should return only shipments from the correct store' do
16
16
  FactoryGirl.create(:shipment, order: order_from_store1)
17
17
  FactoryGirl.create(:shipment, order: order_from_store2)
18
18
 
19
- controller.stub(current_store: store1)
19
+ allow(controller).to receive_messages(current_store: store1)
20
20
  controller.mine
21
21
 
22
22
  expect(assigns(:shipments).length).to eq(1)
23
23
  expect(assigns(:shipments).first.order.store_id).to eq(store1.id)
24
24
 
25
- controller.stub(current_store: store2)
25
+ allow(controller).to receive_messages(current_store: store2)
26
26
  controller.mine
27
27
 
28
28
  expect(assigns(:shipments).length).to eq(1)
@@ -45,7 +45,7 @@ describe Spree::Api::ShipmentsController do
45
45
  context "A SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError is raised" do
46
46
  before(:each) do
47
47
  def controller.add
48
- raise SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError
48
+ raise SpreeMultiDomain::LineItemConcerns::ProductDoesNotBelongToStoreError
49
49
  end
50
50
  end
51
51
 
@@ -24,7 +24,7 @@ describe Spree::LineItem do
24
24
  let(:product) { create(:product, stores: [other_store]) }
25
25
 
26
26
  it 'raises the correct error' do
27
- expect{ subject }.to raise_error(SpreeMultiDomain::LineItemDecorator::ProductDoesNotBelongToStoreError)
27
+ expect{ subject }.to raise_error(SpreeMultiDomain::LineItemConcerns::ProductDoesNotBelongToStoreError)
28
28
  end
29
29
  end
30
30
 
@@ -1,18 +1,4 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Order do
4
-
5
- before(:each) do
6
- @store = FactoryGirl.create(:store)
7
- @order = FactoryGirl.create(:order, :store => @store)
8
-
9
- @order2 = FactoryGirl.create(:order)
10
- end
11
-
12
- it 'should correctly find products by store' do
13
- by_store = Spree::Order.by_store(@store)
14
-
15
- expect(by_store).to include(@order)
16
- expect(by_store).to_not include(@order2)
17
- end
18
4
  end
@@ -2,11 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe Spree::Tracker do
4
4
  before(:each) do
5
- store = FactoryGirl.create(:store, default: true)
6
- @tracker = FactoryGirl.create(:tracker, store: store)
5
+ @store = FactoryGirl.create(:store, default: true)
6
+ @tracker = FactoryGirl.create(:tracker, store: @store)
7
7
 
8
- another_store = FactoryGirl.create(:store, code: 'STORE2', url: 'completely-different-store.com')
9
- @tracker2 = FactoryGirl.create(:tracker, store: another_store)
8
+ @another_store = FactoryGirl.create(:store, code: 'STORE2', url: 'completely-different-store.com')
9
+ @tracker2 = FactoryGirl.create(:tracker, store: @another_store)
10
10
  end
11
11
 
12
12
  it "pulls out the current tracker based on store code" do
@@ -14,6 +14,6 @@ describe Spree::Tracker do
14
14
  end
15
15
 
16
16
  it "pulls out the current tracker" do
17
- expect(Spree::Tracker.current('www.example.com')).to eq @tracker
17
+ expect(Spree::Tracker.current(@store.url)).to eq @tracker
18
18
  end
19
19
  end
@@ -6,7 +6,7 @@ describe "Global controller helpers" do
6
6
 
7
7
  before(:each) do
8
8
  @tracker = FactoryGirl.create :tracker, :store => store
9
- get '/'
9
+ get "http://#{store.url}"
10
10
  end
11
11
 
12
12
  it "should include the right tracker" do
@@ -10,9 +10,9 @@ describe "Template renderer with dynamic layouts" do
10
10
  end
11
11
 
12
12
  it "should render the layout corresponding to the current store" do
13
- FactoryGirl.create :store, code: "my_store"
13
+ store = FactoryGirl.create :store, code: "my_store"
14
14
 
15
- get "http://www.example.com"
15
+ get "http://#{store.url}"
16
16
  expect(response.body).to eql("Store layout hello")
17
17
  end
18
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_multi_domain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 00:00:00.000000000 Z
11
+ date: 2015-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus
@@ -160,7 +160,6 @@ files:
160
160
  - app/controllers/spree/admin/products_controller_decorator.rb
161
161
  - app/controllers/spree/admin/stores_controller.rb
162
162
  - app/controllers/spree/api/line_items_controller_decorator.rb
163
- - app/controllers/spree/api/orders_controller_decorator.rb
164
163
  - app/controllers/spree/api/products_controller_decorator.rb
165
164
  - app/controllers/spree/api/shipments_controller_decorator.rb
166
165
  - app/controllers/spree/home_controller_decorator.rb
@@ -169,6 +168,7 @@ files:
169
168
  - app/helpers/spree/products_helper_decorator.rb
170
169
  - app/mailers/spree/carton_mailer_decorator.rb
171
170
  - app/mailers/spree/order_mailer.rb
171
+ - app/models/spree/line_item_decorator.rb
172
172
  - app/models/spree/order_decorator.rb
173
173
  - app/models/spree/payment_method_decorator.rb
174
174
  - app/models/spree/product_decorator.rb
@@ -180,7 +180,7 @@ files:
180
180
  - app/models/spree/taxon_decorator.rb
181
181
  - app/models/spree/taxonomy_decorator.rb
182
182
  - app/models/spree/tracker_decorator.rb
183
- - app/models/spree_multi_domain/line_item_decorator.rb
183
+ - app/models/spree_multi_domain/line_item_concerns.rb
184
184
  - app/overrides/decorate_admin_configurations_index.rb
185
185
  - app/overrides/decorate_admin_products_form.rb
186
186
  - app/overrides/decorate_admin_products_index.rb
@@ -222,7 +222,7 @@ files:
222
222
  - lib/assets/javascripts/spree/backend/store_picker.js
223
223
  - lib/assets/javascripts/spree/frontend/solidus_multi_domain.js
224
224
  - lib/assets/stylesheets/spree/frontend/solidus_multi_domain.css
225
- - lib/generators/spree_multi_domain/install/install_generator.rb
225
+ - lib/generators/solidus_multi_domain/install/install_generator.rb
226
226
  - lib/solidus_multi_domain.rb
227
227
  - lib/spree/controller_helpers/order_decorator.rb
228
228
  - lib/spree/search/multi_domain.rb
@@ -232,7 +232,6 @@ files:
232
232
  - spec/controllers/spree/admin/products_controller_spec.rb
233
233
  - spec/controllers/spree/admin/stores_controller_spec.rb
234
234
  - spec/controllers/spree/api/line_items_controller_spec.rb
235
- - spec/controllers/spree/api/orders_controller_spec.rb
236
235
  - spec/controllers/spree/api/products_controller_spec.rb
237
236
  - spec/controllers/spree/api/shipments_controller_spec.rb
238
237
  - spec/controllers/spree/products_controller_spec.rb
@@ -271,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
270
  requirements:
272
271
  - none
273
272
  rubyforge_project:
274
- rubygems_version: 2.2.0
273
+ rubygems_version: 2.2.2
275
274
  signing_key:
276
275
  specification_version: 4
277
276
  summary: Adds multiple site support to Solidus
@@ -1,21 +0,0 @@
1
- module SpreeMultiStore
2
- module Api
3
- module OrdersControllerDecorator
4
- def self.included(base)
5
- base.alias_method_chain :mine, :store_scope
6
- base.alias_method_chain :find_current_api_user_orders, :store_scope
7
- end
8
-
9
- def mine_with_store_scope
10
- mine_without_store_scope
11
- @orders = @orders.where(store: current_store) if @orders
12
- end
13
-
14
- def find_current_api_user_orders_with_store_scope
15
- find_current_api_user_orders_without_store_scope.where(store: current_store)
16
- end
17
- end
18
- end
19
- end
20
-
21
- Spree::Api::OrdersController.include SpreeMultiStore::Api::OrdersControllerDecorator
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::Api::OrdersController do
4
- let!(:user) { FactoryGirl.create(:user) }
5
- let!(:store1) { FactoryGirl.create(:store) }
6
- let!(:store2) { FactoryGirl.create(:store) }
7
-
8
- before(:each) do
9
- controller.stub(current_api_user: user)
10
- end
11
-
12
- describe '#mine' do
13
- it 'should return only orders from the correct store' do
14
- FactoryGirl.create(:order, store: store1, user: user)
15
- FactoryGirl.create(:order, store: store2, user: user)
16
-
17
- controller.stub(current_store: store1)
18
- controller.mine
19
-
20
- expect(assigns(:orders).length).to eq(1)
21
- expect(assigns(:orders).first.store_id).to eq(store1.id)
22
-
23
- controller.stub(current_store: store2)
24
- controller.mine
25
-
26
- expect(assigns(:orders).length).to eq(1)
27
- expect(assigns(:orders).first.store_id).to eq(store2.id)
28
- end
29
- end
30
-
31
- describe '#find_current_order' do
32
-
33
- it 'should return the latest incomplete order from the correct store' do
34
- order1 = FactoryGirl.create(:order, store: store1, state: :cart, user: user)
35
- order2 = FactoryGirl.create(:order, store: store2, state: :cart, user: user)
36
-
37
- controller.stub(current_store: store1)
38
- expect(controller.send(:find_current_order)).to eql(order1)
39
-
40
- controller.stub(current_store: store2)
41
- expect(controller.send(:find_current_order)).to eql(order2)
42
- end
43
- end
44
- end