Class: Babushka::DepDefiner
- Inherits:
-
Object
show all
- Extended by:
- LogHelpers, PathHelpers, RunHelpers, ShellHelpers, VersionOf::Helpers
- Includes:
- AcceptsBlockFor, AcceptsListFor, AcceptsValueFor, LogHelpers, PathHelpers, RunHelpers, ShellHelpers, VersionOf::Helpers
- Defined in:
- lib/babushka/dep_definer.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from LogHelpers
debug, deprecated!, log, log_block, log_error, log_ok, log_stderr, log_warn, removed!
cmd_dir, current_username, log_shell, login_shell, raw_shell, shell, shell!, shell?, shell_cmd, sudo, which
cd, in_build_dir, in_download_dir
Methods included from RunHelpers
_by_babushka, added_by_babushka, babushka_config?, edited_by_babushka, erb_path_for, render_erb
VersionOf
#block_for, #default_block_for, #default_blocks, #has_block?, included, #specific_block_for, #store_block_for
included, #store_value_for, #value_for
included, #list_for, #store_list_for
Constructor Details
#initialize(dep, &block) ⇒ DepDefiner
Returns a new instance of DepDefiner.
25
26
27
28
29
30
31
|
# File 'lib/babushka/dep_definer.rb', line 25
def initialize dep, &block
@dependency = dep
@payload = {}
@block = block
@loaded, @failed = false, false
@current_platform = nil
end
|
Instance Attribute Details
Returns the value of attribute block.
19
20
21
|
# File 'lib/babushka/dep_definer.rb', line 19
def block
@block
end
|
#dependency ⇒ Object
Returns the value of attribute dependency.
19
20
21
|
# File 'lib/babushka/dep_definer.rb', line 19
def dependency
@dependency
end
|
Returns the value of attribute payload.
19
20
21
|
# File 'lib/babushka/dep_definer.rb', line 19
def payload
@payload
end
|
Instance Method Details
22
|
# File 'lib/babushka/dep_definer.rb', line 22
def basename; dependency.basename end
|
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/babushka/dep_definer.rb', line 36
def define!
unless loaded? || failed?
define_elements!
@loaded, @failed = true, false
end
self
rescue StandardError => e
@loaded, @failed = false, true
raise e
end
|
#failed? ⇒ Boolean
34
|
# File 'lib/babushka/dep_definer.rb', line 34
def failed?; @failed end
|
#get_source_location_for(blk) ⇒ Object
64
65
66
67
68
69
70
|
# File 'lib/babushka/dep_definer.rb', line 64
def get_source_location_for blk
if blk.respond_to?(:source_location) blk.source_location
else
blk.inspect.scan(/\#\<Proc\:0x[0-9a-f]+\@([^:]+):(\d+)>/).flatten
end
end
|
#invoke(block_name) ⇒ Object
47
48
49
50
|
# File 'lib/babushka/dep_definer.rb', line 47
def invoke block_name
define! unless loaded?
instance_eval(&send(block_name)) unless failed?
end
|
#load_path ⇒ Object
23
|
# File 'lib/babushka/dep_definer.rb', line 23
def load_path; dependency.load_path end
|
#loaded? ⇒ Boolean
33
|
# File 'lib/babushka/dep_definer.rb', line 33
def loaded?; @loaded end
|
72
73
74
|
# File 'lib/babushka/dep_definer.rb', line 72
def metaclass
class << self; self end
end
|
21
|
# File 'lib/babushka/dep_definer.rb', line 21
def name; dependency.name end
|
#source_location ⇒ Object
56
57
58
|
# File 'lib/babushka/dep_definer.rb', line 56
def source_location
get_source_location_for(block)
end
|
#source_location_for(block_name) ⇒ Object
60
61
62
|
# File 'lib/babushka/dep_definer.rb', line 60
def source_location_for block_name
get_source_location_for send(block_name) if has_block? block_name
end
|
#unmeetable!(message) ⇒ Object
52
53
54
|
# File 'lib/babushka/dep_definer.rb', line 52
def unmeetable! message
raise Babushka::UnmeetableDep, message
end
|