Sha256: cc7ce60245b6fbe842dd7583e38e88eba8aedae15d63c4bc4db93bc21742242a

Contents?: true

Size: 1.27 KB

Versions: 34

Compression:

Stored size: 1.27 KB

Contents

module Workarea
  module CurrentRelease
    extend ActiveSupport::Concern

    included do
      helper_method :current_release, :current_release_session
      around_action :set_release
      before_action :mark_release_session
    end

    private

    def set_release
      if current_release_id.blank? || !current_user.try(:admin?)
        Release.current = nil
        yield
      else
        Release.with_current(current_release_id) do
          yield
        end
      end
    end

    def mark_release_session
      return unless current_user.try(:admin?)

      if working_with_releases? || current_release.blank?
        current_release_session.reset!
      elsif request.get? && !request.xhr?
        current_release_session.save_page_view
      end
    end

    def working_with_releases?
      request.url =~ /release/ || request.referer =~ /release/
    end

    def current_release_id
      session[:release_id]
    end

    def current_release
      Release.current
    end

    def current_release=(release)
      current_release_session.save_release_change if release.present?
      session[:release_id] = release.try(:id)
      Release.current = release
    end

    def current_release_session
      @current_release_session ||= ReleaseSession.new(cookies)
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/controllers/workarea/current_release.rb
workarea-core-3.4.44 app/controllers/workarea/current_release.rb
workarea-core-3.4.43 app/controllers/workarea/current_release.rb
workarea-core-3.4.42 app/controllers/workarea/current_release.rb
workarea-core-3.4.41 app/controllers/workarea/current_release.rb
workarea-core-3.4.40 app/controllers/workarea/current_release.rb
workarea-core-3.4.39 app/controllers/workarea/current_release.rb
workarea-core-3.4.38 app/controllers/workarea/current_release.rb
workarea-core-3.4.37 app/controllers/workarea/current_release.rb
workarea-core-3.4.36 app/controllers/workarea/current_release.rb
workarea-core-3.4.35 app/controllers/workarea/current_release.rb
workarea-core-3.4.34 app/controllers/workarea/current_release.rb
workarea-core-3.4.33 app/controllers/workarea/current_release.rb
workarea-core-3.4.32 app/controllers/workarea/current_release.rb
workarea-core-3.4.31 app/controllers/workarea/current_release.rb
workarea-core-3.4.30 app/controllers/workarea/current_release.rb
workarea-core-3.4.29 app/controllers/workarea/current_release.rb
workarea-core-3.4.28 app/controllers/workarea/current_release.rb
workarea-core-3.4.27 app/controllers/workarea/current_release.rb
workarea-core-3.4.26 app/controllers/workarea/current_release.rb