Sha256: 2920b0196c8d58cf84774249864a1e7af9e8fe430067e50f93d632c3df65804d

Contents?: true

Size: 630 Bytes

Versions: 9

Compression:

Stored size: 630 Bytes

Contents

# frozen_string_literal: true

module LB
  module Project
    # Render
    class Render
      def call
        Page.page_registry.each do |name, klass|
          page = klass.new
          File.write(file_for(name), page.call(options(page)))
        end
      end

      def file_for(name)
        File.expand_path("#{name}.html", LB::Project.public_path).tap do |file|
          FileUtils.mkdir_p File.dirname(file)
        end
      end

      def options(page, locals = {})
        {
          context: ::Struct.new(:site, :page).new(LB::Project::Site.new, page),
          locals: locals
        }
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
lb-project-0.3.1 lib/lb/project/render.rb
lb-project-0.3.0 lib/lb/project/render.rb
lb-project-0.2.3 lib/lb/project/render.rb
lb-project-0.2.2 lib/lb/project/render.rb
lb-project-0.2.1 lib/lb/project/render.rb
lb-project-0.2.0 lib/lb/project/render.rb
lb-project-0.1.1 lib/lb/project/render.rb
lb-project-0.1.0 lib/lb/project/render.rb
lb-project-0.0.1 lib/lb/project/render.rb