Module: Teapot::Dependency

Included in:
Target
Defined in:
lib/teapot/dependency.rb

Defined Under Namespace

Classes: Alias, Chain, Provision, Resolution, UnresolvedDependencyError

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.chain(selection, dependencies, providers) ⇒ Object

An ‘UnresolvedDependencyError` will be thrown if there are any unresolved dependencies.



231
232
233
234
235
236
237
238
239
# File 'lib/teapot/dependency.rb', line 231

def self.chain(selection, dependencies, providers)
	chain = Chain.new(selection, dependencies, providers)

	if chain.unresolved.size > 0
		raise UnresolvedDependencyError.new(chain)
	end

	return chain
end

Instance Method Details

#dependenciesObject



77
78
79
# File 'lib/teapot/dependency.rb', line 77

def dependencies
	@dependencies ||= Set.new
end

#depends(name) ⇒ Object



69
70
71
# File 'lib/teapot/dependency.rb', line 69

def depends(name)
	dependencies << name
end

#depends?(name) ⇒ Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/teapot/dependency.rb', line 73

def depends?(name)
	dependencies.include? name
end

#priorityObject



43
44
45
# File 'lib/teapot/dependency.rb', line 43

def priority
	@priority || 0
end

#priority=(value) ⇒ Object



39
40
41
# File 'lib/teapot/dependency.rb', line 39

def priority= value
	@priority = value
end

#provides(name_or_aliases, &block) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/teapot/dependency.rb', line 51

def provides(name_or_aliases, &block)
	if String === name_or_aliases || Symbol === name_or_aliases
		name = name_or_aliases
		
		provisions[name] = Provision.new(block)
	else
		aliases = name_or_aliases
		
		aliases.each do |name, dependencies|
			provisions[name] = Alias.new(Array(dependencies))
		end
	end
end

#provides?(name) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/teapot/dependency.rb', line 47

def provides?(name)
	provisions.key? name
end

#provisionsObject



65
66
67
# File 'lib/teapot/dependency.rb', line 65

def provisions
	@provisions ||= {}
end