Use single-quoted strings in Ruby implementation.

This commit is contained in:
Renato Silva 2014-12-02 21:11:18 -02:00
parent 6b1b678e2e
commit f700bb7ed2
3 changed files with 31 additions and 31 deletions

View File

@ -1,11 +1,11 @@
Gem::Specification.new do |spec| Gem::Specification.new do |spec|
spec.name = "easyoptions" spec.name = 'easyoptions'
spec.version = "2014.12.2" spec.version = '2014.12.2'
spec.license = "GPLv2" spec.license = 'GPLv2'
spec.author = "Renato Silva" spec.author = 'Renato Silva'
spec.email = "br.renatosilva@gmail.com" spec.email = 'br.renatosilva@gmail.com'
spec.summary = "Easy option parsing" spec.summary = 'Easy option parsing'
spec.homepage = "https://github.com/renatosilva/easyoptions" spec.homepage = 'https://github.com/renatosilva/easyoptions'
spec.files = ["easyoptions.rb"] spec.files = ['easyoptions.rb']
spec.require_paths = ["."] spec.require_paths = ['.']
end end

View File

@ -76,9 +76,9 @@ module EasyOptions
class Option class Option
def initialize(long_version, short_version, boolean=true) def initialize(long_version, short_version, boolean=true)
raise ArgumentError.new("Long version is mandatory") if not long_version or long_version.length < 2 raise ArgumentError.new('Long version is mandatory') if not long_version or long_version.length < 2
@short = short_version.to_sym if short_version @short = short_version.to_sym if short_version
@long = long_version.to_s.gsub("-", "_").to_sym @long = long_version.to_s.gsub('-', '_').to_sym
@boolean = boolean @boolean = boolean
end end
def to_s def to_s
@ -91,7 +91,7 @@ module EasyOptions
string =~ /^--#{long_dashed}=.*$/ string =~ /^--#{long_dashed}=.*$/
end end
def long_dashed def long_dashed
@long.to_s.gsub("_", "-") @long.to_s.gsub('_', '-')
end end
attr_accessor :short attr_accessor :short
attr_accessor :long attr_accessor :long
@ -117,9 +117,9 @@ module EasyOptions
end end
doc = doc.map do |line| doc = doc.map do |line|
line.strip! line.strip!
line.sub!(/^## ?/, "") line.sub!(/^## ?/, '')
line.gsub!(/@script.name/, File.basename($0)) line.gsub!(/@script.name/, File.basename($0))
line.gsub(/@#/, "@") line.gsub(/@#/, '@')
end end
end end
@ -140,7 +140,7 @@ module EasyOptions
# Format arguments input # Format arguments input
raw_arguments = ARGV.map do |argument| raw_arguments = ARGV.map do |argument|
if argument =~ /^-[^-].*$/i then if argument =~ /^-[^-].*$/i then
argument.split("")[1..-1].map { |char| "-#{char}" } argument.split('')[1..-1].map { |char| "-#{char}" }
else else
argument argument
end end
@ -160,7 +160,7 @@ module EasyOptions
# Option with value in next parameter # Option with value in next parameter
elsif known_option.in?(argument) and not known_option.boolean then elsif known_option.in?(argument) and not known_option.boolean then
value = raw_arguments[index + 1] value = raw_arguments[index + 1]
Parser.finish("you must specify a value for #{known_option}") if not value or value.start_with?("-") Parser.finish("you must specify a value for #{known_option}") if not value or value.start_with?('-')
value = value.to_i if value =~ /^[0-9]+$/ value = value.to_i if value =~ /^[0-9]+$/
@options[known_option.long] = value @options[known_option.long] = value
unknown_option = false unknown_option = false
@ -168,7 +168,7 @@ module EasyOptions
# Option with value after equal sign # Option with value after equal sign
elsif known_option.in_with_value?(argument) and not known_option.boolean then elsif known_option.in_with_value?(argument) and not known_option.boolean then
value = argument.split("=")[1] value = argument.split('=')[1]
value = value.to_i if value =~ /^[0-9]+$/ value = value.to_i if value =~ /^[0-9]+$/
@options[known_option.long] = value @options[known_option.long] = value
unknown_option = false unknown_option = false
@ -176,13 +176,13 @@ module EasyOptions
# Long option with unnecessary value # Long option with unnecessary value
elsif known_option.in_with_value?(argument) and known_option.boolean then elsif known_option.in_with_value?(argument) and known_option.boolean then
value = argument.split("=")[1] value = argument.split('=')[1]
Parser.finish("#{known_option} does not accept a value (you specified \"#{value}\")") Parser.finish("#{known_option} does not accept a value (you specified \"#{value}\")")
end end
end end
# Unrecognized option # Unrecognized option
Parser.finish("unrecognized option \"#{argument}\"") if unknown_option and argument.start_with?("-") Parser.finish("unrecognized option \"#{argument}\"") if unknown_option and argument.start_with?('-')
end end
# Help option # Help option
@ -191,7 +191,7 @@ module EasyOptions
print "printf '" print "printf '"
puts @documentation puts @documentation
puts "'" puts "'"
puts "exit" puts 'exit'
else else
puts @documentation puts @documentation
end end
@ -201,7 +201,7 @@ module EasyOptions
# Regular arguments # Regular arguments
next_is_value = false next_is_value = false
raw_arguments.each do |argument| raw_arguments.each do |argument|
if argument.start_with?("-") then if argument.start_with?('-') then
known_option = @known_options.find { |known_option| known_option.in?(argument) } known_option = @known_options.find { |known_option| known_option.in?(argument) }
next_is_value = (known_option and not known_option.boolean) next_is_value = (known_option and not known_option.boolean)
else else
@ -213,9 +213,9 @@ module EasyOptions
# Bash support # Bash support
if BashOutput then if BashOutput then
@options.keys.each do |name| @options.keys.each do |name|
puts "#{name}=\"#{@options[name].to_s.sub("true", "yes")}\"" puts "#{name}=\"#{@options[name].to_s.sub('true', 'yes')}\""
end end
puts "unset arguments" puts 'unset arguments'
arguments.each do |argument| arguments.each do |argument|
puts "arguments+=(\"#{argument}\")" puts "arguments+=(\"#{argument}\")"
end end
@ -224,14 +224,14 @@ module EasyOptions
def self.finish(error) def self.finish(error)
$stderr.puts "Error: #{error}." $stderr.puts "Error: #{error}."
$stderr.puts "See --help for usage and options." $stderr.puts 'See --help for usage and options.'
puts "exit 1" if BashOutput puts 'exit 1' if BashOutput
exit false exit false
end end
def self.check_bash_output def self.check_bash_output
$0 = ENV["from"] || $0 $0 = ENV['from'] || $0
$0 == ENV["from"] $0 == ENV['from']
end end
BashOutput = check_bash_output BashOutput = check_bash_output

View File

@ -21,17 +21,17 @@
## used instead. Short version is not available in this ## used instead. Short version is not available in this
## format. ## format.
require_relative "easyoptions" require_relative 'easyoptions'
options, arguments = EasyOptions.all options, arguments = EasyOptions.all
# Boolean options # Boolean options
puts "Option specified: --some-option" if options[:option] puts 'Option specified: --some-option' if options[:option]
puts "Option specified: --some-boolean" if options[:some_boolean] puts 'Option specified: --some-boolean' if options[:some_boolean]
# Parameter option # Parameter option
value = options[:some_value] value = options[:some_value]
if value if value
type = value.is_a?(Fixnum)? "number" : "string" type = value.is_a?(Fixnum)? 'number' : 'string'
puts "Option specified: --some-value is #{value} (a #{type})" puts "Option specified: --some-value is #{value} (a #{type})"
end end