module Polisher::GemfileDeps

Public Instance Methods

patched() click to toggle source

Retrieve gems which differ from rubygems.org/other upstream sources

# File lib/polisher/gemfile/deps.rb, line 18
def patched
  vendored.collect do |dep|
    # TODO: right now just handling git based alternate sources,
    # should be able to handle other types bundler supports
    # (path and alternate rubygems src)
    next unless dep.source.is_a?(Bundler::Source::Git)
    src = dep.source

    # retrieve gem
    gem = if src.version
            Polisher::Gem.new(:name => dep.name, :version => src.version)
          else
            Polisher::Gem.retrieve(dep.name)
          end

    # retrieve dep
    git = Polisher::Git::Repo.new :url => src.uri
    git.clone unless git.cloned?
    git.checkout src.ref if src.ref

    # diff gem against git
    gem.diff(git.path)
  end.compact!
end
vendored() click to toggle source

Simply alias for all dependencies in Gemfile

# File lib/polisher/gemfile/deps.rb, line 12
def vendored
  deps + dev_deps
end