Sha256: 99263242380f327aef32b71c1810832abc60f2e2a548ba0e0b1fe645f1ebec3c

Contents?: true

Size: 905 Bytes

Versions: 6

Compression:

Stored size: 905 Bytes

Contents

require 'dep_analyzer'

# :stopdoc:

$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

6 entries across 6 versions & 1 rubygems

Version Path
graph-2.8.0 lib/rubygems_analyzer.rb
graph-2.7.1 lib/rubygems_analyzer.rb
graph-2.7.0 lib/rubygems_analyzer.rb
graph-2.6.0 lib/rubygems_analyzer.rb
graph-2.5.3 lib/rubygems_analyzer.rb
graph-2.5.2 lib/rubygems_analyzer.rb