Class: Topaz::Dependency

Inherits:
Object
  • Object
show all
Defined in:
lib/topaz.rb

Class Method Summary collapse

Class Method Details

.dependency(gem, version = '> 0.0.0', ret = :gem) ⇒ Object

Finds dependencies for a gem. Restrict by version with the ‘version` parameter. If `ret == :gem`, then an array of `Gem::Dependency` objects will be returned. If `ret == :raw`, then an array of arrays will be returned. Each array will have three elements: the name of the gem, its relation to the requirement `>=`, `<`, etc., and the version required (`0.4.1`, et al.)



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/topaz.rb', line 33

def dependency(gem, version = '> 0.0.0', ret = :gem)
	dependencies = []
	source_index = Gem::SourceIndex.from_installed_gems
	speclist = source_index.search(gem, version)
	speclist.each do |spec|
		dependencies << spec.dependencies
	end
	case ret
		when :gem
			dependencies
		when :raw
			raw = []
			dependencies.first.each do |d|
				raw << [d.name, d.version_requirements.requirements[0][0], d.version_requirements.requirements[0][1].to_s]
			end
			raw
	end
end