class DNote::Options
Option parser
Public Class Methods
new(argv)
click to toggle source
# File lib/dnote/options.rb, line 15 def initialize(argv) @argv = argv end
parse(*argv)
click to toggle source
# File lib/dnote/options.rb, line 11 def self.parse(*argv) new(argv).parse end
Public Instance Methods
add_command_options(session, opt)
click to toggle source
# File lib/dnote/options.rb, line 38 def add_command_options(session, opt) opt.separator(" ") opt.separator("COMMAND OPTIONS:") opt.on_tail("--templates", "-T", "list available format templates") do session.list_templates exit end opt.on_tail("--help", "-h", "show this help information") do puts opt exit end end
add_other_options(session, opt)
click to toggle source
# File lib/dnote/options.rb, line 75 def add_other_options(session, opt) opt.separator(" ") opt.separator("OTHER OPTIONS:") opt.on("--label", "-l LABEL", "labels to collect") do |lbl| session.labels.concat(lbl.split(":")) end opt.on(:colon, "--[no-]colon", "match labels with/without colon suffix") do |val| session.colon = val end opt.on("--marker", "-m MARK", "alternative remark marker") do |mark| session.marker = mark end opt.on("--url", "-u TEMPLATE", "url template for line entries (for HTML)") do |url| session.url = url end opt.on("--context", "-c INTEGER", "number of lines of context to display") do |int| session.context = int.to_i end opt.on("--exclude", "-x PATH", "exclude file or directory") do |path| session.exclude << path end opt.on("--ignore", "-i NAME", "ignore file based on any part of pathname") do |name| session.ignore << name end opt.on("--title", "-t TITLE", "title to use in header") do |title| session.title = title end opt.on("--output", "-o PATH", "save to file or directory") do |path| session.output = path end opt.on("--dryrun", "-n", "do not actually write to disk") do session.dryrun = true end opt.on("--debug", "debug mode") do $DEBUG = true $VERBOSE = true end end
add_output_format_options(session, opt)
click to toggle source
# File lib/dnote/options.rb, line 53 def add_output_format_options(session, opt) opt.separator(" ") opt.separator("OUTPUT FORMAT: (choose one)") opt.on("--format", "-f NAME", "select a format [text]") do |format| session.format = format end opt.on("--custom", "-C FILE", "use a custom ERB template") do |file| session.format = "custom" session.template = file end opt.on("--file", "shortcut for text/file format") do session.format = "text/file" end opt.on("--list", "shortcut for text/list format") do session.format = "text/list" end end
parse()
click to toggle source
# File lib/dnote/options.rb, line 19 def parse session = Session.new opts = OptionParser.new do |opt| opt.banner = "DNote v#{DNote::VERSION}" opt.separator(" ") opt.separator("USAGE:\n dnote [OPTIONS] path1 [path2 ...]") add_output_format_options(session, opt) add_other_options(session, opt) add_command_options(session, opt) end opts.parse!(@argv) session.paths.replace(@argv) session end