module Pult::Panel::App::DotAccessible
Constants
- JOB_KEY
- RunnerInjector
Public Instance Methods
method_missing(meth, *args)
click to toggle source
# File lib/pult/panel/app/dot_accessible.rb, line 13 def method_missing meth, *args /(?<action>[^\!]+)(?<need_execute>\!?)/ =~ meth.to_s for injection in [JOB_KEY] + RunnerInjector.read_injections action.gsub! /#{injection}$/, '' break if $& end value = self[action] if !need_execute.blank? if value.respond_to? :app? with_job? $& do for sub_action in value.keys value.send "#{sub_action}!", *args end end else return execute!(action, $&, *args) end end $& ? nil : value end
Private Instance Methods
execute!(action, injection=nil, *args)
click to toggle source
# File lib/pult/panel/app/dot_accessible.rb, line 44 def execute! action, injection=nil, *args job = job?(injection) ? injection : nil runner = Pult::Panel::Executor.send "run#{job}!", self, action, *args if injection && !job return send("#{action}#{injection}") else return runner end end
job?(str)
click to toggle source
# File lib/pult/panel/app/dot_accessible.rb, line 56 def job? str str == JOB_KEY end
with_job?(injection, &block)
click to toggle source
# File lib/pult/panel/app/dot_accessible.rb, line 40 def with_job? injection, &block job?(injection) ? Job.perform_later(block.object_id) : block.call end