Sha256: 44ca0a81097724f04cc1dc41b2a5569d2040e3e15be5122a35d2de73c987280c

Contents?: true

Size: 712 Bytes

Versions: 7

Compression:

Stored size: 712 Bytes

Contents

require 'singleton'
require 'yaml'
require 'forwardable'
require 'json'

module Dru
  class Config
    extend Forwardable
    include Singleton

    def_delegators :configs, :docker_projects_folder

    DEFAULT = {
      'docker_projects_folder' => "~/.dru" 
    }.freeze

    attr_reader :config_file_path

    def config_file_path=(config_file_path)
      @configs = nil
      @config_file_path = config_file_path
    end

    private

    def configs
      @configs ||= JSON.parse(DEFAULT.merge(user_configs).to_json, object_class: OpenStruct)
    end

    def user_configs
      return {} unless config_file_path && File.file?(config_file_path)
      YAML.load_file(config_file_path) || {}
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dru-0.6.0 lib/dru/config.rb
dru-0.5.2 lib/dru/config.rb
dru-0.5.1 lib/dru/config.rb
dru-0.5.0 lib/dru/config.rb
dru-0.4.0 lib/dru/config.rb
dru-0.3.1 lib/dru/config.rb
dru-0.1.0 lib/dru/config.rb