Sha256: 5948ecec0d781ba5f7af46a921c52687edc6637ad689b37dc666d8ec18fc15f4
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
module Hieracles module Interpolate def parse(data, values, interactive = false) data.gsub(/%\{(?:(scope|hiera|literal|alias)\(['"])?(?:::)?([^\}"']*)(?:["']\))?\}/) do |match| if interactive && !values[$2.to_sym] values[$2.to_sym] = ask_about($2) values[$2.to_sym] else values[$2.to_sym] end end end def ask_about(var) @@output.puts @@output.puts "'#{var}' is not defined." @@output.puts "Is it missing in your ENC source?" @@output.puts "Maybe you should define a default value for that scope variable in your config file?" @@output.puts "Do you want to provide a temmporary value? [input value]" @@output.print "#{var} = " @@input.gets.chomp end # makes possible to set input and output def setio(input, output) @@input = input @@output = output end private # defaults to STDIN def input @@input ||= STDIN end # defaults to STDOUT def output @@output ||= STDOUT end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hieracles-0.1.7 | lib/hieracles/interpolate.rb |
hieracles-0.1.6 | lib/hieracles/interpolate.rb |