Module: Teapot::Dependency

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

Defined Under Namespace

Classes: Alias, Chain, Provision

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.chain(selection, dependencies, providers) ⇒ Object



178
179
180
# File 'lib/teapot/dependency.rb', line 178

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

Instance Method Details

#dependenciesObject



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

def dependencies
	@dependencies ||= Set.new
end

#depends(name) ⇒ Object



56
57
58
# File 'lib/teapot/dependency.rb', line 56

def depends(name)
	dependencies << name
end

#depends?(name) ⇒ Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/teapot/dependency.rb', line 60

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

#provides(name_or_aliases, &block) ⇒ Object



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

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

#provides?(name) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/teapot/dependency.rb', line 30

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

#provisionsObject



52
53
54
# File 'lib/teapot/dependency.rb', line 52

def provisions
	@provisions ||= {}
end