Module: Take::Project::Requirement
- Defined in:
- lib/take/project/requirement.rb,
lib/take/project/requirement/base.rb,
lib/take/project/requirement/header.rb,
lib/take/project/requirement/library.rb,
lib/take/project/requirement/program.rb
Defined Under Namespace
Classes: Base, Header, Library, Program
Class Method Summary
collapse
Class Method Details
.convert(hash, project, &blk) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/take/project/requirement.rb', line 10
def self.convert(hash, project, &blk)
if hash.size > 1
raise ArgumentError, "Cannot use a block for a " \
"multi-requirement!" if block_given?
end
requirements = []
hash.each do |key, value|
requirement_class = lookup(key)
requirement = requirement_class.new(key, value, project,
&blk)
requirements << requirement
end
requirements
end
|
.lookup(name) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/take/project/requirement.rb', line 28
def self.lookup(name)
case name
when :header
when :library
Library
when :program
Program
when Class
name
else
raise ArgumentError, "Unknown requirement #{name.inspect}!"
end
end
|