Sha256: 656cddba94cab17aafa4a8c76aefcb11148d42d705a07771d65ae2561d7d9f77

Contents?: true

Size: 1.78 KB

Versions: 23

Compression:

Stored size: 1.78 KB

Contents

# coding: utf-8
# frozen_string_literal: true

module Stealth
  module Migrations
    class InternalConfigurationsProxy

      attr_reader :configurations

      def initialize(configurations)
        @configurations = configurations
      end

      def on(config_key)
        if @configurations[config_key] && block_given?
          @configurations[config_key] = yield(@configurations[config_key]) || @configurations[config_key]
        end
        @configurations[config_key]
      end
    end

    class Configurator
      def self.load_configurations
        self.new
        @env_config ||= Rails.application.config.database_configuration
        ActiveRecord::Base.configurations = @env_config
        @env_config
      end

      def self.environments_config
        proxy = InternalConfigurationsProxy.new(load_configurations)
        yield(proxy) if block_given?
      end

      def initialize(options = {})
        default_schema = ENV['SCHEMA'] || ActiveRecord::Tasks::DatabaseTasks.schema_file(ActiveRecord::Base.schema_format)
        defaults = {
          config:       "config/database.yml",
          migrate_dir:  "db/migrate",
          seeds:        "db/seeds.rb",
          schema:       default_schema
        }
        @options = defaults.merge(options)

        Rails.application.config.root = Pathname.pwd
        Rails.application.config.paths["config/database"] = config
      end

      def config
        @options[:config]
      end

      def migrate_dir
        @options[:migrate_dir]
      end

      def seeds
        @options[:seeds]
      end

      def schema
        @options[:schema]
      end

      def config_for_all
        Configurator.load_configurations.dup
      end

      def config_for(environment)
        config_for_all[environment.to_s]
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
stealth-2.0.0.beta7 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta6 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta5 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta4 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta3 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta2 lib/stealth/migrations/configurator.rb
stealth-2.0.0.beta1 lib/stealth/migrations/configurator.rb
stealth-1.1.6 lib/stealth/migrations/configurator.rb
stealth-1.1.5 lib/stealth/migrations/configurator.rb
stealth-1.1.4 lib/stealth/migrations/configurator.rb
stealth-1.1.3 lib/stealth/migrations/configurator.rb
stealth-1.1.2 lib/stealth/migrations/configurator.rb
stealth-1.1.1 lib/stealth/migrations/configurator.rb
stealth-1.1.0 lib/stealth/migrations/configurator.rb
stealth-1.1.0.rc3 lib/stealth/migrations/configurator.rb
stealth-1.1.0.rc2 lib/stealth/migrations/configurator.rb
stealth-1.1.0.rc1 lib/stealth/migrations/configurator.rb
stealth-1.0.4 lib/stealth/migrations/configurator.rb
stealth-1.0.3 lib/stealth/migrations/configurator.rb
stealth-1.0.2 lib/stealth/migrations/configurator.rb