filter_io 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/lib/filter_io.rb CHANGED
@@ -43,6 +43,14 @@ class FilterIO
43
43
  @buffer_raw.empty? && @io.eof?
44
44
  end
45
45
 
46
+ def close
47
+ @io.close
48
+ end
49
+
50
+ def closed?
51
+ @io.closed?
52
+ end
53
+
46
54
  def readchar
47
55
  raise EOFError, 'end of file reached' if eof?
48
56
  if @io.respond_to? :external_encoding
@@ -675,4 +675,32 @@ class FilterIOTest < ActiveSupport::TestCase
675
675
 
676
676
  end
677
677
 
678
+ test "close method" do
679
+ [2, 16].each do |block_size|
680
+
681
+ source_io = StringIO.new("foo\nbar\nbaz")
682
+ filtered_io = FilterIO.new(source_io, :block_size => block_size, &:upcase)
683
+
684
+ assert_equal "FOO\n", filtered_io.gets
685
+
686
+ # close the filtered stream
687
+ filtered_io.close
688
+
689
+ # both the filtered and source stream should be closed
690
+ assert_true source_io.closed?
691
+ assert_true filtered_io.closed?
692
+
693
+ # futher reads should raise an error
694
+ assert_raise IOError do
695
+ filtered_io.gets
696
+ end
697
+
698
+ # closing again should raise an error
699
+ assert_raise IOError do
700
+ filtered_io.close
701
+ end
702
+
703
+ end
704
+ end
705
+
678
706
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filter_io
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 1
9
- - 0
10
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
11
10
  platform: ruby
12
11
  authors:
13
12
  - Jason Weathered
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 3
30
28
  segments:
31
29
  - 0
32
30
  version: "0"
@@ -64,7 +62,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
62
  requirements:
65
63
  - - ">="
66
64
  - !ruby/object:Gem::Version
67
- hash: 3
68
65
  segments:
69
66
  - 0
70
67
  version: "0"
@@ -73,7 +70,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
70
  requirements:
74
71
  - - ">="
75
72
  - !ruby/object:Gem::Version
76
- hash: 3
77
73
  segments:
78
74
  - 0
79
75
  version: "0"