module Polisher::RPM::SpecGemRequirements

Public Instance Methods

build_requirements_for_gem(gem_name) click to toggle source

Return all the BuildRequires for the specified gem

# File lib/polisher/rpm/spec/gem_requirements.rb, line 15
def build_requirements_for_gem(gem_name)
  build_requires.select { |r| r.gem_name == gem_name }
end
extra_gem_build_requirements(gem) click to toggle source

Return all gem build requirements not in the specified gem

# File lib/polisher/rpm/spec/gem_requirements.rb, line 67
def extra_gem_build_requirements(gem)
  gem_reqs = gem.deps.collect { |d| requirements_for_gem(d.name) }.flatten
  gem_build_requirements - gem_reqs
end
extra_gem_requirements(gem) click to toggle source

Return all gem requirements not in the specified gem

# File lib/polisher/rpm/spec/gem_requirements.rb, line 61
def extra_gem_requirements(gem)
  gem_reqs = gem.deps.collect { |d| requirements_for_gem(d.name) }.flatten
  gem_requirements - gem_reqs
end
gem_build_requirements() click to toggle source

Return all gem BuildRequires

# File lib/polisher/rpm/spec/gem_requirements.rb, line 46
def gem_build_requirements
  build_requires.select { |r| r.gem? }
end
gem_requirements() click to toggle source

Return all gem Requires

# File lib/polisher/rpm/spec/gem_requirements.rb, line 41
def gem_requirements
  requires.select { |r| r.gem? }
end
has_all_requirements_for?(gem_dep) click to toggle source

Return bool indicating if this spec specifies all the requirements in the specified gem dependency

@param [Gem::Dependency] gem_dep dependency which to retreive / compare requirements

# File lib/polisher/rpm/spec/gem_requirements.rb, line 24
def has_all_requirements_for?(gem_dep)
  require 'gem2rpm'

  reqs = requirements_for_gem gem_dep.name
  # create a spec requirement dependency for each expanded subrequirement,
  # verify we can find a match for that
  gem_dep.requirement.to_s.split(',').all? do |greq|
    Gem2Rpm::Helpers.expand_requirement([greq.split]).all? do |ereq|
      tereq = Requirement.new :name      => "#{requirement_prefix}(#{gem_dep.name})",
                              :condition => ereq.first,
                              :version   => ereq.last.to_s
      reqs.any? { |req| req.matches?(tereq) }
    end
  end
end
non_gem_build_requirements() click to toggle source

Return all non gem BuildRequires

# File lib/polisher/rpm/spec/gem_requirements.rb, line 56
def non_gem_build_requirements
  build_requires.select { |r| !r.gem? }
end
non_gem_requirements() click to toggle source

Return all non gem Requires

# File lib/polisher/rpm/spec/gem_requirements.rb, line 51
def non_gem_requirements
  requires.select { |r| !r.gem? }
end
requirements_for_gem(gem_name) click to toggle source

Return all the Requires for the specified gem

# File lib/polisher/rpm/spec/gem_requirements.rb, line 10
def requirements_for_gem(gem_name)
  requires.select { |r| r.gem_name == gem_name }
end