Module: Atto::Opt

Defined in:
lib/atto/opt.rb

Overview

A module for handling command line options

Class Method Summary collapse

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

.getenvObject

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