Skip to content

Commit

Permalink
Merge branch 'jirapong'
Browse files Browse the repository at this point in the history
  • Loading branch information
Shri Borde committed Apr 2, 2009
2 parents c9a26ad + ec7270c commit c71e026
Show file tree
Hide file tree
Showing 11 changed files with 215 additions and 79 deletions.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Expand Up @@ -3,20 +3,33 @@
require 'zlib'

describe 'Zlib::GzipFile#close' do
it 'finishes the stream and closes the io' do
io = StringIO.new
Zlib::GzipWriter.wrap io do |gzio|
gzio.close

gzio.closed?.should == true

lambda { gzio.orig_name }.should \
raise_error(Zlib::GzipFile::Error, 'closed gzip stream')
lambda { gzio.comment }.should \
raise_error(Zlib::GzipFile::Error, 'closed gzip stream')
end
before(:each) do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'closes the GzipFile' do
@gzip_writer.close
@gzip_writer.closed?.should be_true
end

it 'closes the IO object' do
@gzip_writer.close
@io.closed?.should be_true
end

it 'returns the associated IO object' do
@gzip_writer.close.should eql(@io)
end

it 'raises Zlib::GzipFile::Error if called multiple times' do
@gzip_writer.close
lambda { @gzip_writer.close }.should raise_error(Zlib::GzipFile::Error)
end

io.string[10..-1].should == "\003\000\000\000\000\000\000\000\000\000"
it 'raises Zlib::GzipFile::Error if called after Zlib#finish' do
@gzip_writer.finish
lambda { @gzip_writer.close }.should raise_error(Zlib::GzipFile::Error)
end
end

Expand Up @@ -5,23 +5,42 @@
describe 'Zlib::GzipFile#comment' do
before :each do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'is nil by default' do
@gzip_writer.comment.should be_nil
end

it 'returns the name' do
Zlib::GzipWriter.wrap @io do |gzio|
gzio.comment = 'name'
@gzip_writer.comment = 'comment'
@gzip_writer.comment.should == 'comment'
end
end

gzio.comment.should == 'name'
end
describe 'Zlib::GzipFile#comment=' do
before :each do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'returns the argument' do
c = 'comment'
(@gzip_writer.comment = c).should equal(c)
end

it 'raises TypeError if argument is nil' do
lambda { @gzip_writer.comment = nil }.should raise_error(TypeError)
end

it 'raises TypeError if argument is not a String' do
m = mock("comment").should_receive(:to_s).any_number_of_times.and_return("comment")
lambda { @gzip_writer.comment = m }.should raise_error(TypeError)
end

it 'raises an error on a closed stream' do
Zlib::GzipWriter.wrap @io do |gzio|
gzio.close

lambda { gzio.comment }.should \
raise_error(Zlib::GzipFile::Error, 'closed gzip stream')
end
@gzip_writer.close
lambda { @gzip_writer.comment = 'comment' }.should raise_error(Zlib::GzipFile::Error)
end
end

@@ -1 +1,29 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
require 'stringio'
require 'zlib'

describe 'Zlib::GzipFile#finish' do
before(:each) do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'closes the GzipFile' do
@gzip_writer.finish
@gzip_writer.closed?.should be_true
end

it 'does not close the IO object' do
@gzip_writer.finish
@io.closed?.should be_false
end

it 'returns the associated IO object' do
@gzip_writer.finish.should eql(@io)
end

it 'raises Zlib::GzipFile::Error if called multiple times' do
@gzip_writer.finish
lambda { @gzip_writer.finish }.should raise_error(Zlib::GzipFile::Error)
end
end
Expand Up @@ -5,23 +5,42 @@
describe 'Zlib::GzipFile#orig_name' do
before :each do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'is nil by default' do
@gzip_writer.orig_name.should be_nil
end

it 'returns the name' do
Zlib::GzipWriter.wrap @io do |gzio|
gzio.orig_name = 'name'
@gzip_writer.orig_name = 'name'
@gzip_writer.orig_name.should == 'name'
end
end

gzio.orig_name.should == 'name'
end
describe 'Zlib::GzipFile#orig_name=' do
before :each do
@io = StringIO.new
@gzip_writer = Zlib::GzipWriter.new @io
end

it 'returns the argument' do
n = 'name'
(@gzip_writer.orig_name = n).should equal(n)
end

it 'raises TypeError if argument is nil' do
lambda { @gzip_writer.orig_name = nil }.should raise_error(TypeError)
end

it 'raises TypeError if argument is not a String' do
m = mock("name").should_receive(:to_s).any_number_of_times.and_return("name")
lambda { @gzip_writer.orig_name = m }.should raise_error(TypeError)
end

