Sha256: faa0fa4dc28db3836a3b6492f162bc7a9e254affcc2a6a8fbb1c446a6ca92cc3

Contents?: true

Size: 495 Bytes

Versions: 17

Compression:

Stored size: 495 Bytes

Contents

require 'clearance/session_status'

module Clearance
  class SignInGuard
    def initialize(session, stack = [])
      @session = session
      @stack = stack
    end

    def success
      SuccessStatus.new
    end

    def failure(message)
      FailureStatus.new(message)
    end

    def next_guard
      stack.call
    end

    private

    attr_reader :stack, :session

    def signed_in?
      session.signed_in?
    end

    def current_user
      session.current_user
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
clearance-1.11.0 lib/clearance/sign_in_guard.rb
clearance-1.10.1 lib/clearance/sign_in_guard.rb
clearance-1.9.0 lib/clearance/sign_in_guard.rb
clearance-1.8.1 lib/clearance/sign_in_guard.rb
clearance-1.8.0 lib/clearance/sign_in_guard.rb
clearance-1.7.0 lib/clearance/sign_in_guard.rb
clearance-1.6.1 lib/clearance/sign_in_guard.rb
clearance-1.6.0 lib/clearance/sign_in_guard.rb
clearance-1.5.1 lib/clearance/sign_in_guard.rb
clearance-1.5.0 lib/clearance/sign_in_guard.rb
clearance-1.4.3 lib/clearance/sign_in_guard.rb
clearance-1.4.2 lib/clearance/sign_in_guard.rb
clearance-1.4.1 lib/clearance/sign_in_guard.rb
clearance-1.4.0 lib/clearance/sign_in_guard.rb
clearance-1.3.0 lib/clearance/sign_in_guard.rb
clearance-1.2.1 lib/clearance/sign_in_guard.rb
clearance-1.2.0 lib/clearance/sign_in_guard.rb