Class: Perron::Site::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/perron/site/builder.rb,
lib/perron/site/builder/page.rb,
lib/perron/site/builder/feeds.rb,
lib/perron/site/builder/paths.rb,
lib/perron/site/builder/assets.rb,
lib/perron/site/builder/sitemap.rb,
lib/perron/site/builder/feeds/rss.rb,
lib/perron/site/builder/feeds/json.rb,
lib/perron/site/builder/public_files.rb

Defined Under Namespace

Classes: Assets, Feeds, Page, Paths, PublicFiles, Sitemap

Instance Method Summary collapse

Constructor Details

#initializeBuilder



13
14
15
# File 'lib/perron/site/builder.rb', line 13

def initialize
  @output_path = Rails.root.join(Perron.configuration.output)
end

Instance Method Details

#buildObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/perron/site/builder.rb', line 17

def build
  if Perron.configuration.mode.standalone?
    puts "🧹 Cleaning previous build…"

    FileUtils.rm_rf(Dir.glob("#{@output_path}/*"))

    Perron::Site::Builder::Assets.new.prepare
    Perron::Site::Builder::PublicFiles.new.copy
  end

  puts "\n📝 Generating collections…"

  paths.each { render_page(it) }

  Perron::Site::Builder::Sitemap.new(@output_path).generate
  Perron::Site::Builder::Feeds.new(@output_path).generate

  puts "\n✅ Build complete"
end