Class: Munge::Conglomerate::Reader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/munge/conglomerate/reader.rb

Overview

Enumerable list of Items

Instance Method Summary collapse

Constructor Details

#initialize(vfs, item_factory) ⇒ Reader

Returns a new instance of Reader.

Parameters:

  • source_path (String)


8
9
10
11
# File 'lib/munge/conglomerate/reader.rb', line 8

def initialize(vfs, item_factory)
  @vfs = vfs
  @item_factory = item_factory
end

Instance Method Details

#each {|Item| ... } ⇒ Enumerator

Yields:

Returns:

  • (Enumerator)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/munge/conglomerate/reader.rb', line 15

def each
  return enum_for(:each) unless block_given?

  filepaths = @vfs.tree

  filepaths.each do |relpath|
    item =
      @item_factory.parse(
        relpath: relpath,
        content: @vfs.read(relpath),
        stat: @vfs.stat(relpath)
      )

    yield item
  end
end