it 'raises an error on a closed stream' do
Zlib::GzipWriter.wrap @io do |gzio|
gzio.close

lambda { gzio.orig_name }.should \
raise_error(Zlib::GzipFile::Error, 'closed gzip stream')
end
@gzip_writer.close
lambda { @gzip_writer.orig_name = 'name' }.should raise_error(Zlib::GzipFile::Error)
end
end

Expand Up @@ -12,6 +12,10 @@
require 'mspec/matchers/equal_element'
require 'mspec/matchers/equal_utf16'
require 'mspec/matchers/match_yaml'
def debugger
require 'mscorlib'
System::Diagnostics::Debugger.break if System::Diagnostics::Debugger.launch
end

# Code to setup HOME directory correctly on Windows
# This duplicates Ruby 1.9 semantics for defining HOME
Expand Down
Expand Up @@ -4344,9 +4344,9 @@ public sealed class BuiltinsLibraryInitializer : IronRuby.Builtins.LibraryInitia
);

module.DefineLibraryMethod("gsub", 0x51,
new System.Func<IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.Builtins.MutableStringOps.ReplaceAll),
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceAll),
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceAll),
new System.Func<IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.Builtins.MutableStringOps.ReplaceAll)
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceAll)
);

module.DefineLibraryMethod("gsub!", 0x51,
Expand Down Expand Up @@ -4507,9 +4507,9 @@ public sealed class BuiltinsLibraryInitializer : IronRuby.Builtins.LibraryInitia
);

module.DefineLibraryMethod("sub", 0x51,
new System.Func<IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.Builtins.MutableStringOps.ReplaceFirst),
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst),
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst),
new System.Func<IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.Builtins.MutableStringOps.ReplaceFirst)
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString, System.Object>(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst)
);

module.DefineLibraryMethod("sub!", 0x51,
Expand Down Expand Up @@ -6881,6 +6881,18 @@ public sealed class ZlibLibraryInitializer : IronRuby.Builtins.LibraryInitialize
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipFile, System.Boolean>(IronRuby.StandardLibrary.Zlib.Zlib.GZipFile.IsClosed)
);

module.DefineLibraryMethod("comment", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipFile, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipFile.Comment)
);

module.DefineLibraryMethod("orig_name", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipFile, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipFile.OriginalName)
);

module.DefineLibraryMethod("original_name", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipFile, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipFile.OriginalName)
);

}

private static void LoadZlib__GzipFile_Class(IronRuby.Builtins.RubyModule/*!*/ module) {
Expand All @@ -6897,25 +6909,17 @@ public sealed class ZlibLibraryInitializer : IronRuby.Builtins.LibraryInitialize

private static void LoadZlib__GzipReader_Instance(IronRuby.Builtins.RubyModule/*!*/ module) {
module.DefineLibraryMethod("close", 0x11,
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Close)
);

module.DefineLibraryMethod("comment", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Comment)
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, System.Object>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Close)
);

module.DefineLibraryMethod("finish", 0x11,
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Close)
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, System.Object>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Finish)
);

module.DefineLibraryMethod("open", 0x12,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.StandardLibrary.Zlib.Zlib.GZipReader>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Open)
);

module.DefineLibraryMethod("original_name", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.OriginalName)
);

module.DefineLibraryMethod("read", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GZipReader, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GZipReader.Read)
);
Expand All @@ -6941,18 +6945,26 @@ public sealed class ZlibLibraryInitializer : IronRuby.Builtins.LibraryInitialize
);

module.DefineLibraryMethod("close", 0x11,
new System.Action<IronRuby.Runtime.UnaryOpStorage, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Close)
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, System.Object>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Close)
);

module.DefineLibraryMethod("comment=", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Comment)
);

module.DefineLibraryMethod("finish", 0x11,
new System.Action<IronRuby.Runtime.UnaryOpStorage, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Close)
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, System.Object>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Finish)
);

module.DefineLibraryMethod("flush", 0x11,
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, System.Object, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Flush),
new System.Func<IronRuby.Runtime.UnaryOpStorage, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, System.Int32, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Flush)
);

module.DefineLibraryMethod("orig_name=", 0x11,
new System.Func<IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.OriginalName)
);

module.DefineLibraryMethod("write", 0x11,
new System.Func<IronRuby.Runtime.ConversionStorage<IronRuby.Builtins.MutableString>, IronRuby.Runtime.RubyContext, IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter, IronRuby.Builtins.MutableString, System.Int32>(IronRuby.StandardLibrary.Zlib.Zlib.GzipWriter.Write)
);
Expand Down

0 comments on commit c71e026

Please sign in to comment.