From cd4f7281ef80b2cc2e93a48a1c831c53cb2903bd Mon Sep 17 00:00:00 2001 From: kojix2 <2xijok@gmail.com> Date: Tue, 4 Aug 2020 21:25:19 +0900 Subject: [PATCH] Add more options --- lib/uplot/command.rb | 57 ++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/lib/uplot/command.rb b/lib/uplot/command.rb index 571f536..2008faa 100644 --- a/lib/uplot/command.rb +++ b/lib/uplot/command.rb @@ -18,38 +18,55 @@ module Uplot end def create_parser - OptionParser.new do |opt| - opt.on('-o', '--output', TrueClass) { |v| @output = v } - opt.on('-d', '--delimiter VAL', String) { |v| @delimiter = v } - opt.on('-H', '--headers', TrueClass) { |v| @headers = v } - opt.on('-T', '--transpose', TrueClass) { |v| @transpose = v } - opt.on('-t', '--title VAL', String) { |v| @params[:title] = v } - opt.on('-w', '--width VAL', Numeric) { |v| @params[:width] = v } - opt.on('-h', '--height VAL', Numeric) { |v| @params[:height] = v } - opt.on('-b', '--border VAL', Numeric) { |v| @params[:border] = v } - opt.on('-m', '--margin VAL', Numeric) { |v| @params[:margin] = v } - opt.on('-p', '--padding VAL', Numeric) { |v| @params[:padding] = v } - opt.on('-c', '--color VAL', String) { |v| @params[:color] = v.to_sym } - opt.on('-l', '--labels', TrueClass) { |v| @params[:labels] = v } - opt.on('--fmt VAL', String) { |v| @fmt = v } - opt.on('--debug', TrueClass) { |v| @debug = v } - end + OptionParser.new + .on('-o', '--output', TrueClass) { |v| @output = v } + .on('-d', '--delimiter VAL', String) { |v| @delimiter = v } + .on('-H', '--headers', TrueClass) { |v| @headers = v } + .on('-T', '--transpose', TrueClass) { |v| @transpose = v } + .on('-t', '--title VAL', String) { |v| @params[:title] = v } + .on('-w', '--width VAL', Numeric) { |v| @params[:width] = v } + .on('-h', '--height VAL', Numeric) { |v| @params[:height] = v } + .on('-b', '--border VAL', Numeric) { |v| @params[:border] = v } + .on('-m', '--margin VAL', Numeric) { |v| @params[:margin] = v } + .on('-p', '--padding VAL', Numeric) { |v| @params[:padding] = v } + .on('-c', '--color VAL', String) { |v| @params[:color] = v.to_sym } + .on('-l', '--labels', TrueClass) { |v| @params[:labels] = v } + .on('--fmt VAL', String) { |v| @fmt = v } + .on('--debug', TrueClass) { |v| @debug = v } end def parse_options(argv) main_parser = create_parser parsers = Hash.new { |h, k| h[k] = create_parser } parsers['barplot'] = parsers['bar'] - .on('--count', TrueClass) { |v| @count = v } + .on('--symbol VAL', String) { |v| @params[:symbol] = v } + .on('--xscale VAL', String) { |v| @params[:xscale] = v } + .on('--xlabel VAL', String) { |v| @params[:xlabel] = v } + .on('--count', TrueClass) { |v| @count = v } parsers['count'] = parsers['c'] # barplot -c + .on('--symbol VAL', String) { |v| @params[:symbol] = v } parsers['histogram'] = parsers['hist'] .on('-n', '--nbins VAL', Numeric) { |v| @params[:nbins] = v } + .on('--closed VAL', String) { |v| @params[:closed] = v } + .on('--symbol VAL', String) { |v| @params[:symbol] = v } parsers['lineplot'] = parsers['line'] - .on('-x', '--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } + .on('--canvas VAL', String) { |v| @params[:canvas] = v } + .on('--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } + .on('--ylim VAL', String) { |v| @params[:ylim] = get_lim(v) } parsers['lineplots'] = parsers['lines'] - parsers['scatter'] - parsers['density'] + .on('--canvas VAL', String) { |v| @params[:canvas] = v } + .on('--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } + .on('--ylim VAL', String) { |v| @params[:ylim] = get_lim(v) } + parsers['scatter'] = parsers['s'] + .on('--canvas VAL', String) { |v| @params[:canvas] = v } + .on('--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } + .on('--ylim VAL', String) { |v| @params[:ylim] = get_lim(v) } + parsers['density'] = parsers['d'] + .on('--grid', TrueClass) { |v| @params[:grid] = v } + .on('--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } + .on('--ylim VAL', String) { |v| @params[:ylim] = get_lim(v) } parsers['boxplot'] = parsers['box'] + .on('--xlim VAL', String) { |v| @params[:xlim] = get_lim(v) } parsers.default = nil main_parser.banner = <<~MSG