Sha256: b843c487e9f743e8386651a0f9df4089400e8186d69f7f17d8a0ddda273e421d

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

class ConfigStore
  @@defaults_path = File.join(File.dirname(__FILE__),'../config/defaults.json')
  @@overrides_path = File.expand_path('~/.config/api_deploy_overrides.json')

  def self.defaults_path
    @@defaults_path
  end

  def self.defaults_path=(path)
    @@defaults_path = path
  end

  def self.overrides_path
    @@overrides_path
  end

  def self.overrides_path=(path)
    @@overrides_path = path
  end

  def self.load_config
    warn "ConfigStoreuration overrides file not present at #{overrides_path}" unless File.exists?(overrides_path)
    defaults = Hashie::Mash.new(JSON.parse(File.read(defaults_path))) if File.exists?(defaults_path)
    overrides = JSON.parse(File.read(overrides_path)) if File.exists?(overrides_path)
    defaults.deep_merge(overrides || {})
  end

  class << self
    def teamcity; @@ConfigStore.teamcity; end
    def artifactory; @@ConfigStore.artifactory; end
    def octopus; @@ConfigStore.octopus; end
    def bitbucket; @@ConfigStore.bitbucket; end
  end

  def self.set_config
    @@ConfigStore = self.load_config
  end

  self.set_config
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
api_deploy-0.1.0 lib/config_store.rb