Sha256: 39e2c99989800318c8b5d9bd63566f6daab95c426f8bd63e257603890f74a06c

Contents?: true

Size: 907 Bytes

Versions: 38

Compression:

Stored size: 907 Bytes

Contents

module EY
  class EYRC
    attr_reader :path

    DEFAULT_PATH = "~/.eyrc"

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

    def initialize(path)
      @path = Pathname.new(path).expand_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 [](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

38 entries across 38 versions & 2 rubygems

Version Path
crazy-yard-3.2.2 lib/engineyard/eyrc.rb
engineyard-3.2.5 lib/engineyard/eyrc.rb
engineyard-3.2.4 lib/engineyard/eyrc.rb
engineyard-3.2.3 lib/engineyard/eyrc.rb
engineyard-4.0.0.pre3 lib/engineyard/eyrc.rb
engineyard-4.0.0.pre2 lib/engineyard/eyrc.rb
engineyard-4.0.0.pre1 lib/engineyard/eyrc.rb
engineyard-3.2.1 lib/engineyard/eyrc.rb
engineyard-3.2.0 lib/engineyard/eyrc.rb
engineyard-3.1.3 lib/engineyard/eyrc.rb
engineyard-3.1.2 lib/engineyard/eyrc.rb
engineyard-3.1.1 lib/engineyard/eyrc.rb
engineyard-3.1.0 lib/engineyard/eyrc.rb
engineyard-3.0.1 lib/engineyard/eyrc.rb
engineyard-3.0.0 lib/engineyard/eyrc.rb
engineyard-2.3.3 lib/engineyard/eyrc.rb
engineyard-2.3.2 lib/engineyard/eyrc.rb
engineyard-2.3.1 lib/engineyard/eyrc.rb
engineyard-2.3.0 lib/engineyard/eyrc.rb
engineyard-2.2.1 lib/engineyard/eyrc.rb