Sha256: 07e45ea4cb33ccc9cafd4ee00767b890725b81eb1c479ef623c842844d73734d

Contents?: true

Size: 931 Bytes

Versions: 5

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

require 'tomlrb'

module Archival
  class Config
    attr_reader :pages_dir, :objects_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'] || []
      @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

5 entries across 5 versions & 1 rubygems

Version Path
archival-0.0.8 lib/archival/config.rb
archival-0.0.7 lib/archival/config.rb
archival-0.0.6 lib/archival/config.rb
archival-0.0.5 lib/archival/config.rb
archival-0.0.4 lib/archival/config.rb