Sha256: 12161d4f31373a516ef6cb540bae0ba385998d65fd5c1b0a9c1dc76841548859

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

module CF::App
  module Sync
    def apply_changes(app)
      app.memory = megabytes(input[:memory]) if input.has?(:memory)
      app.total_instances = input[:instances] if input.has?(:instances)
      app.command = input[:command] if input.has?(:command)
      app.production = input[:plan].upcase.start_with?("P") if input.has?(:plan)
      app.buildpack = input[:buildpack] if input.has?(:buildpack)
    end

    def display_changes(app)
      return unless app.changed?

      line "Changes:"

      indented do
        app.changes.each do |attr, (old, new)|
          line "#{c(attr, :name)}: #{diff_str(attr, old)} -> #{diff_str(attr, new)}"
        end
      end
    end

    def commit_changes(app)
      if app.changed?
        with_progress("Updating #{c(app.name, :name)}") do
          wrap_message_format_errors do
            app.update!
          end
        end
      end

      if input[:restart] && app.started?
        invoke :restart, :app => app
      end
    end

    private

    def diff_str(attr, val)
      case attr
      when :memory
        human_mb(val)
      when :command, :buildpack
        "'#{val}'"
      when :production
        bool(val)
      else
        val
      end
    end

    def bool(b)
      if b
        c("true", :yes)
      else
        c("false", :no)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cf-0.6.0 lib/cf/cli/app/push/sync.rb
cf-0.6.0.rc8 lib/cf/cli/app/push/sync.rb
cf-0.6.0.rc7 lib/cf/cli/app/push/sync.rb
cf-0.6.0.rc6 lib/cf/cli/app/push/sync.rb
cf-0.6.0.rc5 lib/cf/cli/app/push/sync.rb
cf-0.6.0.rc4 lib/cf/cli/app/push/sync.rb