Sha256: 43c28b2c2ac1a113c7d9a9a95cc7d3638c8e2ec0398fda6fdb1087f2311fd07f

Contents?: true

Size: 1017 Bytes

Versions: 2

Compression:

Stored size: 1017 Bytes

Contents

# frozen_string_literal: true

require 'yaml'

module Bcupgrade
  class Cask
    def initialize(options, args, config)
      @config   = config
      @options  = options
      @args     = args.uniq
      @outdated = BrewCask.outdated.split(/\n/)
    end

    def upgrade(casks)
      return if @options[:dry_run]

      casks.each do |cask|
        next unless prompt_answer_yes?(cask)

        puts "\n==> Upgrade #{cask}"
        BrewCask.install(cask)
      end
    end

    def upgrade_targets
      if @args.any?
        @args
      else
        exclude_ignored_casks(@outdated)
      end
    end

    private

    def exclude_ignored_casks(casks)
      casks - @config.ignored_casks
    end

    def prompt_answer_yes?(cask)
      input = if @options[:install]
                'y'
              else
                Readline.readline("\nUpgrade #{cask}? [y/n] ")
              end
      if input.casecmp('y').zero? || input.casecmp('yes').zero?
        true
      else
        false
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bcupgrade-0.9.4 lib/bcupgrade/cask.rb
bcupgrade-0.9.3 lib/bcupgrade/cask.rb