Sha256: e3f597db76d47b964ec1e799198db804888a2e0732275b8bf335d57b5107ec6e

Contents?: true

Size: 1019 Bytes

Versions: 4

Compression:

Stored size: 1019 Bytes

Contents

# frozen_string_literal: true

require 'tomlrb'

module Archival
  class Config
    attr_reader :pages_dir, :objects_dir, :static_dir, :assets_dirs, :root,
                :build_dir, :helper_port, :dev_mode

    def initialize(config = {})
      @root = config['root'] || Dir.pwd
      manifest = load_manifest
      @pages_dir = config['pages'] || manifest['pages'] || 'pages'
      @objects_dir = config['objects'] || manifest['objects'] || 'objects'
      @build_dir = config['build_dir'] || manifest['build_dir'] || File.join(
        @root, 'dist'
      )
      @helper_port = config['helper_port'] || manifest['helper_port'] || 2701
      @assets_dirs = config['assets_dirs'] || manifest['assets'] || []
      @static_dir = config['static_dir'] || manifest['static'] || 'static'
      @dev_mode = config[:dev_mode] || false
    end

    def load_manifest
      manifest_file = File.join(@root, 'manifest.toml')
      return Tomlrb.load_file(manifest_file) if File.file? manifest_file

      {}
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
archival-0.0.12 lib/archival/config.rb
archival-0.0.11 lib/archival/config.rb
archival-0.0.10 lib/archival/config.rb
archival-0.0.9 lib/archival/config.rb