Sha256: ed2303696ccb50d3dcbc4620355c8a93a3a1a35e9dffd55a53a0aa51eb487d37

Contents?: true

Size: 782 Bytes

Versions: 17

Compression:

Stored size: 782 Bytes

Contents

module Guts
  # Controller concern for multisite into application
  module MultisiteConcern
    extend ActiveSupport::Concern
    
    included do
      around_action :with_current_site
    end
    
    # Sets the current site based on the request host
    # @return [Object, nil] the current site if found or nil
    def current_site
      @current_site ||= Site.find_by(domain: request.host)
    end
    
    # Wraps all actions to set current site for multisite
    # @see Guts::MultisiteConcern#current_site
    # @note This is a `around_action` method
    def with_current_site
      # Get the current site and begin action
      Site.current_id = current_site.try(:id)

      yield
    ensure
      # Clean up the current site ID
      Site.current_id = nil
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
guts-2.1.0 app/concerns/guts/multisite_concern.rb
guts-2.0.2 app/concerns/guts/multisite_concern.rb
guts-2.0.1 app/concerns/guts/multisite_concern.rb
guts-2.0.0 app/concerns/guts/multisite_concern.rb
guts-1.4.0 app/concerns/guts/multisite_concern.rb
guts-1.3.6 app/concerns/guts/multisite_concern.rb
guts-1.3.5 app/concerns/guts/multisite_concern.rb
guts-1.3.4 app/concerns/guts/multisite_concern.rb
guts-1.3.3 app/concerns/guts/multisite_concern.rb
guts-1.3.2 app/concerns/guts/multisite_concern.rb
guts-1.3.1 app/concerns/guts/multisite_concern.rb
guts-1.3.0 app/concerns/guts/multisite_concern.rb
guts-1.2.2 app/concerns/guts/multisite_concern.rb
guts-1.2.1 app/concerns/guts/multisite_concern.rb
guts-1.2.0 app/concerns/guts/multisite_concern.rb
guts-1.1.1 app/concerns/guts/multisite_concern.rb
guts-1.1.0 app/concerns/guts/multisite_concern.rb