관리-도구
편집 파일: cdesc-GetoptLong.yaml
--- !ruby/object:RI::ClassDescription attributes: - !ruby/object:RI::Attribute comment: - !ruby/struct:SM::Flow::P body: Examine whether an option processing is failed. name: error rw: R - !ruby/object:RI::Attribute comment: - !ruby/struct:SM::Flow::P body: Return ordering. name: ordering rw: R - !ruby/object:RI::Attribute comment: - !ruby/struct:SM::Flow::P body: Set/Unset `quiet' mode. name: quiet rw: W - !ruby/object:RI::Attribute comment: - !ruby/struct:SM::Flow::P body: Return the flag of `quiet' mode. name: quiet rw: R class_methods: - !ruby/object:RI::MethodSummary name: new comment: - !ruby/struct:SM::Flow::P body: The GetoptLong class allows you to parse command line options similarly to the GNU getopt_long() C library call. Note, however, that GetoptLong is a pure Ruby implementation. - !ruby/struct:SM::Flow::P body: GetoptLong allows for POSIX-style options like <tt>--file</tt> as well as single letter options like <tt>-f</tt> - !ruby/struct:SM::Flow::P body: The empty option <tt>--</tt> (two minus symbols) is used to end option processing. This can be particularly important if options have optional arguments. - !ruby/struct:SM::Flow::P body: "Here is a simple example of usage:" - !ruby/struct:SM::Flow::VERB body: " # == Synopsis\n #\n # hello: greets user, demonstrates command line parsing\n #\n # == Usage\n #\n # hello [OPTION] ... DIR\n #\n # -h, --help:\n # show help\n #\n # --repeat x, -n x:\n # repeat x times\n #\n # --name [name]:\n # greet user by name, if name not supplied default is John\n #\n # DIR: The directory in which to issue the greeting.\n\n require 'getoptlong'\n require 'rdoc/usage'\n\n opts = GetoptLong.new(\n [ '--help', '-h', GetoptLong::NO_ARGUMENT ],\n [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],\n [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]\n )\n\n dir = nil\n name = nil\n repetitions = 1\n opts.each do |opt, arg|\n case opt\n when '--help'\n RDoc::usage\n when '--repeat'\n repetitions = arg.to_i\n when '--name'\n if arg == ''\n name = 'John'\n else\n name = arg\n end\n end\n end\n\n if ARGV.length != 1\n puts "Missing dir argument (try --help)"\n exit 0\n end\n\n dir = ARGV.shift\n\n Dir.chdir(dir)\n for i in (1..repetitions)\n print "Hello"\n if name\n print ", #{name}"\n end\n puts\n end\n" - !ruby/struct:SM::Flow::P body: "Example command line:" - !ruby/struct:SM::Flow::VERB body: " hello -n 6 --name -- /tmp\n" constants: - !ruby/object:RI::Constant comment: - !ruby/struct:SM::Flow::P body: Orderings. name: ORDERINGS value: "[REQUIRE_ORDER = 0, PERMUTE = 1, RETURN_IN_ORDER = 2]" - !ruby/object:RI::Constant comment: - !ruby/struct:SM::Flow::P body: Argument flags. name: ARGUMENT_FLAGS value: "[NO_ARGUMENT = 0, REQUIRED_ARGUMENT = 1, OPTIONAL_ARGUMENT = 2]" - !ruby/object:RI::Constant comment: name: STATUS_TERMINATED value: 0, 1, 2 full_name: GetoptLong includes: [] instance_methods: - !ruby/object:RI::MethodSummary name: each - !ruby/object:RI::MethodSummary name: each_option - !ruby/object:RI::MethodSummary name: error_message - !ruby/object:RI::MethodSummary name: get - !ruby/object:RI::MethodSummary name: get_option - !ruby/object:RI::MethodSummary name: ordering= - !ruby/object:RI::MethodSummary name: set_error - !ruby/object:RI::MethodSummary name: set_options - !ruby/object:RI::MethodSummary name: terminate - !ruby/object:RI::MethodSummary name: terminated? name: GetoptLong superclass: Object