class SafariBookmarksParser::Runner
Public Class Methods
known_commands()
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 8 def known_commands @known_commands ||= {} end
new(argv)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 17 def initialize(argv) @argv = argv.dup @parser = nil parse_options(@argv) end
register_command(command_name, command_class)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 12 def register_command(command_name, command_class) known_commands[command_name.to_sym] = command_class end
Public Instance Methods
run()
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 25 def run command_name = @argv.shift if command_name command_class = self.class.known_commands[command_name.to_sym] raise Error, "unknown command: #{command_name}" unless command_class command_class.new(@argv).run else show_help(@parser) end end
Private Instance Methods
do_parse(parser, argv)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 82 def do_parse(parser, argv) parser.order!(argv) rescue OptionParser::ParseError => e raise Error, e.message end
on_show_help(parser)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 68 def on_show_help(parser) parser.on('-h', '--help', 'Show this message') do show_help(parser) exit end end
on_show_version(parser)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 75 def on_show_version(parser) parser.on('-v', '--version', 'Show version number') do puts "#{parser.program_name} #{VERSION}" exit end end
parse_options(argv)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 53 def parse_options(argv) parser = OptionParser.new parser.banner = "Usage: #{parser.program_name} [options] command" parser.version = VERSION on_show_help(parser) on_show_version(parser) do_parse(parser, argv) @parser = parser end
show_help(parser)
click to toggle source
# File lib/safari_bookmarks_parser/runner.rb, line 41 def show_help(parser) puts parser puts puts <<~MESSAGE Available commands are: - dump - dups - empty MESSAGE end