diff --git a/core/app/controllers/spree/base_controller.rb b/core/app/controllers/spree/base_controller.rb index 4cfbe50cd57..a323340a5b5 100644 --- a/core/app/controllers/spree/base_controller.rb +++ b/core/app/controllers/spree/base_controller.rb @@ -9,6 +9,7 @@ class Spree::BaseController < ApplicationController include Spree::Core::ControllerHelpers::StrongParameters include Spree::Core::ControllerHelpers::Locale include Spree::Core::ControllerHelpers::Currency + include Spree::Core::ControllerHelpers::GemChecking respond_to :html end diff --git a/core/lib/spree/core.rb b/core/lib/spree/core.rb index 31a04ed58bf..2252140fca6 100644 --- a/core/lib/spree/core.rb +++ b/core/lib/spree/core.rb @@ -137,6 +137,7 @@ class DestroyWithOrdersError < StandardError; end require 'spree/core/controller_helpers/strong_parameters' require 'spree/core/controller_helpers/locale' require 'spree/core/controller_helpers/currency' +require 'spree/core/controller_helpers/gem_checking' require 'spree/core/preferences/store' require 'spree/core/preferences/scoped_store' diff --git a/core/lib/spree/core/controller_helpers/gem_checking.rb b/core/lib/spree/core/controller_helpers/gem_checking.rb new file mode 100644 index 00000000000..c6cf1c134c7 --- /dev/null +++ b/core/lib/spree/core/controller_helpers/gem_checking.rb @@ -0,0 +1,26 @@ +module Spree + module Core + module ControllerHelpers + module GemChecking + extend ActiveSupport::Concern + + def backend_available? + @backend_available ||= Gem::Specification.find_all_by_name('spree_backend').any? + end + + def frontend_available? + @frontend_available ||= Gem::Specification.find_all_by_name('spree_frontend').any? + end + + def api_available? + @api_available ||= Gem::Specification.find_all_by_name('spree_api').any? + end + + def emails_available? + @emails_available ||= Gem::Specification.find_all_by_name('spree_emails').any? + end + end + end + end +end +