Class: Menilite::Controller
- Inherits:
-
Object
- Object
- Menilite::Controller
- Defined in:
- lib/menilite/controller.rb
Defined Under Namespace
Classes: ActionInfo
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
Class Method Summary collapse
- .action(name, options = {}, &block) ⇒ Object
- .action_info ⇒ Object
- .before_action(options = {}, &block) ⇒ Object
- .before_action_handlers ⇒ Object
Instance Method Summary collapse
-
#initialize(session, settings, request) ⇒ Controller
constructor
A new instance of Controller.
Constructor Details
#initialize(session, settings, request) ⇒ Controller
Returns a new instance of Controller.
10 11 12 13 14 |
# File 'lib/menilite/controller.rb', line 10 def initialize(session, settings, request) @settings = settings @session = session @request = request end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
8 9 10 |
# File 'lib/menilite/controller.rb', line 8 def request @request end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
8 9 10 |
# File 'lib/menilite/controller.rb', line 8 def session @session end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
8 9 10 |
# File 'lib/menilite/controller.rb', line 8 def settings @settings end |
Class Method Details
.action(name, options = {}, &block) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/menilite/controller.rb', line 28 def action(name, = {}, &block) action_info[name.to_s] = ActionInfo.new(name, block.parameters, ) if RUBY_ENGINE == 'opal' method = Proc.new do |*args, &callback| # todo: should adopt keyword parameters action_url = self.respond_to?(:namespace) ? "api/#{self.namespace}/#{name}" : "api/#{name}" post_data = {} post_data[:args] = args Menilite::Http.post_json(action_url, post_data) do on :success do |res| callback.call(:success, res) if callback end on :failure do |res| callback.call(:failure, res) if callback end end end self.instance_eval do define_singleton_method(name, method) end else self.instance_eval do define_method(name, block) end end end |
.action_info ⇒ Object
18 19 20 |
# File 'lib/menilite/controller.rb', line 18 def action_info @action_info ||= {} end |
.before_action(options = {}, &block) ⇒ Object
55 56 57 |
# File 'lib/menilite/controller.rb', line 55 def before_action( = {}, &block) before_action_handlers << { proc: block, options: } end |
.before_action_handlers ⇒ Object
22 23 24 |
# File 'lib/menilite/controller.rb', line 22 def before_action_handlers @before_action_handlers ||= [] end |