Sha256: 065ae1c7ed0d11b0a6bd56e597f4f097f6c5970ef72e635666d95de70358af05

Contents?: true

Size: 1.31 KB

Versions: 25

Compression:

Stored size: 1.31 KB

Contents

module MinimumViableProduct
  module SessionConcern
    extend ActiveSupport::Concern

    COOKIE_ID = '_session'

    included do
      helper_method :current_user
    end

    def current_user=(user)
      session[COOKIE_ID] = user.id
    end
    alias_method :sign_in, :current_user=

    def current_user
      @current_user ||= begin
                          if session[COOKIE_ID]
                            Conversion.find(session[COOKIE_ID])
                          end
                        rescue ActiveRecord::RecordNotFound
                          session[COOKIE_ID] = nil
                        end
    end

    # http://blog.laaz.org/tech/2012/12/27/rails-redirect_back_or_default/
    def store_location(path=nil)
      session[:return_to] = case
                            when !path.nil?
                              path
                            when request.get?
                              request.url
                            else
                              request.referer
                            end
    end

    # http://blog.laaz.org/tech/2012/12/27/rails-redirect_back_or_default/
    def redirect_back_or_default(default=nil)
      redirect_to(session.delete(:return_to) || default || request.referer)
    end
    alias_method :redirect_to_back_or_default, :redirect_back_or_default
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
minimum_viable_product-0.7.15 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.14 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.13 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.12 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.11 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.10 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.9 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.8 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.7 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.6 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.5 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.4 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.3 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.2 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.1 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.7.0 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.6.7 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.6.6 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.6.5 app/controllers/concerns/minimum_viable_product/session_concern.rb
minimum_viable_product-0.6.4 app/controllers/concerns/minimum_viable_product/session_concern.rb