Class: Librarian::Puppet::Dsl::Receiver
- Inherits:
-
Dsl::Receiver
- Object
- Dsl::Receiver
- Librarian::Puppet::Dsl::Receiver
- Defined in:
- lib/librarian/puppet/dsl.rb
Instance Attribute Summary collapse
-
#specfile ⇒ Object
readonly
Returns the value of attribute specfile.
-
#working_path ⇒ Object
readonly
Returns the value of attribute working_path.
Instance Method Summary collapse
-
#metadata ⇒ Object
implement the ‘metadata’ syntax for Puppetfile.
-
#modulefile ⇒ Object
implement the ‘modulefile’ syntax for Puppetfile.
-
#run(specfile = nil) ⇒ Object
save the specfile and call librarian.
Instance Attribute Details
#specfile ⇒ Object (readonly)
Returns the value of attribute specfile.
72 73 74 |
# File 'lib/librarian/puppet/dsl.rb', line 72 def specfile @specfile end |
#working_path ⇒ Object (readonly)
Returns the value of attribute working_path.
72 73 74 |
# File 'lib/librarian/puppet/dsl.rb', line 72 def working_path @working_path end |
Instance Method Details
#metadata ⇒ Object
implement the ‘metadata’ syntax for Puppetfile
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/librarian/puppet/dsl.rb', line 92 def f = working_path.join('metadata.json') unless File.exists?(f) msg = "Metadata file does not exist: #{f}" # try modulefile, in case we don't have a Puppetfile and we are using the default template if File.exists?(modulefile_path) modulefile return else raise Error, msg end end begin json = JSON.parse(File.read(f)) rescue JSON::ParserError => e raise Error, "Unable to parse json file #{f}: #{e}" end dependencyList = json['dependencies'] dependencyList.each do |d| mod(d['name'], d['version_requirement']) end end |
#modulefile ⇒ Object
implement the ‘modulefile’ syntax for Puppetfile
82 83 84 85 86 87 88 89 |
# File 'lib/librarian/puppet/dsl.rb', line 82 def modulefile f = modulefile_path raise Error, "Modulefile file does not exist: #{f}" unless File.exists?(f) File.read(f).lines.each do |line| regexp = /\s*dependency\s+('|")([^'"]+)\1\s*(?:,\s*('|")([^'"]+)\3)?/ regexp =~ line && mod($2, $4) end end |
#run(specfile = nil) ⇒ Object
save the specfile and call librarian
75 76 77 78 79 |
# File 'lib/librarian/puppet/dsl.rb', line 75 def run(specfile = nil) @working_path = specfile.kind_of?(Pathname) ? specfile.parent : Pathname.new(Dir.pwd) @specfile = specfile super end |