Module: Nimono::OptionParse::ClassMethods
- Defined in:
- lib/nimono/option_parse.rb
Instance Method Summary collapse
-
#build_options_str(options = {}) ⇒ String
Returns a string representation of the options to be passed in the construction of the CaboCha Paser.
-
#parse_options(options = {}) ⇒ Object
Preparesand returns a hash mapping symbols for the specified, recognized CaboCha options, and their values.
Instance Method Details
#build_options_str(options = {}) ⇒ String
Returns a string representation of the options to be passed in the construction of the CaboCha Paser.
94 95 96 97 98 99 100 101 102 103 |
# File 'lib/nimono/option_parse.rb', line 94 def (={}) opt = [] SUPPORT_OPTS.values.each do |k| if .has_key? k key = k.to_s.gsub('_', '-') opt << "--#{key}=#{[k]}" end end opt.empty? ? '' : opt.join(" ") end |
#parse_options(options = {}) ⇒ Object
Preparesand returns a hash mapping symbols for the specified, recognized CaboCha options, and their values. Will parse and convert string (short or long argument styles) or hash.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/nimono/option_parse.rb', line 40 def (={}) opts = {} if .is_a? String opt = OptionParser.new opt.on('-f', '--output-format=VAL') {|v| opts[:output_format] = v.strip } opt.on('-I', '--input-layer=VAL') {|v| opts[:input_layer] = v.strip } opt.on('-O', '--output-layer=VAL') {|v| opts[:output_layer] = v.strip } opt.on('-n', '--ne=VAL') {|v| opts[:ne] = v.strip } opt.on('-m', '--parser-model=VAL') {|v| opts[:parser_model] = v.strip } opt.on('-M', '--chunker-model=VAL') {|v| opts[:chunker_model] = v.strip } opt.on('-N', '--ne-model=VAL') {|v| opts[:ne_model] = v.strip } opt.on('-P', '--posset=VAL') {|v| opts[:posset] = v.strip } opt.on('-t', '--charset=VAL') {|v| opts[:charset] = v.strip } opt.on('-T', '--charset-file=VAL') {|v| opts[:posset] = v.strip } opt.on('-r', '--rcfile=VAL') {|v| opts[:rcfile] = v.strip } opt.on('-b', '--mecabrc=VAL') {|v| opts[:mecabrc] = v.strip } opt.on('-d', '--mecab-dicdir=VAL') {|v| opts[:posset] = v.strip } opt.on('-u', '--mecab-userdic=VAL') {|v| opts[:posset] = v.strip } opt.on('-o', '--output=VAL') {|v| opts[:output] = v.strip } opt.parse!(.split) else SUPPORT_OPTS.values.each do |k| if .has_key?(k) opts[k] = [k] end end end # validation validate_numeric = ->(name, pattern) { if opts.has_key?(name) if opts[name].is_a?(String) && opts[name] =~ pattern opts[name] = opts[name].to_i elsif opts[name].is_a?(Fixnum) && opts[name].to_s =~ pattern else v = opts[name] name_str = name.id2name.gsub('_', '-') raise CabochaError.new("Invalid option: --#{name_str}=#{v}") end end } validate_numeric.(:output_format, /^[0-4]$/) validate_numeric.(:input_layer, /^[0-3]$/) validate_numeric.(:output_layer, /^[1-4]$/) validate_numeric.(:ne, /^[0-2]$/) opts end |