solidus_multi_domain 1.0.0 → 1.0.1

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