class SpreeMultiDomain::Engine

Public Class Methods

activate() click to toggle source
# File lib/spree_multi_domain/engine.rb, line 8
def activate
  ['app', 'lib'].each do |dir|
    Dir.glob(File.join(File.dirname(__FILE__), "../../#{dir}/**/*_decorator*.rb")) do |c|
      Rails.application.config.cache_classes ? require(c) : load(c)
    end
  end

  Spree::Config.searcher_class = Spree::Search::MultiDomain
  ApplicationController.send :include, SpreeMultiDomain::MultiDomainHelpers
end
admin_available?() click to toggle source
# File lib/spree_multi_domain/engine.rb, line 19
def admin_available?
  const_defined?('Spree::Backend::Engine')
end
api_available?() click to toggle source
# File lib/spree_multi_domain/engine.rb, line 23
def api_available?
  const_defined?('Spree::Api::Engine')
end
frontend_available?() click to toggle source
# File lib/spree_multi_domain/engine.rb, line 27
def frontend_available?
  const_defined?('Spree::Frontend::Engine')
end

Public Instance Methods

current_order_with_multi_domain(options = {}) click to toggle source
# File lib/spree_multi_domain/engine.rb, line 61
def current_order_with_multi_domain(options = {})
  options[:create_order_if_necessary] ||= false
  current_order_without_multi_domain(options)

  if @current_order and current_store and @current_order.store.blank?
    @current_order.update_attribute(:store_id, current_store.id)
  end

  @current_order
end
find_layout_with_multi_store(layout, *args) click to toggle source
# File lib/spree_multi_domain/engine.rb, line 36
def find_layout_with_multi_store(layout, *args)
  if @view.respond_to?(:current_store) && @view.current_store && !@view.controller.is_a?(Spree::Admin::BaseController)
    store_layout = if layout.is_a?(String)
                     layout.gsub("layouts/", "layouts/#{@view.current_store.code}/")
                   else
                     layout.call.try(:gsub, "layouts/", "layouts/#{@view.current_store.code}/")
                   end

    begin
      find_layout_without_multi_store(store_layout, *args)
    rescue ::ActionView::MissingTemplate
      find_layout_without_multi_store(layout, *args)
    end
  else
    find_layout_without_multi_store(layout, *args)
  end
end