Sha256: f48020e952e2c90b2fe9a1122648c86fe6c0792c3fbf65c9abb6616682ed7632

Contents?: true

Size: 774 Bytes

Versions: 1

Compression:

Stored size: 774 Bytes

Contents

require 'pathname'
require 'fileutils'
require 'forwardable'
require 'canals/tools/yaml'

module Canals
  class Config
    extend Forwardable

    def initialize(root = nil)
      @root = root
      @config = load_config(global_config_file)
    end

    def_delegators :@config, :[], :[]=

    def load_config(config_file)
      valid_file = config_file && config_file.exist? && !config_file.size.zero?
      return {} if !valid_file
      return Canals::Tools::YAML.load_file(config_file)
    end

    def save!
      FileUtils.mkdir_p(global_config_file.dirname)
      Canals::Tools::YAML.dump_file(global_config_file, @config)
    end

    private

    def global_config_file
      file = File.join(Dir.home, '.canals/config')
      Pathname.new(file)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
canals-0.9.1 lib/canals/config.rb