Class: Dommy::FileList

Inherits:
Object
  • Object
show all
Includes:
Bridge::Methods, Enumerable
Defined in:
lib/dommy/blob.rb

Overview

‘FileList` — immutable, ordered collection of File objects. Returned by `<input type=“file”>#files` and DataTransfer#files.

Spec: w3c.github.io/FileAPI/#filelist-section

Instance Method Summary collapse

Methods included from Bridge::Methods

included

Constructor Details

#initialize(files = []) ⇒ FileList

Returns a new instance of FileList.



152
153
154
# File 'lib/dommy/blob.rb', line 152

def initialize(files = [])
  @files = files.to_a.freeze
end

Instance Method Details

#[](index) ⇒ Object



166
167
168
# File 'lib/dommy/blob.rb', line 166

def [](index)
  item(index)
end

#__js_call__(method, args) ⇒ Object



194
195
196
197
198
199
# File 'lib/dommy/blob.rb', line 194

def __js_call__(method, args)
  case method
  when "item"
    item(args[0])
  end
end

#__js_get__(key) ⇒ Object



183
184
185
186
187
188
189
190
# File 'lib/dommy/blob.rb', line 183

def __js_get__(key)
  case key
  when "length"
    length
  else
    item(key.to_i) if key.is_a?(Integer) || key.to_s.match?(/\A-?\d+\z/)
  end
end

#each(&block) ⇒ Object



170
171
172
173
# File 'lib/dommy/blob.rb', line 170

def each(&block)
  @files.each(&block)
  self
end

#empty?Boolean

Returns:

  • (Boolean)


175
176
177
# File 'lib/dommy/blob.rb', line 175

def empty?
  @files.empty?
end

#item(index) ⇒ Object



162
163
164
# File 'lib/dommy/blob.rb', line 162

def item(index)
  @files[index.to_i]
end

#lengthObject Also known as: size



156
157
158
# File 'lib/dommy/blob.rb', line 156

def length
  @files.length
end

#to_aObject



179
180
181
# File 'lib/dommy/blob.rb', line 179

def to_a
  @files.dup
end