class Pakyow::Task::Loader
Attributes
__arguments[R]
__description[R]
__flags[R]
__global[R]
__namespace[R]
__options[R]
__tasks[R]
Public Class Methods
new(path)
click to toggle source
# File lib/pakyow/task.rb, line 244 def initialize(path) @__namespace = [] @__description = nil @__arguments = {} @__options = {} @__flags = {} @__tasks = [] @__global = false eval(File.read(path), binding, path) end
Public Instance Methods
argument(name, description, required: false)
click to toggle source
# File lib/pakyow/task.rb, line 267 def argument(name, description, required: false) @__arguments[name.to_sym] = { description: description, required: required } end
describe(description)
click to toggle source
# File lib/pakyow/task.rb, line 262 def describe(description) @__description = description end
Also aliased as: desc
flag(name, description, short: nil)
click to toggle source
# File lib/pakyow/task.rb, line 282 def flag(name, description, short: nil) @__flags[name.to_sym] = { description: description, short: short } end
global_task(*args, &block)
click to toggle source
# File lib/pakyow/task.rb, line 311 def global_task(*args, &block) @__global = true task(*args, &block) end
namespace(name, &block)
click to toggle source
# File lib/pakyow/task.rb, line 256 def namespace(name, &block) @__namespace << name.to_sym instance_exec(&block) @__namespace.pop end
option(name, description, required: false, short: :default)
click to toggle source
# File lib/pakyow/task.rb, line 274 def option(name, description, required: false, short: :default) @__options[name.to_sym] = { description: description, required: required, short: short } end
task(*args, &block)
click to toggle source
# File lib/pakyow/task.rb, line 289 def task(*args, &block) @__tasks << Task.new( namespace: @__namespace, description: @__description, arguments: @__arguments, options: CLI::GLOBAL_OPTIONS.select { |key, _| key == :env || args[1].to_a.include?(key) }.reject { |key, _| key == :env && args[0] == :prototype }.merge(@__options), flags: @__flags, task_args: args, global: @__global, &block ) @__description = nil @__arguments = {} @__options = {} @__global = false end