bychar 1.0.0 → 1.0.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/bychar.gemspec +1 -1
- data/lib/bychar.rb +7 -7
- metadata +2 -2
data/bychar.gemspec
CHANGED
data/lib/bychar.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'stringio'
|
3
3
|
|
4
4
|
module Bychar
|
5
|
-
VERSION = '1.0.
|
5
|
+
VERSION = '1.0.1'
|
6
6
|
|
7
7
|
# Default buffer size is 512k
|
8
8
|
DEFAULT_BUFFER_SIZE = 512 * 1024
|
@@ -19,31 +19,31 @@ module Bychar
|
|
19
19
|
def initialize(with_io, buffer_size = DEFAULT_BUFFER_SIZE)
|
20
20
|
@io = with_io
|
21
21
|
@bufsize = buffer_size
|
22
|
-
|
22
|
+
cache
|
23
23
|
end
|
24
24
|
|
25
25
|
# Will transparently read one byte off the contained IO, maintaining the internal cache.
|
26
26
|
# If the cache has been depleted it will read a big chunk from the IO and cache it and then
|
27
27
|
# return the byte
|
28
28
|
def read_one_byte
|
29
|
-
cache if @buf.
|
29
|
+
cache if @buf.nil? || @buf.eos?
|
30
30
|
|
31
|
-
return nil if @buf.
|
32
|
-
return @buf.
|
31
|
+
return nil if @buf.eos?
|
32
|
+
return @buf.getch
|
33
33
|
end
|
34
34
|
|
35
35
|
# Tells whether all the data has been both read from the passed buffer
|
36
36
|
# and from the internal cache buffer (checks whether there is anything that
|
37
37
|
# can be retreived using read_one_byte)
|
38
38
|
def eof?
|
39
|
-
@buf.
|
39
|
+
(@buf && @buf.eos?) && @io.eof?
|
40
40
|
end
|
41
41
|
|
42
42
|
private
|
43
43
|
|
44
44
|
def cache
|
45
45
|
data = @io.read(@bufsize)
|
46
|
-
@buf =
|
46
|
+
@buf = StringScanner.new(data.to_s) # Make nil become ""
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bychar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -107,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
segments:
|
109
109
|
- 0
|
110
|
-
hash:
|
110
|
+
hash: 1325391043988314358
|
111
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
112
|
none: false
|
113
113
|
requirements:
|