class Pult::Api::API
Constants
- ENV_VAR
- RunnerInjector
- UI
Public Class Methods
draw!(panel)
click to toggle source
# File lib/pult/api/drawer.rb, line 47 def self.draw! panel @@panel = panel for app in @@panel._apps resource app do flat_app = @@panel[app]._to_flat.merge!(@@panel[app]) for action in flat_app._actions.sort.reverse action_url = action.gsub '.', '/' for injection in RunnerInjector.read_injections.sort @@self.info_get flat_app, action, injection get("#{action_url}_#{injection}") { action_get } end for injection in RunnerInjector.run_injections.sort @@self.info_post flat_app, action, injection post("#{action_url}_#{injection}") { action_post } end @@self.info_get flat_app, action get(action_url) { action_get } @@self.info_post flat_app, action post(action_url) { action_post } end for action in flat_app._actions.sort.reverse action_url = action.gsub '.', '/' @@self.info_post flat_app, action, job: true post("#{action_url}_job") { action_post } end end end end
info(flat_app, action, injection, job, type: @@action = action)
click to toggle source
# File lib/pult/api/drawer.rb, line 86 def self.info flat_app, action, injection, job, type: @@action = action @@action_title = flat_app._action_title(action) @@command = flat_app[action].to_s @@icon = job ? UI[:icon][:job] : UI[:icon][:run] @@injection = injection&.sub!('_', '') ? "#{injection}#{UI[:icon][:sep]}" : '' desc(UI[:title][type].call){ detail(UI[:detail][type].call) } parameters if type == :post end
info_get(flat_app, action, injection=nil, job: nil)
click to toggle source
# File lib/pult/api/drawer.rb, line 114 def self.info_get flat_app, action, injection=nil, job: nil info flat_app, action, injection, job, type: :get end
info_post(flat_app, action, injection=nil, job: nil)
click to toggle source
# File lib/pult/api/drawer.rb, line 118 def self.info_post flat_app, action, injection=nil, job: nil info flat_app, action, injection, job, type: :post end
parameters()
click to toggle source
# File lib/pult/api/drawer.rb, line 98 def self.parameters params do optional :screen, type: String @@command.scan(/(?<=\$)#{ENV_VAR}/).each do |param| description = { type: String } if ! (default = `echo -n $#{param}`).blank? description.merge! default: default end requires param.to_sym, description end end end
Public Instance Methods
action_get()
click to toggle source
# File lib/pult/api/drawer.rb, line 36 def action_get /^\/(?<path>.+)$/ =~ path @@panel._apply_path!(path, params) end
action_post()
click to toggle source
# File lib/pult/api/drawer.rb, line 41 def action_post /^\/(?<path>.+)$/ =~ path @@panel._apply_path!("#{path}!", params) end
path()
click to toggle source
# File lib/pult/api/drawer.rb, line 32 def path route.pattern.origin end