Class: Librarian::Puppet::Lockfile::Parser
- Inherits:
-
Lockfile::Parser
- Object
- Lockfile::Parser
- Librarian::Puppet::Lockfile::Parser
show all
- Includes:
- Util
- Defined in:
- lib/librarian/puppet/lockfile.rb
Overview
Extend the parser to normalize module names in old .lock files, converting / to -
Instance Method Summary
collapse
Methods included from Util
#clean_uri, #cp_r, #debug, #info, #module_name, #normalize_name, #rsync?, #warn
Instance Method Details
#compile(sources_ast) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/librarian/puppet/lockfile.rb', line 56
def compile(sources_ast)
manifests = compile_placeholder_manifests(sources_ast)
manifests = manifests.map do |name, manifest|
dependencies = manifest.dependencies.map do |d|
environment.dsl_class.dependency_type.new(d.name, d.requirement, manifests[d.name].source, name)
end
real = Manifest.new(manifest.source, manifest.name)
real.version = manifest.version
real.dependencies = manifest.dependencies
real
end
ManifestSet.sort(manifests)
end
|
#compile_placeholder_manifests(sources_ast) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/librarian/puppet/lockfile.rb', line 37
def compile_placeholder_manifests(sources_ast)
manifests = {}
sources_ast.each do |source_ast|
source_type = source_ast[:type]
source = source_type.from_lock_options(environment, source_ast[:options])
source_ast[:manifests].each do |manifest_name, manifest_ast|
manifests[manifest_name] = ManifestPlaceholder.new(
source,
manifest_name,
manifest_ast[:version],
manifest_ast[:dependencies].map do |k, v|
environment.dsl_class.dependency_type.new(k, v, nil, manifest_name)
end
)
end
end
manifests
end
|
#extract_and_parse_dependencies(lines, manifests_index) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/librarian/puppet/lockfile.rb', line 21
def extract_and_parse_dependencies(lines, manifests_index)
class << manifests_index
include Librarian::Puppet::Util
alias_method :old_lookup, :[]
define_method(:[]) { |k| self.old_lookup(normalize_name(k)) }
end
dependencies = []
while lines.first =~ /^ {2}([\w\-\/]+)(?: \((.*)\))?$/
lines.shift
name, requirement = $1, $2.split(/,\s*/)
dependencies << environment.dsl_class.dependency_type.new(name, requirement, manifests_index[name].source, 'lockfile')
end
dependencies
end
|
#extract_and_parse_sources(lines) ⇒ Object
11
12
13
14
15
16
17
18
19
|
# File 'lib/librarian/puppet/lockfile.rb', line 11
def extract_and_parse_sources(lines)
sources = super
sources.each do |source|
source[:manifests] = Hash[source[:manifests].map do |name,manifest|
[normalize_name(name), manifest]
end]
end
sources
end
|