Sha256: ce6b85f7fe11bf72c28f4baded845261306f28661ceb9b63b910004de3dba9a8

Contents?: true

Size: 872 Bytes

Versions: 2

Compression:

Stored size: 872 Bytes

Contents

module SqlMigrations
  class Config
    class << self
      attr_reader :options

      def load!(config_file)
        @options = YAML.load(ERB.new(File.new(config_file).read).result)
      end
    end

    def initialize
      @env = (ENV['ENV'] ||= "development").to_sym
      @options = self.class.options
      @databases = get_databases_from_config
    end

    def databases
      @databases.map do |db|
        db_options = @options[db.to_s][@env.to_s]
        unless db_options
          raise "Configuration for #{db} in environment #{@env} not found !"
        end
        db_options.merge!(name: db)
      end
    end

    private
    def get_databases_from_config
      databases = @options.map { |k, v| k.to_sym }
      unless databases.include?(:default)
        raise "Default database configuration not found !"
      end
      databases
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sql_migrations-2.1.0.pre2 lib/sql_migrations/config.rb
sql_migrations-2.1.0.pre1 lib/sql_migrations/config.rb