Class: Charazard::IO

Inherits:
FilterIO
  • Object
show all
Defined in:
lib/charazard/io.rb

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ IO

Returns a new instance of IO.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/charazard/io.rb', line 6

def initialize(io)
  super do |data, state|
    # fix invalid UTF-8 literals
    data = Charazard.fix_invalid_unicode_literals(data)

    # grab another chunk if the last character is a delimiter
    raise FilterIO::NeedMoreData if data =~ /[\r\n]\z/ && !state.eof?
    # normalise line endings to LF
    data = data.gsub /\r\n|\r|\n/, "\n"

    data
  end
end