class Bricolage::GlobalOptions
Attributes
environment[R]
global_variables[R]
home[R]
job_file[R]
Public Class Methods
new(app)
click to toggle source
# File lib/bricolage/application.rb, line 292 def initialize(app) @app = app @job_file = nil @environment = nil @home = nil @global_variables = Variables.new @dry_run = false @explain = false @list_global_variables = false @list_variables = false @list_declarations = false @dump_options = false init_options end
Public Instance Methods
define_options(parser)
click to toggle source
# File lib/bricolage/application.rb, line 311 def define_options(parser) parser.banner = <<-EndBanner Synopsis: #{@app.program_name} [global_options] JOB_CLASS [job_options] #{@app.program_name} [global_options] --job=JOB_FILE -- [job_options] Global Options: EndBanner parser.on('-f', '--job=JOB_FILE', 'Give job parameters via job file (YAML).') {|path| @job_file = path } parser.on('-e', '--environment=NAME', "Sets execution environment [default: #{Context::DEFAULT_ENV}]") {|env| @environment = env } parser.on('-C', '--home=PATH', 'Sets application home directory.') {|path| @home = Pathname(path) } parser.on('-n', '--dry-run', 'Shows job script without executing it.') { @dry_run = true } parser.on('-E', '--explain', 'Applies EXPLAIN to the SQL.') { @explain = true } define_common_options parser.on('--list-job-class', 'Lists job class name and (internal) class path.') { JobClass.list.each do |name| puts name end exit 0 } parser.on('--list-global-variables', 'Lists global variables.') { @list_global_variables = true } parser.on('--list-variables', 'Lists all variables.') { @list_variables = true } parser.on('--list-declarations', 'Lists script variable declarations.') { @list_declarations = true } parser.on('-r', '--require=FEATURE', 'Requires ruby library.') {|feature| require feature } parser.on('-v', '--variable=NAME=VALUE', 'Set global variable (is different from job-level -v !!).') {|name_value| name, value = name_value.split('=', 2) @global_variables[name] = value } parser.on('--dump-options', 'Shows option parsing result and quit.') { @dump_options = true } parser.on('--help', 'Shows this message and quit.') { puts parser.help exit 0 } parser.on('--version', 'Shows program version and quit.') { puts "#{APPLICATION_NAME} version #{VERSION}" exit 0 } end
dry_run?()
click to toggle source
# File lib/bricolage/application.rb, line 392 def dry_run? @dry_run end
dump_options?()
click to toggle source
# File lib/bricolage/application.rb, line 400 def dump_options? @dump_options end
explain?()
click to toggle source
# File lib/bricolage/application.rb, line 396 def explain? @explain end
file_mode?()
click to toggle source
# File lib/bricolage/application.rb, line 388 def file_mode? !!@job_file end
help()
click to toggle source
# File lib/bricolage/application.rb, line 307 def help @parser.help end
list_declarations?()
click to toggle source
# File lib/bricolage/application.rb, line 414 def list_declarations? @list_declarations end
list_global_variables?()
click to toggle source
# File lib/bricolage/application.rb, line 406 def list_global_variables? @list_global_variables end
list_variables?()
click to toggle source
# File lib/bricolage/application.rb, line 410 def list_variables? @list_variables end
on(*args, &block)
click to toggle source
# File lib/bricolage/application.rb, line 371 def on(*args, &block) @parser.on(*args, &block) end
option_pairs()
click to toggle source
# File lib/bricolage/application.rb, line 418 def option_pairs common_options.merge({ 'environment' => OptionValue.new(nil, @environment), 'home' => OptionValue.new(nil, @home) }) end
parse!(argv)
click to toggle source
# File lib/bricolage/application.rb, line 375 def parse!(argv) @parser.order! argv @rest_args = argv.dup build_common_options! rescue OptionParser::ParseError => ex raise OptionError, ex.message end