filter_io 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"