class LessonsIndexer::Options

Public Class Methods

new(argv) click to toggle source
# File lib/lessons_indexer/options.rb, line 3
def initialize(argv)
  parse_args(argv).each do |k, v|
    # attr_accessor for each possible option
    self.class.class_eval do
      attr_accessor k
    end

    # setting each option as instance variable
    self.instance_variable_set "@#{k}", v
  end
end

Private Instance Methods

parse_args(argv) click to toggle source
# File lib/lessons_indexer/options.rb, line 17
def parse_args(argv)
  begin
    Slop.parse argv do |o|
      o.string '-p', '--path', pou('options.path'), default: pou('options.default.path')
      o.bool '-s', '--skip_index', pou('options.skip_index'), default: false
      o.string '-o', '--output', pou('options.output'), default: pou('options.default.output')
      o.bool '-g', '--git', pou('options.git'), default: false
      o.string '-m', '--message', pou('options.message'), default: pou('options.default.message')
      o.bool '-a', '--all', pou('options.all'), default: false
      o.bool '-i', '--headings', pou('options.headings'), default: false
      o.string '-d', '--headings_dir', pou('options.headings_dir'), default: pou('options.default.headings_dir')
      o.bool '-f', '--pdf', pou('options.pdf'), default: false
      o.array '-l', '--lessons', pou('options.lessons'), default: []
      o.on '--help' do
        puts o
        exit
      end
    end.to_hash
  rescue Slop::Error => e
    exit_msg e.message
  end
end