Module: Archival

Defined in:
lib/archival.rb,
lib/archival/config.rb,
lib/archival/listen.rb,
lib/archival/logger.rb,
lib/archival/parser.rb,
lib/archival/builder.rb,
lib/archival/version.rb,
lib/archival/helper_server.rb,
lib/archival/template_array.rb,
lib/archival/markdown_renderer.rb

Defined Under Namespace

Classes: Builder, Change, Config, DuplicateKeyError, DuplicateStaticFileError, HelperServer, Logger, MarkdownRenderer, Parser, TemplateArray

Constant Summary collapse

VERSION =
'0.0.12'

Class Method Summary collapse

Class Method Details

.listen(config = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/archival/listen.rb', line 9

def listen(config = {})
  @config = Config.new(config.merge(dev_mode: true))
  builder = Builder.new(@config)
  Logger.benchmark('built') do
    builder.write_all
  end
  ignore = %r{/dist/}
  listener = Listen.to(@config.root,
                       ignore: ignore) do |modified, added, removed|
    changes = {
      pages: [],
      objects: [],
      assets: [],
      layout: [],
      config: []
    }
    add_change = lambda { |file, type|
      c_type = change_type(file)
      changes[c_type] << change(file, type) unless c_type == :none
    }
    added.each do |file|
      add_change.call(file, :added)
    end
    modified.each do |file|
      add_change.call(file, :modified)
    end
    removed.each do |file|
      add_change.call(file, :removed)
    end
    @server.refresh_client if rebuild?(builder, changes)
  end
  listener.start
  serve_helpers
end