mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/mspec@c25d63d
This commit is contained in:
parent
bbb93608a3
commit
994833085a
3 changed files with 5 additions and 71 deletions
|
@ -65,8 +65,6 @@ end
|
|||
# with any Ruby object). The file descriptor can safely be passed
|
||||
# to IO.new without creating a Ruby object alias to the fd.
|
||||
def new_fd(name, mode="w:utf-8")
|
||||
mode = options_or_mode(mode)
|
||||
|
||||
if mode.kind_of? Hash
|
||||
if mode.key? :mode
|
||||
mode = mode[:mode]
|
||||
|
@ -75,41 +73,15 @@ def new_fd(name, mode="w:utf-8")
|
|||
end
|
||||
end
|
||||
|
||||
IO.sysopen name, fmode(mode)
|
||||
IO.sysopen name, mode
|
||||
end
|
||||
|
||||
# Creates an IO instance for a temporary file name. The file
|
||||
# must be deleted.
|
||||
def new_io(name, mode="w:utf-8")
|
||||
IO.new new_fd(name, options_or_mode(mode)), options_or_mode(mode)
|
||||
IO.new new_fd(name, mode), mode
|
||||
end
|
||||
|
||||
def find_unused_fd
|
||||
Dir.entries("/dev/fd").map(&:to_i).max + 1
|
||||
end
|
||||
|
||||
# This helper simplifies passing file access modes regardless of
|
||||
# whether the :encoding feature is enabled. Only the access specifier
|
||||
# itself will be returned if :encoding is not enabled. Otherwise,
|
||||
# the full mode string will be returned (i.e. the helper is a no-op).
|
||||
def fmode(mode)
|
||||
if FeatureGuard.enabled? :encoding
|
||||
mode
|
||||
else
|
||||
mode.split(':').first
|
||||
end
|
||||
end
|
||||
|
||||
# This helper simplifies passing file access modes or options regardless of
|
||||
# whether the :encoding feature is enabled. Only the access specifier itself
|
||||
# will be returned if :encoding is not enabled. Otherwise, the full mode
|
||||
# string or option will be returned (i.e. the helper is a no-op).
|
||||
def options_or_mode(oom)
|
||||
return fmode(oom) if oom.kind_of? String
|
||||
|
||||
if FeatureGuard.enabled? :encoding
|
||||
oom
|
||||
else
|
||||
fmode(oom[:mode] || "r:utf-8")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -384,7 +384,7 @@ class MSpecOptions
|
|||
def repeat
|
||||
on("-R", "--repeat", "NUMBER",
|
||||
"Repeatedly run an example NUMBER times") do |o|
|
||||
MSpec.repeat = o.to_i
|
||||
MSpec.repeat = Integer(o)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ describe Object, "#new_fd" do
|
|||
fd = new_fd @name
|
||||
fd.should be_kind_of(Integer)
|
||||
|
||||
@io = IO.new fd, fmode('w:utf-8')
|
||||
@io = IO.new fd, 'w:utf-8'
|
||||
@io.sync = true
|
||||
@io.print "io data"
|
||||
|
||||
|
@ -76,7 +76,7 @@ describe Object, "#new_fd" do
|
|||
fd = new_fd @name, { :mode => 'w:utf-8' }
|
||||
fd.should be_kind_of(Integer)
|
||||
|
||||
@io = IO.new fd, fmode('w:utf-8')
|
||||
@io = IO.new fd, 'w:utf-8'
|
||||
@io.sync = true
|
||||
@io.print "io data"
|
||||
|
||||
|
@ -134,41 +134,3 @@ describe Object, "#new_io" do
|
|||
IO.read(@name).should == "io data"
|
||||
end
|
||||
end
|
||||
|
||||
describe Object, "#fmode" do
|
||||
it "returns the argument unmodified if :encoding feature is enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).and_return(true)
|
||||
fmode("rb:binary:utf-8").should == "rb:binary:utf-8"
|
||||
end
|
||||
|
||||
it "returns only the file access mode if :encoding feature is not enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).and_return(false)
|
||||
fmode("rb:binary:utf-8").should == "rb"
|
||||
end
|
||||
end
|
||||
|
||||
describe Object, "#options_or_mode" do
|
||||
describe "if passed a Hash" do
|
||||
it "returns a mode string if :encoding feature is not enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).twice.and_return(false)
|
||||
options_or_mode(:mode => "rb:binary").should == "rb"
|
||||
end
|
||||
|
||||
it "returns a Hash if :encoding feature is enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).and_return(true)
|
||||
options_or_mode(:mode => "rb:utf-8").should == { :mode => "rb:utf-8" }
|
||||
end
|
||||
end
|
||||
|
||||
describe "if passed a String" do
|
||||
it "returns only the file access mode if :encoding feature is not enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).and_return(false)
|
||||
options_or_mode("rb:binary:utf-8").should == "rb"
|
||||
end
|
||||
|
||||
it "returns the argument unmodified if :encoding feature is enabled" do
|
||||
FeatureGuard.should_receive(:enabled?).with(:encoding).and_return(true)
|
||||
options_or_mode("rb:binary:utf-8").should == "rb:binary:utf-8"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue