Sha256: 8321ce36bf866baea97f0d70c50b1376d0ab64b2f967de7cae1c336e6960b0a3
Contents?: true
Size: 1.65 KB
Versions: 8
Compression:
Stored size: 1.65 KB
Contents
require 'bowser/event_target' require 'promise' module Bowser class FileList include Enumerable def initialize native @native = `#{native} || []` @files = length.times.each_with_object([]) { |index, array| array[index] = File.new(`#@native[index]`) } end def [] index @files[index] end def length `#@native.length` end alias size length def each &block @files.each do |file| block.call file end end def to_a @files.dup # Don't return a value that can mutate our internal state end alias to_ary to_a def to_s @files.to_s end class File attr_reader :data def initialize native @native = native @data = nil end def name `#@native.name` end def size `#@native.size` end def type `#@native.type` end def last_modified `#@native.lastModifiedDate` end def read promise = Promise.new reader = FileReader.new reader.on :load do result = reader.result @data = result promise.resolve result end reader.on :error do promise.reject reader.result end reader.read_as_binary_string self promise end class FileReader include EventTarget def initialize @native = `new FileReader()` end def result `#@native.result` end def read_as_binary_string file `#@native.readAsBinaryString(file.native)` end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems