Sha256: cc7868c0b7b4405e02964105d29e0cec697ea4451f3717cd0da816ea1b44213d

Contents?: true

Size: 953 Bytes

Versions: 14

Compression:

Stored size: 953 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 delete_api_token
      delete('api_token')
    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)
      new_data = read_data.merge(key.to_s => val)
      write_data new_data
      val
    end

    def delete(key)
      data = read_data.dup
      res = data.delete(key)
      write_data data
      res
    end

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

    def write_data(new_data)
      path.open("w") {|f| YAML.dump(new_data, f) }
    end

  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
engineyard-2.0.0.rc1 lib/engineyard/eyrc.rb
engineyard-2.0.0.pre5.1 lib/engineyard/eyrc.rb
engineyard-2.0.0.pre4 lib/engineyard/eyrc.rb
engineyard-2.0.0.pre3 lib/engineyard/eyrc.rb
engineyard-2.0.0.pre2 lib/engineyard/eyrc.rb
engineyard-2.0.0.pre1 lib/engineyard/eyrc.rb
engineyard-1.7.0.pre2 lib/engineyard/eyrc.rb
engineyard-1.4.29 lib/engineyard/eyrc.rb
engineyard-1.4.28 lib/engineyard/eyrc.rb
engineyard-1.4.27 lib/engineyard/eyrc.rb
engineyard-1.4.24 lib/engineyard/eyrc.rb
engineyard-1.4.23 lib/engineyard/eyrc.rb
engineyard-1.4.22 lib/engineyard/eyrc.rb
engineyard-1.4.21 lib/engineyard/eyrc.rb