From 38b756501f4d1ec7a145787bc01f1e6ab05ee862 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 28 Apr 2016 07:33:43 +0000 Subject: optparse.rb: [DOC] fix example code [ci skip] * lib/optparse.rb: [DOC] fix example code. base on the code by Semyon Gaivoronskiy in [ruby-core:75224]. [Bug #12323] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/optparse.rb | 157 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 79 insertions(+), 78 deletions(-) (limited to 'lib') diff --git a/lib/optparse.rb b/lib/optparse.rb index cc0de23406..5a3ea4e2dd 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -251,7 +251,9 @@ # # class ScriptOptions # attr_accessor :library, :inplace, :encoding, :transfer_type, -# :verbose +# :verbose, :extension, :delay, :time, :record_separator, +# :list +# # def initialize # self.library = [] # self.inplace = false @@ -259,37 +261,21 @@ # self.transfer_type = :auto # self.verbose = false # end -# end -# -# # -# # Return a structure describing the options. -# # -# def self.parse(args) -# # The options specified on the command line will be collected in -# # *options*. -# -# @options = ScriptOptions.new -# option_parser.parse!(args) -# @options -# end # -# attr_reader :parser, :options -# -# def option_parser -# @parser ||= OptionParser.new do |parser| +# def define_options(parser) # parser.banner = "Usage: example.rb [options]" # parser.separator "" # parser.separator "Specific options:" # # # add additional options -# perform_inplace_option -# delay_execution_option -# execute_at_time_option -# specify_record_separator_option -# list_example_option -# specify_encoding_option -# optional_option_argument_with_keyword_completion_option -# boolean_verbose_option +# perform_inplace_option(parser) +# delay_execution_option(parser) +# execute_at_time_option(parser) +# specify_record_separator_option(parser) +# list_example_option(parser) +# specify_encoding_option(parser) +# optional_option_argument_with_keyword_completion_option(parser) +# boolean_verbose_option(parser) # # parser.separator "" # parser.separator "Common options:" @@ -305,80 +291,95 @@ # exit # end # end -# end # -# def perform_inplace_option -# # Specifies an optional option argument -# parser.on("-i", "--inplace [EXTENSION]", -# "Edit ARGV files in place", -# " (make backup if EXTENSION supplied)") do |ext| -# options.inplace = true -# options.extension = ext || '' -# options.extension.sub!(/\A\.?(?=.)/, ".") # Ensure extension begins with dot. +# def perform_inplace_option(parser) +# # Specifies an optional option argument +# parser.on("-i", "--inplace [EXTENSION]", +# "Edit ARGV files in place", +# "(make backup if EXTENSION supplied)") do |ext| +# self.inplace = true +# self.extension = ext || '' +# self.extension.sub!(/\A\.?(?=.)/, ".") # Ensure extension begins with dot. +# end # end -# end # -# def delay_execution_option -# # Cast 'delay' argument to a Float. -# parser.on("--delay N", Float, "Delay N seconds before executing") do |n| -# options.delay = n +# def delay_execution_option(parser) +# # Cast 'delay' argument to a Float. +# parser.on("--delay N", Float, "Delay N seconds before executing") do |n| +# self.delay = n +# end # end -# end # -# def execute_at_time_option -# # Cast 'time' argument to a Time object. -# parser.on("-t", "--time [TIME]", Time, "Begin execution at given time") do |time| -# options.time = time +# def execute_at_time_option(parser) +# # Cast 'time' argument to a Time object. +# parser.on("-t", "--time [TIME]", Time, "Begin execution at given time") do |time| +# self.time = time +# end # end -# end -# # -# def specify_record_separator_option -# # Cast to octal integer. -# parser.on("-F", "--irs [OCTAL]", OptionParser::OctalInteger, -# "Specify record separator (default \\0)") do |rs| -# options.record_separator = rs +# def specify_record_separator_option(parser) +# # Cast to octal integer. +# parser.on("-F", "--irs [OCTAL]", OptionParser::OctalInteger, +# "Specify record separator (default \\0)") do |rs| +# self.record_separator = rs +# end # end -# end # -# def list_example_option -# # List of arguments. -# parser.on("--list x,y,z", Array, "Example 'list' of arguments") do |list| -# options.list = list +# def list_example_option(parser) +# # List of arguments. +# parser.on("--list x,y,z", Array, "Example 'list' of arguments") do |list| +# self.list = list +# end # end -# end # -# def specify_encoding_option -# # Keyword completion. We are specifying a specific set of arguments (CODES -# # and CODE_ALIASES - notice the latter is a Hash), and the user may provide -# # the shortest unambiguous text. -# code_list = (CODE_ALIASES.keys + CODES).join(',') -# parser.on("--code CODE", CODES, CODE_ALIASES, "Select encoding", -# " (#{code_list})") do |encoding| -# options.encoding = encoding +# def specify_encoding_option(parser) +# # Keyword completion. We are specifying a specific set of arguments (CODES +# # and CODE_ALIASES - notice the latter is a Hash), and the user may provide +# # the shortest unambiguous text. +# code_list = (CODE_ALIASES.keys + CODES).join(', ') +# parser.on("--code CODE", CODES, CODE_ALIASES, "Select encoding", +# "(#{code_list})") do |encoding| +# self.encoding = encoding +# end # end -# end # +# def optional_option_argument_with_keyword_completion_option(parser) +# # Optional '--type' option argument with keyword completion. +# parser.on("--type [TYPE]", [:text, :binary, :auto], +# "Select transfer type (text, binary, auto)") do |t| +# self.transfer_type = t +# end +# end # -# def optional_option_argument_with_keyword_completion_option -# # Optional '--type' option argument with keyword completion. -# parser.on("--type [TYPE]", [:text, :binary, :auto], -# "Select transfer type (text, binary, auto)") do |t| -# options.transfer_type = t +# def boolean_verbose_option(parser) +# # Boolean switch. +# parser.on("-v", "--[no-]verbose", "Run verbosely") do |v| +# self.verbose = v +# end # end # end # +# # +# # Return a structure describing the options. +# # +# def parse(args) +# # The options specified on the command line will be collected in +# # *options*. # -# def boolean_verbose_option -# # Boolean switch. -# parser.on("-v", "--[no-]verbose", "Run verbosely") do |v| -# options.verbose = v +# @options = ScriptOptions.new +# @args = OptionParser.new do |parser| +# @options.define_options(parser) +# parser.parse!(args) # end +# @options # end # +# attr_reader :parser, :options # end # class OptparseExample -# options = OptparseExample.parse(ARGV) -# pp options +# +# example = OptparseExample.new +# options = example.parse(ARGV) +# pp options # example.options # pp ARGV # # === Shell Completion -- cgit v1.2.3