lib/tailstrom/option_parser.rb in tailstrom-0.0.7 vs lib/tailstrom/option_parser.rb in tailstrom-0.0.8

- old
+ new

@@ -13,26 +13,26 @@ @options = {} @options_from_file = {} end def parse(argv) + parser = generate_parser parser.order! argv if infile = argv.shift @options[:static_infile] = open(infile, 'r') end @options = @options_from_file.merge @options DEFAULTS.merge @options end - def parser + def generate_parser ::OptionParser.new do |opt| opt.banner = <<-END tail -f access.log | #{$0} [OPTIONS] #{$0} [OPTIONS] [file] END opt.on('-c file', '--config file', String, 'config file') do |v| - require 'tailstrom/config_loader' @options_from_file = load_config v end opt.on('-f num', Integer, 'value field') do |v| @options[:field] = v end @@ -78,14 +78,15 @@ def file_or_string(value) File.exist?(value) ? File.read(value) : value end def load_config(file) + require 'yaml' argv = [] hash = YAML.load File.read(file) hash.each do |k, v| argv << (k.length > 1 ? "--#{k}" : "-#{k}") - argv << (v unless v.is_a? TrueClass) + argv << v unless v.is_a? TrueClass end parser = Tailstrom::OptionParser.new parser.parse argv end end