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 "      helper_method :\#{scope}_signed_in?, :current_\#{scope}, :\#{scope}_session\n\n      def authenticate_\#{scope}!\n        janus.authenticate!(:\#{scope})\n      end\n\n      def current_\#{scope}\n        @current_\#{scope} ||= janus.authenticate(:\#{scope})\n      end\n\n      def \#{scope}_signed_in?\n        janus.authenticate?(:\#{scope})\n      end\n\n      def \#{scope}_session\n        janus.session(:\#{scope}) if \#{scope}_signed_in?\n      end\n    EOV\n  end\nend\n"