Class: Babushka::DepDefiner
- Inherits:
-
Object
show all
- Extended by:
- LogHelpers, PathHelpers, Prompt::Helpers, RunHelpers, ShellHelpers, Vars::Helpers, VersionOf::Helpers
- Includes:
- AcceptsBlockFor, AcceptsListFor, AcceptsValueFor, LogHelpers, PathHelpers, Prompt::Helpers, RunHelpers, ShellHelpers, Vars::Helpers, 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, append_to_file, babushka_config?, bundle_rake, change_line, change_with_sed, check_file, edited_by_babushka, erb_path_for, grep, hostname, insert_into_file, log_and_open, mysql, rake, render_erb, yaml
confirm
VersionOf
define_var, merge, print_var_deprecation_for, set, var
#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.
30
31
32
33
34
35
36
|
# File 'lib/babushka/dep_definer.rb', line 30
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.
21
22
23
|
# File 'lib/babushka/dep_definer.rb', line 21
def block
@block
end
|
#dependency ⇒ Object
Returns the value of attribute dependency.
21
22
23
|
# File 'lib/babushka/dep_definer.rb', line 21
def dependency
@dependency
end
|
Returns the value of attribute payload.
21
22
23
|
# File 'lib/babushka/dep_definer.rb', line 21
def payload
@payload
end
|
Instance Method Details
24
|
# File 'lib/babushka/dep_definer.rb', line 24
def basename; dependency.basename end
|
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/babushka/dep_definer.rb', line 41
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
39
|
# File 'lib/babushka/dep_definer.rb', line 39
def failed?; @failed end
|
#get_source_location_for(blk) ⇒ Object
87
88
89
90
91
92
93
|
# File 'lib/babushka/dep_definer.rb', line 87
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(task_name) ⇒ Object
52
53
54
55
|
# File 'lib/babushka/dep_definer.rb', line 52
def invoke task_name
define! unless loaded?
instance_eval(&send(task_name)) unless failed?
end
|
#load_path ⇒ Object
25
|
# File 'lib/babushka/dep_definer.rb', line 25
def load_path; dependency.load_path end
|
#loaded? ⇒ Boolean
38
|
# File 'lib/babushka/dep_definer.rb', line 38
def loaded?; @loaded end
|
#met(message) ⇒ Object
63
64
65
|
# File 'lib/babushka/dep_definer.rb', line 63
def met message
removed! :instead => "a truthy return value from met?{} (maybe using #log_ok)"
end
|
23
|
# File 'lib/babushka/dep_definer.rb', line 23
def name; dependency.name end
|
#result(message, opts = {}) ⇒ Object
57
58
59
60
61
|
# File 'lib/babushka/dep_definer.rb', line 57
def result message, opts = {}
opts[:result].tap {
dependency.result_message = message
}
end
|
#source_location ⇒ Object
79
80
81
|
# File 'lib/babushka/dep_definer.rb', line 79
def source_location
get_source_location_for(block)
end
|
#source_location_for(block_name) ⇒ Object
83
84
85
|
# File 'lib/babushka/dep_definer.rb', line 83
def source_location_for block_name
get_source_location_for send(block_name) if has_block? block_name
end
|
#unmeetable(message) ⇒ Object
71
72
73
|
# File 'lib/babushka/dep_definer.rb', line 71
def unmeetable message
removed! :instead => "#unmeetable!"
end
|
#unmeetable!(message) ⇒ Object
75
76
77
|
# File 'lib/babushka/dep_definer.rb', line 75
def unmeetable! message
raise Babushka::UnmeetableDep, message
end
|
#unmet(message) ⇒ Object
67
68
69
|
# File 'lib/babushka/dep_definer.rb', line 67
def unmet message
removed! :instead => "a falsey return value from met?{} (maybe using #log)"
end
|