Sha256: f32162677db8fe0073bce6389a99239de99883ed73c9da5bbbcbced465f7929c

Contents?: true

Size: 967 Bytes

Versions: 29

Compression:

Stored size: 967 Bytes

Contents

module Gemdiff
  class BundleInspector
    def list
      @list ||= begin
        gems = []
        outdated.split("\n").each do |line|
          next unless (outdated_gem = new_outdated_gem(line))
          gems << outdated_gem
        end
        gems
      end
    end

    def outdated
      @outdated ||= bundle_outdated_strict
    end

    def get(gem_name)
      list.select{ |gem| gem.name == gem_name }.first
    end

  private

    def bundle_outdated_strict
      `bundle outdated --strict`
    end

    def new_outdated_gem(line)
      return nil unless line.start_with?('  * ')
      items = line.split(' ')

      # ["*", "haml", "(4.0.5", ">", "4.0.4)"]
      # ["*", "a_forked_gem", "(0.7.0", "99ddbc9", ">", "0.7.0", "1da2295)"]

      return nil if items[4] == '>' # skip non-gems for now
      old_version = items[4].sub(')', '')
      new_version = items[2].sub('(', '')
      OutdatedGem.new(items[1], old_version, new_version)
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
gemdiff-0.7.9 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.8 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.7 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.6 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.5 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.4 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.3 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.2 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.1 lib/gemdiff/bundle_inspector.rb
gemdiff-0.7.0 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.12 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.11 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.10 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.9 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.8 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.7 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.6 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.5 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.4 lib/gemdiff/bundle_inspector.rb
gemdiff-0.6.3 lib/gemdiff/bundle_inspector.rb