Sha256: 0b71fc1d67570983800a74f90b66acddafd3e106c3adf2d40caafa006c4d5673

Contents?: true

Size: 892 Bytes

Versions: 8

Compression:

Stored size: 892 Bytes

Contents

require 'dep_analyzer'

$a ||= false

class RubygemsAnalyzer < DepAnalyzer
  def setup
    require "rubygems"
    ENV['GEM_PATH'] = `gem env home`
    Gem.clear_paths
  end

  def installed
    # don't cache so it updates every delete
    puts "scanning installed rubygems"
    Gem::Specification.map(&:name).sort
  end

  def outdated
    # don't cache so it updates every delete
    puts "scanning outdated rubygems"
    Gem::Specification.outdated.sort
  end

  def deps gem_name
    gem = Gem::Specification.find_by_name gem_name
    gem.dependencies
  end

  def decorate
    developer_dependency = g.gray

    installed = self.installed

    installed.each do |gem|
      deps = self.deps gem

      deps.each do |dep|
        next if dep.type == :runtime
        name = dep.name
        developer_dependency << g[gem][name] if $a or installed.include? name
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
graph-2.5.1 lib/rubygems_analyzer.rb
graph-2.5.0 lib/rubygems_analyzer.rb
graph-2.4.1 lib/rubygems_analyzer.rb
graph-2.4.0 lib/rubygems_analyzer.rb
graph-2.3.1 lib/rubygems_analyzer.rb
graph-2.3.0 lib/rubygems_analyzer.rb
graph-2.2.0 lib/rubygems_analyzer.rb
graph-2.1.0 lib/rubygems_analyzer.rb