Sha256: afac8cc1db97a374b4c0b8e23f44b4cc2c626f92c59fa86b4e36a1e3a8e2174b

Contents?: true

Size: 1.58 KB

Versions: 4

Compression:

Stored size: 1.58 KB

Contents

require 'json'
require 'yaml'

module Seira
  class Settings
    DEFAULT_CONFIG_PATH = '.seira.yml'.freeze

    attr_reader :config_path

    def initialize(config_path: DEFAULT_CONFIG_PATH)
      @config_path = config_path
    end

    def settings
      return @_settings if defined?(@_settings)
      @_settings = parse_settings
    end

    def organization_id
      settings['seira']['organization_id']
    end

    def applications
      settings['seira']['applications'].map { |app| app['name'] }
    end

    def config_for_app(app_name)
      settings['seira']['applications'].find { |app| app['name'] == app_name }
    end

    def valid_cluster_names
      settings['seira']['clusters'].keys
    end

    def clusters
      settings['seira']['clusters']
    end

    def log_link_format
      settings['seira']['log_link_format']
    end

    def full_cluster_name_for_shorthand(shorthand)
      return shorthand if valid_cluster_names.include?(shorthand)

      # Try iterating through each cluster to find the relevant alias
      clusters.each do |cluster_name, cluster_metadata|
        next if cluster_metadata['aliases'].nil? || cluster_metadata['aliases'].empty?
        return cluster_name if cluster_metadata['aliases'].include?(shorthand)
      end

      nil
    end

    def project_for_cluster(cluster)
      settings['seira']['clusters'][cluster]['project']
    end

    def expected_environment_variable_during_deploys
      settings['seira']['expected_environment_variable_during_deploys']
    end

    private

    def parse_settings
      YAML.load_file(config_path)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
seira-0.5.3 lib/seira/settings.rb
seira-0.5.2 lib/seira/settings.rb
seira-0.5.1 lib/seira/settings.rb
seira-0.5.0 lib/seira/settings.rb