Class: Nesta::Static::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/nesta/static/site.rb

Instance Method Summary collapse

Constructor Details

#initialize(build_dir, domain, logger = nil) ⇒ Site

Returns a new instance of Site.



8
9
10
11
12
13
14
# File 'lib/nesta/static/site.rb', line 8

def initialize(build_dir, domain, logger = nil)
  @build_dir = build_dir
  @domain = domain
  @logger = logger
  @app = Nesta::App.new
  set_app_root
end

Instance Method Details

#render_atom_feedObject



35
36
37
38
39
40
41
42
# File 'lib/nesta/static/site.rb', line 35

def render_atom_feed
  filename = 'articles.xml'
  path_info = "/#{filename}"
  description = 'Atom feed'
  target = File.join(@build_dir, filename)
  markup = render(path_info, target, description)
  save_markup(target, markup)
end

#render_not_foundObject



27
28
29
30
31
32
33
# File 'lib/nesta/static/site.rb', line 27

def render_not_found
  path_info = '/404'
  source = 'no-such-file.md'
  target = File.join(@build_dir, '404.html')
  markup = render(path_info, target, source, expected_code: 404)
  save_markup(target, markup)
end

#render_pagesObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/nesta/static/site.rb', line 16

def render_pages
  Nesta::Page.find_all.each do |page|
    target = HtmlFile.new(@build_dir, page).filename
    source = page.filename
    task = Rake::FileTask.define_task(target => source) do
      save_markup(target, render(page.abspath, target, source))
    end
    task.invoke
  end
end

#render_sitemapObject



44
45
46
47
# File 'lib/nesta/static/site.rb', line 44

def render_sitemap
  filename = File.join(@build_dir, 'sitemap.xml')
  save_markup(filename, render('/sitemap.xml', filename, 'site'))
end

#render_templated_assetsObject



49
50
51
52
53
54
# File 'lib/nesta/static/site.rb', line 49

def render_templated_assets
  Nesta::Config.build.fetch('templated_assets', []).each do |path|
    filename = File.join(@build_dir, path)
    save_markup(filename, render(path, filename, path))
  end
end