Class: RakeFly::TaskLib
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- RakeFly::TaskLib
show all
- Defined in:
- lib/rake_fly/tasklib.rb
Defined Under Namespace
Classes: ParameterDefinition
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(*args, &block) ⇒ TaskLib
Returns a new instance of TaskLib.
39
40
41
42
43
44
45
|
# File 'lib/rake_fly/tasklib.rb', line 39
def initialize(*args, &block)
setup_defaults
process_arguments(args)
process_block(block)
check_required
define
end
|
Class Method Details
.check_required_for(instance) ⇒ Object
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/rake_fly/tasklib.rb', line 27
def check_required_for(instance)
dissatisfied = parameter_definitions.values.reject do |definition|
definition.satisfied_by?(instance)
end
unless dissatisfied.empty?
names = dissatisfied.map(&:name)
raise RequiredParameterUnset,
"Required parameter#{names.length > 1 ? 's' : ''} #{names.join(',')} unset."
end
end
|
.parameter(name, options = {}) ⇒ Object
11
12
13
14
15
16
17
18
19
|
# File 'lib/rake_fly/tasklib.rb', line 11
def parameter(name, options = {})
parameter_definition = ParameterDefinition.new(
name, options[:default], options[:required])
name = parameter_definition.name
attr_accessor(name)
parameter_definitions[name] = parameter_definition
end
|
.parameter_definitions ⇒ Object
7
8
9
|
# File 'lib/rake_fly/tasklib.rb', line 7
def parameter_definitions
@parameter_definitions ||= {}
end
|
.setup_defaults_for(instance) ⇒ Object
21
22
23
24
25
|
# File 'lib/rake_fly/tasklib.rb', line 21
def setup_defaults_for(instance)
parameter_definitions.values.each do |parameter_definition|
parameter_definition.apply_default_to(instance)
end
end
|
Instance Method Details
#check_required ⇒ Object
58
59
60
|
# File 'lib/rake_fly/tasklib.rb', line 58
def check_required
self.class.check_required_for(self)
end
|
#define ⇒ Object
62
63
|
# File 'lib/rake_fly/tasklib.rb', line 62
def define
end
|
#process_arguments(_) ⇒ Object
51
52
|
# File 'lib/rake_fly/tasklib.rb', line 51
def process_arguments(_)
end
|
#process_block(block) ⇒ Object
54
55
56
|
# File 'lib/rake_fly/tasklib.rb', line 54
def process_block(block)
block.call(self) if block
end
|
#setup_defaults ⇒ Object
47
48
49
|
# File 'lib/rake_fly/tasklib.rb', line 47
def setup_defaults
self.class.setup_defaults_for(self)
end
|