Module: Sinatra

Defined in:
lib/janus/sinatra.rb

Defined Under Namespace

Modules: Janus

Instance Method Summary collapse

Instance Method Details

#janus(*resources) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/janus/sinatra.rb', line 25

def janus(*resources)
  resources.each do |plural|
    singular = plural.to_s.singularize
    klass = singular.camelize.constantize

    class_eval "      def authenticate_\#{singular}!\n        authenticate!(:\#{singular})\n      end\n\n      def \#{singular}_signed_in?\n        signed_in?(:\#{singular})\n      end\n\n      def current_\#{singular}\n        @current_\#{singular} ||= janus.authenticate(:\#{singular})\n      end\n\n      def \#{singular}_session\n        janus.session(:\#{singular}) if \#{singular}_signed_in?\n      end\n    EOV\n  end\nend\n"