class Codeforces::Viewer::Application

Attributes

option[RW]

Public Class Methods

new() click to toggle source
# File lib/codeforces/viewer/application.rb, line 10
def initialize
  @option = {
    :contest_id  => nil,
    :problem_id  => nil,
    :input_only  => false,
    :output_only => false,
    :cache       => true,
  }
end

Public Instance Methods

parse_options(argv) click to toggle source
# File lib/codeforces/viewer/application.rb, line 20
def parse_options(argv)
  OptionParser.new do |option_parser|
    option_parser.banner = "Usage: codeforces_viewer -c {contest-id} -p {problem-id} [options]"
    option_parser.separator ""
    option_parser.version = Codeforces::Viewer::VERSION

    # contest id
    option_parser.on('-c contest-id', '--contest-id contest-id', 'specify codeforces contest id (e.g. 100, 99)', String) {|contest_id| @option[:contest_id] = contest_id }

    # problem_id
    option_parser.on('-p problem-id', '--problem-id problem-id', 'specify codeforces problem id (e.g. A, B)', String) {|problem_id| @option[:problem_id] = problem_id }
    
    option_parser.separator ""

    # show input only
    option_parser.on('-i input-no', '--input input-no', 'specify sample input id (0 is all)', Integer) {|flag| @option[:input_only] = flag }
    
    # show output only
    option_parser.on('-o input-no', '--output input-no', 'specify sample output id (0 is all)', Integer) {|flag| @option[:output_only] = flag }
    
    option_parser.separator ""

    # no cache
    option_parser.on('--no-cache', 'no cache html files') {|flag| @option[:cache] = flag }

    option_parser.separator ""

    # parse
    option_parser.parse! argv
  end

  # check
  if @option[:contest_id].nil? || @option[:contest_id] == ""
    abort "Error: contest id must be specified"
  end
  if @option[:problem_id].nil? || @option[:problem_id] == ""
    abort "Error: problem id must be specified"
  end
end
show() click to toggle source
# File lib/codeforces/viewer/application.rb, line 60
def show
  viewer = Codeforces::Viewer::Viewer.new @option
  viewer.show
end