Module: Janus::Helpers::ClassMethods

Defined in:
lib/janus/controllers/helpers.rb

Instance Method Summary collapse

Instance Method Details

#janus(*scopes) ⇒ Object

Aliases some Janus methods for convenience. For instance calling ‘janus(:user, :admin)` will generate the following methods:

authenticate_user!   # => janus.authenticate!(:user)
current_user         # => janus.authenticate(:user)
user_signed_in?      # => janus.authenticate?(:user)
user_session         # => janus.sesssion(:user)

authenticate_admin!  # => janus.authenticate!(:admin)
current_admin        # => janus.authenticate(:admin)
admin_signed_in?     # => janus.authenticate?(:admin)
admin_session        # => janus.sesssion(:admin)


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/janus/controllers/helpers.rb', line 46

def janus(*scopes)
  scopes.each do |scope|
    class_eval <<-EOV
      helper_method :#{scope}_signed_in?, :current_#{scope}, :#{scope}_session

      def authenticate_#{scope}!
        janus.authenticate!(:#{scope})
      end

      def current_#{scope}
        @current_#{scope} ||= janus.authenticate(:#{scope})
      end

      def #{scope}_signed_in?
        janus.authenticate?(:#{scope})
      end

      def #{scope}_session
        janus.session(:#{scope}) if #{scope}_signed_in?
      end
    EOV
  end
end