Sha256: 34fd32fd7d0abd8b137db573d66296a1a717d121e0b469af9779f5f367dba901

Contents?: true

Size: 514 Bytes

Versions: 9

Compression:

Stored size: 514 Bytes

Contents

require "yaml"

module Cp8Cli
  class ConfigStore
    def initialize(path)
      @path = path
    end

    def [](key)
      data[key]
    end

    def save(key, value)
      data[key] = value
      File.new(path, "w") unless File.exists?(path)
      File.open(path, "w") { |f| f.write(data.to_yaml) }
      value
    end

    private

      attr_reader :path

      def data
        @_data ||= load_data
      end

      def load_data
        YAML.load File.read(path)
      rescue
        {}
      end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cp8_cli-9.0.3 lib/cp8_cli/config_store.rb
cp8_cli-9.0.2 lib/cp8_cli/config_store.rb
cp8_cli-9.0.1 lib/cp8_cli/config_store.rb
cp8_cli-9.0.0 lib/cp8_cli/config_store.rb
cp8_cli-8.2.1 lib/cp8_cli/config_store.rb
cp8_cli-8.2.0 lib/cp8_cli/config_store.rb
cp8_cli-8.1.0 lib/cp8_cli/config_store.rb
cp8_cli-8.0.1 lib/cp8_cli/config_store.rb
cp8_cli-8.0.0 lib/cp8_cli/config_store.rb