Sha256: 1c2775c749e4feda4b7186bf3e20ad465af4069bd7b6d3e83b9a36dbda150ebf

Contents?: true

Size: 1.02 KB

Versions: 13

Compression:

Stored size: 1.02 KB

Contents

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'optparse'
require 'bookscan/commands'

module Bookscan
  class CLI
    def initialize
      @options = Hash.new
      @options[:debug] = false
    end

    def execute(argv)
      begin
        @opt = OptionParser.new
        @opt.on('--version', 'show version') { version;exit }
        @opt.on('--help', 'show this message') { usage;exit }
        @opt.on('--debug', 'debug mode') { @options[:debug] = true }
        cmd_argv = @opt.order!(argv)
        cmd = cmd_argv.shift
        Commands.new(cmd_argv,@options).send(cmd)
      rescue =>e
        puts e
        usage
        raise e if @options[:debug]
      end
    end

    def usage(e=nil)
      puts @opt
      puts "\nCommands:\n"
      COMMANDS.each { |c|
        puts "    " + c
      }
    end
    
    def version
      File.open(File.dirname(__FILE__) + '/../../VERSION',"r") { |file|
        puts file.gets
      }
    end
    
    class << self
      def run(argv)
        self.new.execute(argv)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
bookscan-0.5.14 lib/bookscan/cli.rb
bookscan-0.5.12 lib/bookscan/cli.rb
bookscan-0.5.11 lib/bookscan/cli.rb
bookscan-0.5.10 lib/bookscan/cli.rb
bookscan-0.5.9 lib/bookscan/cli.rb
bookscan-0.5.8 lib/bookscan/cli.rb
bookscan-0.5.7 lib/bookscan/cli.rb
bookscan-0.5.6 lib/bookscan/cli.rb
bookscan-0.5.4 lib/bookscan/cli.rb
bookscan-0.5.3 lib/bookscan/cli.rb
bookscan-0.5.2 lib/bookscan/cli.rb
bookscan-0.5.0 lib/bookscan/cli.rb
bookscan-0.4.3 lib/bookscan/cli.rb