Method: CommandLine::OptionParser#initialize
- Defined in:
- lib/commandline/optionparser/optionparser.rb
#initialize(*opts_and_props) {|_self| ... } ⇒ OptionParser
Returns a new instance of OptionParser.
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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/commandline/optionparser/optionparser.rb', line 59 def initialize(*opts_and_props) @posix = false @unknown_options_action = :raise @unknown_options = [] @opt_lookup_by_any_name = {} @command_options = nil # # Formatting defaults # console_width = ENV["COLUMNS"] @columns = if console_width.nil? DEFAULT_CONSOLE_WIDTH elsif console_width < MIN_CONSOLE_WIDTH console_width else console_width - DEFAULT_BODY_INDENT end @body_indent = DEFAULT_BODY_INDENT @tag_paragraph = false @order = :index # | :alpha props = [] keys = {} opts_and_props.flatten! opts_and_props.delete_if { |op| if Symbol === op props << op; true elsif Hash === op keys.update(op); true else false end } props.each { |p| case p when :posix then @posix = true else raise(UnknownPropertyError, "Unknown property '#{p.inspect}'.") end } keys.each { |k,v| case k when :unknown_options_action if [:collect, :ignore, :raise].include?(v) @unknown_options_action = v else raise(UnknownPropertyError, "Unknown value '#{v}' for "+ ":unknown_options property.") end when :command_options @command_options = v @commands = v.keys else raise(UnknownPropertyError, "Unknown property '#{k.inspect}'.") end } # :unknown_options => :collect # :unknown_options => :ignore # :unknown_options => :raise opts = opts_and_props @options = [] opts.each { |opt| # If user wants to parse posix, then ensure all options are posix raise(PosixMismatchError, "Posix types do not match. #{opt.inspect}") if @posix && !opt.posix @options << opt } add_names(@options) yield self if block_given? end |