зеркало из https://github.com/github/ruby.git
* lib/optparse.rb (Regexp): fix incorrect options when casting to
a Regexp, and suppress encoding option warnings. https://github.com/ruby/ruby/pull/82 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
688d00d23b
Коммит
de1e4881d4
|
@ -1,3 +1,9 @@
|
|||
Mon Jan 16 16:41:53 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* lib/optparse.rb (Regexp): fix incorrect options when casting to
|
||||
a Regexp, and suppress encoding option warnings.
|
||||
https://github.com/ruby/ruby/pull/82
|
||||
|
||||
Mon Jan 16 11:22:38 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* win32/win32.c (rb_chsize): no need to get the current file size.
|
||||
|
|
|
@ -1709,7 +1709,8 @@ XXX
|
|||
f |= Regexp::IGNORECASE if /i/ =~ o
|
||||
f |= Regexp::MULTILINE if /m/ =~ o
|
||||
f |= Regexp::EXTENDED if /x/ =~ o
|
||||
k = o.delete("^imx")
|
||||
k = o.delete("imx")
|
||||
k = nil if k.empty?
|
||||
end
|
||||
Regexp.new(s || all, f, k)
|
||||
end
|
||||
|
|
|
@ -5,6 +5,8 @@ class TestOptionParser::OptArg < TestOptionParser
|
|||
super
|
||||
@opt.def_option("-x[VAL]") {|x| @flag = x}
|
||||
@opt.def_option("--option[=VAL]") {|x| @flag = x}
|
||||
@opt.def_option("--regexp[=REGEXP]", Regexp) {|x| @reopt = x}
|
||||
@reopt = nil
|
||||
end
|
||||
|
||||
def test_short
|
||||
|
|
|
@ -6,10 +6,17 @@ class TestOptionParser < Test::Unit::TestCase
|
|||
@opt = OptionParser.new
|
||||
@flag = self.class # cannot set by option
|
||||
end
|
||||
|
||||
class DummyOutput < String
|
||||
alias write <<
|
||||
end
|
||||
def no_error(*args)
|
||||
$stderr, stderr = DummyOutput.new, $stderr
|
||||
assert_nothing_raised(*args) {return yield}
|
||||
ensure
|
||||
stderr, $stderr = $stderr, stderr
|
||||
$!.backtrace.delete_if {|e| /\A#{Regexp.quote(__FILE__)}:#{__LINE__-2}/o =~ e} if $!
|
||||
assert_empty(stderr)
|
||||
end
|
||||
|
||||
def test_permute
|
||||
|
@ -45,4 +52,14 @@ class TestOptionParser < Test::Unit::TestCase
|
|||
assert_equal(%w"foo -- --help bar", no_error {@opt.order!(%w"foo -- --help bar")})
|
||||
assert_equal(self.class, @flag)
|
||||
end
|
||||
|
||||
def test_regexp
|
||||
return unless defined?(@reopt)
|
||||
assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/")})
|
||||
assert_equal(/foo/, @reopt)
|
||||
assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/i")})
|
||||
assert_equal(/foo/i, @reopt)
|
||||
assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/n")})
|
||||
assert_equal(/foo/n, @reopt)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,7 +6,10 @@ class TestOptionParser::PlaceArg < TestOptionParser
|
|||
@opt.def_option("-x [VAL]") {|x| @flag = x}
|
||||
@opt.def_option("--option [VAL]") {|x| @flag = x}
|
||||
@opt.def_option("-T [level]", /^[0-4]$/, Integer) {|x| @topt = x}
|
||||
@topt = nil
|
||||
@opt.def_option("-n") {}
|
||||
@opt.def_option("--regexp [REGEXP]", Regexp) {|x| @reopt = x}
|
||||
@reopt = nil
|
||||
end
|
||||
|
||||
def test_short
|
||||
|
|
|
@ -7,6 +7,8 @@ module TestOptionParser::ReqArg
|
|||
super
|
||||
@opt.def_option("-xVAL") {|x| @flag = x}
|
||||
@opt.def_option("--option=VAL") {|x| @flag = x}
|
||||
@opt.def_option("--regexp=REGEXP", Regexp) {|x| @reopt = x}
|
||||
@reopt = nil
|
||||
end
|
||||
end
|
||||
class Def2 < TestOptionParser
|
||||
|
|
Загрузка…
Ссылка в новой задаче