Class: Midori::Contrib::File

Inherits:
Object
  • Object
show all
Defined in:
lib/midori-contrib/file.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ File

Init File object

Parameters:

  • args (Array)

    same args like File.new



8
9
10
# File 'lib/midori-contrib/file.rb', line 8

def initialize(*args)
  @file = ::File.new(*args)
end

Instance Method Details

#closeObject

Close the file



50
51
52
# File 'lib/midori-contrib/file.rb', line 50

def close
  @file.close
end

#rawFile

raw file object

Returns:



45
46
47
# File 'lib/midori-contrib/file.rb', line 45

def raw
  @file
end

#readString

read file

Returns:

  • (String)

    string readed



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/midori-contrib/file.rb', line 14

def read
  await(Promise.new do |resolve|
    data = ''
    EventLoop.register(@file, :r) do
      if @file.eof?
        EventLoop.deregister(@file)
        resolve.call(data)
      else
        data << @file.read_nonblock(16384)
      end
    end
  end)
end

#write(data) ⇒ Object

write file

Parameters:

  • data (String)

    string to be written



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/midori-contrib/file.rb', line 30

def write(data)
  await(Promise.new do |resolve|
    written = 0
    EventLoop.register(@file, :w) do
      written += @file.write_nonblock(data[written..-1])
      if written == data.size
        EventLoop.deregister(@file)
        resolve.call(written)
      end
    end
  end)
end