Sha256: d1b674da8e1c73aa3c11f9bfd6045d95f08795a1633953564e46f14712953ed5

Contents?: true

Size: 787 Bytes

Versions: 12

Compression:

Stored size: 787 Bytes

Contents

module EY
  class EYRC
    attr_reader :path

    DEFAULT_PATH = "~/.eyrc"

    def self.load
      new(ENV['EYRC'] || DEFAULT_PATH)
    end

    def initialize(path)
      self.path = path
    end

    def exist?
      path.exist?
    end

    def api_token
      self['api_token']
    end

    def api_token=(token)
      self['api_token'] = token
    end

    private

    def path=(p)
      @path = Pathname.new(p).expand_path
    end

    def [](key)
      read_data[key.to_s]
    end

    def []=(key,val)
      merge_and_write(key.to_s => val)
      val
    end

    def read_data
      exist? && YAML.load(path.read) || {}
    end

    def merge_and_write(new_data)
      to_write = read_data.merge(new_data)
      path.open("w") {|f| YAML.dump(to_write, f) }
    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
engineyard-1.4.20 lib/engineyard/eyrc.rb
engineyard-1.4.19 lib/engineyard/eyrc.rb
engineyard-1.4.18 lib/engineyard/eyrc.rb
engineyard-1.4.17 lib/engineyard/eyrc.rb
engineyard-1.4.16 lib/engineyard/eyrc.rb
engineyard-1.4.15 lib/engineyard/eyrc.rb
engineyard-1.4.14 lib/engineyard/eyrc.rb
engineyard-1.4.13 lib/engineyard/eyrc.rb
engineyard-1.4.11 lib/engineyard/eyrc.rb
engineyard-1.4.10 lib/engineyard/eyrc.rb
engineyard-1.4.9 lib/engineyard/eyrc.rb
engineyard-1.4.8 lib/engineyard/eyrc.rb