class Assert::CLIRB

Constants

Error
HelpExit
VersionExit

Attributes

args[R]
argv[R]
data[R]
opts[R]

Public Class Methods

new(&block) click to toggle source
# File lib/assert/clirb.rb, line 7
def initialize(&block)
  @options = []; instance_eval(&block) if block
  require "optparse"
  @data, @args, @opts = [], [], {}; @parser = OptionParser.new do |p|
    p.banner = ""; @options.each do |o|
      @opts[o.name] = o.value; p.on(*o.parser_args){ |v| @opts[o.name] = v }
    end
    p.on_tail("--version", ""){ |v| raise VersionExit, v.to_s }
    p.on_tail("--help",    ""){ |v| raise HelpExit,    v.to_s }
  end
end

Public Instance Methods

inspect() click to toggle source
# File lib/assert/clirb.rb, line 27
def inspect
  "#<#{self.class}:#{"0x0%x" % (object_id << 1)} @data=#{@data.inspect}>"
end
option(*args, **kargs) click to toggle source
# File lib/assert/clirb.rb, line 19
def option(*args, **kargs); @options << Option.new(*args, **kargs); end
parse!(argv) click to toggle source
# File lib/assert/clirb.rb, line 20
def parse!(argv)
  @args = (argv || []).dup.tap do |args_list|
    begin; @parser.parse!(args_list)
    rescue OptionParser::ParseError => err; raise Error, err.message; end
  end; @data = @args + [@opts]
end
to_s() click to toggle source
# File lib/assert/clirb.rb, line 26
def to_s; @parser.to_s; end