16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/igniter/contracts/assembly/project_pack.rb', line 16
def install_into(kernel)
kernel.dsl_keywords.register(:project, DslKeyword.new(:project) do |name, from:, builder:, key: nil, dig: nil, default: PathAccess::NO_DEFAULT|
source_name = from.to_sym
path = PathAccess.normalize_path(keyword_name: :project, key: key, dig: dig)
builder.add_operation(
kind: :compute,
name: name,
depends_on: [source_name],
callable: lambda do |**values|
source = values.fetch(source_name)
PathAccess.fetch_path(
source,
path,
source_name: source_name,
keyword_name: :project,
default: default
)
end
)
end)
kernel
end
|