ruby-changes:42734
From: nobu <ko1@a...>
Date: Thu, 28 Apr 2016 15:37:05 +0900 (JST)
Subject: [ruby-changes:42734] nobu:r54808 (trunk): optparse.rb: [DOC] fix example code [ci skip]
nobu 2016-04-28 16:33:43 +0900 (Thu, 28 Apr 2016) New Revision: 54808 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=54808 Log: 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] Modified files: trunk/ChangeLog trunk/lib/optparse.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 54807) +++ ChangeLog (revision 54808) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Thu Apr 28 16:33:41 2016 Nobuyoshi Nakada <nobu@r...> + + * lib/optparse.rb: [DOC] fix example code. base on the code by + Semyon Gaivoronskiy in [ruby-core:75224]. [Bug #12323] + Thu Apr 28 09:33:03 2016 SHIBATA Hiroshi <hsbt@r...> * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.4. Index: lib/optparse.rb =================================================================== --- lib/optparse.rb (revision 54807) +++ lib/optparse.rb (revision 54808) @@ -251,7 +251,9 @@ https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb#L251 # # 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 @@ https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb#L261 # 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 @@ https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb#L291 # 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/