Sha256: 4b035507f6d9e26810ee1f47f3a70e7bb0fdae7874dacd86faeec25539bf468e

Contents?: true

Size: 673 Bytes

Versions: 5

Compression:

Stored size: 673 Bytes

Contents

module Flutterby
  class Exporter
    def initialize(root)
      @root = root
    end

    def export!(into:)
      export_node(@root, into: into)
    end

    private

    def export_node(node, into:)
      return unless node.should_publish?

      path = ::File.expand_path(::File.join(into, node.full_name))

      if node.file?
        ::File.write(path, node.render(layout: true))
        logger.info "Exported #{node.url.colorize(:light_white)}"
      else
        FileUtils.mkdir_p(path)
        node.children.each do |child|
          export_node(child, into: path)
        end
      end
    end

    def logger
      @logger ||= Flutterby.logger
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
flutterby-0.6.2 lib/flutterby/exporter.rb
flutterby-0.6.1 lib/flutterby/exporter.rb
flutterby-0.6.0 lib/flutterby/exporter.rb
flutterby-0.5.2 lib/flutterby/exporter.rb
flutterby-0.5.1 lib/flutterby/exporter.rb