filter_io 0.1.3 → 0.1.4
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 +1 -1
- data/lib/filter_io.rb +1 -1
- data/test/filter_io_test.rb +18 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/lib/filter_io.rb
CHANGED
@@ -304,7 +304,7 @@ class FilterIO
|
|
304
304
|
|
305
305
|
if data && @block
|
306
306
|
state = BlockState.new @io.pos == data.length, source_eof?
|
307
|
-
args = [data, state]
|
307
|
+
args = [data.dup, state]
|
308
308
|
args = args.first(@block.arity > 0 ? @block.arity : 1)
|
309
309
|
data = @block.call(*args)
|
310
310
|
raise IOError, 'Block returned nil' if data.nil?
|
data/test/filter_io_test.rb
CHANGED
@@ -310,6 +310,24 @@ class FilterIOTest < ActiveSupport::TestCase
|
|
310
310
|
assert_equal expected, io.read
|
311
311
|
end
|
312
312
|
|
313
|
+
test "mutate before NeedMoreData shouldn't affect next block call" do
|
314
|
+
input = "foobar"
|
315
|
+
expected = [
|
316
|
+
['fo', true],
|
317
|
+
['foob', true],
|
318
|
+
['ar', false],
|
319
|
+
]
|
320
|
+
actual = []
|
321
|
+
io = FilterIO.new(StringIO.new(input), :block_size => 2) do |data, state|
|
322
|
+
actual << [data.dup, state.bof?]
|
323
|
+
data.upcase!
|
324
|
+
raise FilterIO::NeedMoreData if data == 'FO'
|
325
|
+
data
|
326
|
+
end
|
327
|
+
assert_equal input.upcase, io.read
|
328
|
+
assert_equal expected, actual
|
329
|
+
end
|
330
|
+
|
313
331
|
test "Symbol#to_proc" do
|
314
332
|
input = 'foo bar'
|
315
333
|
expected = 'FOO BAR'
|
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: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
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-07-
|
18
|
+
date: 2010-07-13 00:00:00 +10:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|