Sha256: e40ef29ccb3ffd332077ab1c9669961acbded7bf70a3196073872254c344c2c7

Contents?: true

Size: 1.34 KB

Versions: 19

Compression:

Stored size: 1.34 KB

Contents

module EY
  class DeployConfig
    MIGRATE = 'rake db:migrate --trace'

    def initialize(cli_opts, env_config, repo, ui)
      @cli_opts = cli_opts
      @env_config = env_config
      @repo = repo
      @ui = ui
    end

    def ref
      @ref ||= decide_ref
    end

    def migrate
      @migrate ||= @cli_opts.fetch('migrate') do
        if in_repo?
          @env_config.migrate
        else
          raise RefAndMigrateRequiredOutsideRepo.new(@cli_opts)
        end
      end
    end

    def migrate_command
      return @command if defined? @command

      if migrate
        @command = migrate.respond_to?(:to_str) && migrate.to_str
        @command ||= in_repo? ? @env_config.migration_command : MIGRATE
      else
        @command = nil
      end

      @command
    end

    def verbose
      @cli_opts.fetch('verbose') { in_repo? && @env_config.verbose }
    end

    def extra_config
      @cli_opts.fetch('config', {})
    end

    private

    # passing an app means we assume PWD is not the app.
    def in_repo?
      @cli_opts['app'].nil? || @cli_opts['app'] == ''
    end

    def decide_ref
      ref_decider = EY::DeployConfig::Ref.new(@cli_opts, @env_config, @repo, @ui)
      if in_repo?
        ref_decider.when_inside_repo
      else
        ref_decider.when_outside_repo
      end
    end
  end
end

require 'engineyard/deploy_config/ref'

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
crazy-yard-3.2.2 lib/engineyard/deploy_config.rb
engineyard-3.2.5 lib/engineyard/deploy_config.rb
engineyard-3.2.4 lib/engineyard/deploy_config.rb
engineyard-3.2.3 lib/engineyard/deploy_config.rb
engineyard-4.0.0.pre3 lib/engineyard/deploy_config.rb
engineyard-4.0.0.pre2 lib/engineyard/deploy_config.rb
engineyard-4.0.0.pre1 lib/engineyard/deploy_config.rb
engineyard-3.2.1 lib/engineyard/deploy_config.rb
engineyard-3.2.0 lib/engineyard/deploy_config.rb
engineyard-3.1.3 lib/engineyard/deploy_config.rb
engineyard-3.1.2 lib/engineyard/deploy_config.rb
engineyard-3.1.1 lib/engineyard/deploy_config.rb
engineyard-3.1.0 lib/engineyard/deploy_config.rb
engineyard-3.0.1 lib/engineyard/deploy_config.rb
engineyard-3.0.0 lib/engineyard/deploy_config.rb
engineyard-2.3.3 lib/engineyard/deploy_config.rb
engineyard-2.3.2 lib/engineyard/deploy_config.rb
engineyard-2.3.1 lib/engineyard/deploy_config.rb
engineyard-2.3.0 lib/engineyard/deploy_config.rb