aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-06 09:53:33 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-06 09:53:33 +0000
commit2ad7fb6dc16baee28c3840bce6d43cc6698aaa6c (patch)
tree70f49206112361f5ea0fbf5726c39f2f470e85d0
parentd32763eca0817c92ee0451ee6e08576879317e22 (diff)
downloadruby-2ad7fb6dc16baee28c3840bce6d43cc6698aaa6c.tar.gz
optparse: Suppress warnings
Ruby warns "instance variable `@version` not initialized" for optparse when it receives `--version` option. `test.rb` ```ruby require 'optparse' Version = '1' OptionParser.new.parse(ARGV) ``` ``` $ ruby -w test.rb --version /home/pocke/.rbenv/versions/2.5.1/lib/ruby/2.5.0/optparse.rb:1168: warning: instance variable @version not initialized /home/pocke/.rbenv/versions/2.5.1/lib/ruby/2.5.0/optparse.rb:1175: warning: instance variable @release not initialized test 1 ``` This change will suppress the warnings. [Fix GH-1871] From: Masataka Pocke Kuwabara <kuwabara@pocke.me> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/optparse.rb4
-rw-r--r--test/optparse/test_summary.rb2
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/optparse.rb b/lib/optparse.rb
index 11b122de95..2a2098e256 100644
--- a/lib/optparse.rb
+++ b/lib/optparse.rb
@@ -1165,14 +1165,14 @@ XXX
# Version
#
def version
- @version || (defined?(::Version) && ::Version)
+ (defined?(@version) && @version) || (defined?(::Version) && ::Version)
end
#
# Release code
#
def release
- @release || (defined?(::Release) && ::Release) || (defined?(::RELEASE) && ::RELEASE)
+ (defined?(@release) && @release) || (defined?(::Release) && ::Release) || (defined?(::RELEASE) && ::RELEASE)
end
#
diff --git a/test/optparse/test_summary.rb b/test/optparse/test_summary.rb
index 2f389a3535..67b05672d4 100644
--- a/test/optparse/test_summary.rb
+++ b/test/optparse/test_summary.rb
@@ -48,6 +48,8 @@ class TestOptionParser::SummaryTest < TestOptionParser
def test_ver
o = OptionParser.new("foo bar")
o.program_name = "foo"
+ assert_warning('') {assert_nil(o.version)}
+ assert_warning('') {assert_nil(o.release)}
o.version = [0, 1]
assert_equal "foo 0.1", o.ver
o.release = "rel"