filter_io 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/filter_io.rb +5 -1
- data/test/filter_io_test.rb +21 -5
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/lib/filter_io.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
require 'active_support'
|
2
|
+
require 'active_support/core_ext/string'
|
3
|
+
require 'active_support/core_ext/array'
|
4
|
+
require 'active_support/core_ext/hash'
|
2
5
|
|
3
6
|
class FilterIO
|
4
7
|
|
@@ -269,7 +272,7 @@ class FilterIO
|
|
269
272
|
end
|
270
273
|
|
271
274
|
rescue NeedMoreData => e
|
272
|
-
raise EOFError, 'end of file reached' if eof?
|
275
|
+
raise EOFError, 'end of file reached' if @io.eof?
|
273
276
|
data << @io.read(block_size)
|
274
277
|
retry
|
275
278
|
end
|
@@ -304,6 +307,7 @@ class FilterIO
|
|
304
307
|
args = [data, state]
|
305
308
|
args = args.first(@block.arity > 0 ? @block.arity : 1)
|
306
309
|
data = @block.call(*args)
|
310
|
+
raise IOError, 'Block returned nil' if data.nil?
|
307
311
|
end
|
308
312
|
|
309
313
|
data
|
data/test/filter_io_test.rb
CHANGED
@@ -635,11 +635,20 @@ class FilterIOTest < ActiveSupport::TestCase
|
|
635
635
|
|
636
636
|
test "need more data at eof" do
|
637
637
|
input = "foo"
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
638
|
+
[2,3,6].each do |block_size|
|
639
|
+
[true, false].each do |always|
|
640
|
+
count = 0
|
641
|
+
io = FilterIO.new(StringIO.new(input), :block_size => block_size) do |data, state|
|
642
|
+
count += 1
|
643
|
+
raise FilterIO::NeedMoreData if state.eof? or always
|
644
|
+
data
|
645
|
+
end
|
646
|
+
assert_raise EOFError do
|
647
|
+
io.readline
|
648
|
+
end
|
649
|
+
expected_count = block_size < input.size ? 2 : 1
|
650
|
+
assert_equal expected_count, count
|
651
|
+
end
|
643
652
|
end
|
644
653
|
end
|
645
654
|
|
@@ -715,4 +724,11 @@ class FilterIOTest < ActiveSupport::TestCase
|
|
715
724
|
end
|
716
725
|
end
|
717
726
|
|
727
|
+
test "should raise IO error if block returns nil" do
|
728
|
+
io = FilterIO.new(StringIO.new("foo")) { |data| nil }
|
729
|
+
assert_raise IOError do
|
730
|
+
io.read.to_a
|
731
|
+
end
|
732
|
+
end
|
733
|
+
|
718
734
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filter_io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jason Weathered
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-07-12 00:00:00 +10:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|