Sha256: 19d8ea1829dbdcf9ae43fcad3750545b91b379d5d8d27e5b29321bc62c544232

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

module Rails4Upgrade
  module Formatters
    class IncompatibleGemsFormatter
      def initialize(incompatible_gems)
        @incompatible_gems = incompatible_gems
      end

      def output(stream = STDOUT)
        incompatibilities = @incompatible_gems.incompatibilities
        if incompatibilities.empty?
          stream.puts colorize(:success, "No gem incompatibilities found")
        else
          incompatibilities.each do |incompatibility|
            stream.puts colorize(:failure, "#{human_readable_dependency_path(incompatibility.path)} depends on #{incompatibility.dependency.name} #{incompatibility.dependency.requirement}")
          end
        end
      end

      private

      def human_readable_dependency_path(path)
        path.map { |dependency| "#{dependency.name} #{dependency.version}" }.join(" -> ")
      end

      def colorize(tag, string)
        case tag
        when :failure
          "\e[31m#{string}\e[0m"
        when :success
          "\e[35m#{string}\e[0m"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails4_upgrade-0.0.1 lib/rails4_upgrade/formatters/incompatible_gems_formatter.rb