Sha256: 9b2d17a97152c40c115415ac6d5d34e529e55af7bdb8349b8ba75abf13bb8df8

Contents?: true

Size: 1.13 KB

Versions: 8

Compression:

Stored size: 1.13 KB

Contents

class Fanforce::CLI::Env
  require 'singleton'
  require 'forwardable'
  include Singleton

  def load_vars_by_app(environment)
    vars = {}
    Fanforce::CLI::Apps.dir_names.each do |dir_name|
      vars[dir_name] ||= {}
      vars[dir_name]['FANFORCE_APP_ID'] = Fanforce::CLI::App.parse_dir_name(dir_name)[:_id]
    end

    raw_yaml = File.read("#{$HomeDir}/.env/_bind.yml")
    bindings = (raw_yaml.present?) ? YAML.load(raw_yaml) : {}
    bindings.each do |filename, dir_names|
      file = YAML.load_file("#{$HomeDir}/.env/#{filename}.yml").symbolize_keys
      next if file[environment].blank?

      dir_names = Fanforce::CLI::Apps.dir_names if dir_names.is_a?(String) and dir_names.upcase == 'ALL'
      file[environment].each do |k,v|
        dir_names.each do |dir_name|
          vars[dir_name] ||= {}
          vars[dir_name]["#{filename}_#{k}".upcase] = v
        end
      end
    end

    return vars
  end

  def vars_by_app(environment)
    @vars ||= {}
    @vars[environment] ||= load_vars_by_app(environment)
  end

  class << self
    extend Forwardable
    def_delegators :instance, *Fanforce::CLI::Env.instance_methods(false)
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fanforce-cli-1.7.1 lib/fanforce/cli/env.rb
fanforce-cli-1.7.0 lib/fanforce/cli/env.rb
fanforce-cli-1.6.0 lib/fanforce/cli/env.rb
fanforce-cli-1.5.0 lib/fanforce/cli/env.rb
fanforce-cli-1.4.0 lib/fanforce/cli/env.rb
fanforce-cli-1.3.0 lib/fanforce/cli/env.rb
fanforce-cli-1.2.0 lib/fanforce/cli/env.rb
fanforce-cli-1.1.0 lib/fanforce/cli/env.rb