Module: Atto::Opt
- Defined in:
- lib/atto/opt.rb
Overview
A module for handling command line options
Class Method Summary collapse
-
.get(key, default = nil) ⇒ Object
Gets an option from arguments or from the environment (in that order).
-
.getarg(key, default = nil) ⇒ Object
Gets an argument in the short form.
-
.getargument(key, default = nil) ⇒ Object
Gets an argument in the long form.
-
.getenv ⇒ Object
Gets an environment variable.
Instance Method Summary collapse
Class Method Details
.get(key, default = nil) ⇒ Object
Gets an option from arguments or from the environment (in that order)
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/atto/opt.rb', line 36 def self.get(key, default = nil) keyarg = key.to_s.downcase.gsub(/[_ ]/, '-') arg = ARGS.select{ |f| f =~ /\A--#{keyarg}(\Z|\=)/ }.last if arg ind = arg.index('=') if ind res = arg[ind + 1, arg.size] return res unless res.empty? return default else return default || true end end # Short arguments shortarg = key.to_s[0] arg = ARGS.index{ |f| f =~ /\A-#{shortarg}\Z)/ }.last envarg = key.to_s.upcase.gsub(/[ \-]/, '_') env = ENV[envarg] return env || default end |
.getarg(key, default = nil) ⇒ Object
Gets an argument in the short form
20 21 22 23 24 25 |
# File 'lib/atto/opt.rb', line 20 def self.getarg(key, default = nil) shortarg = key.to_s[0] arg = ARGS.index{ |f| f =~ /\A-#{shortarg}\Z)/ }.last return default, false unless arg return ARGS[arg+1] || default, true end |
.getargument(key, default = nil) ⇒ Object
Gets an argument in the long form
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/atto/opt.rb', line 6 def self.getargument(key, default=nil) keyarg = key.to_s.downcase.gsub(/[_ ]/, '-') arg = ARGS.select{ |f| f =~ /\A--#{keyarg}(\Z|\=)/ }.last return default, false unless arg ind = arg.index('=') if ind res = arg[ind + 1, arg.size] return res, true unless res.empty? return default, true end return true, true end |
.getenv ⇒ Object
Gets an environment variable
28 29 30 31 32 33 |
# File 'lib/atto/opt.rb', line 28 def self.getenv envarg = key.to_s.upcase.gsub(/[ \-]/, '_') env = ENV[envarg] return default, false unless env return env || default, true end |
Instance Method Details
#[](key) ⇒ Object
59 60 61 |
# File 'lib/atto/opt.rb', line 59 def [](key) return self.get(key) end |