minfra-cli 4.0.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -3
- data/lib/minfra/cli/templater.rb +28 -7
- data/lib/minfra/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea616e6ead0473faae98389aa80a06a829059445d4e2c04c6860b8ab293f557e
|
4
|
+
data.tar.gz: 75e9ef0413aeaf293e69c1e19918dc9cb7179bdb97fac7450fdc8b21bfce3565
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d68c1105544f8f64cc80d46dd4ee534e1e46ce4827c38dbbfc50e503283185ba4c1a15b1287e9e05584fb6a4b5ab34e72bca0a93c8533472cddaeec869dc170e
|
7
|
+
data.tar.gz: f8ee54db259d6afed47ea39c1b1f5ba8af5438c9f063607719028e4360f0f45e15aeeeab53d723e153a147cf1c5c6c5d2e73c428b673e0bc0a23fb41e6b3728b
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
+
# 4.1.1
|
2
|
+
* fix: puts statement removed
|
3
|
+
# 4.1.0
|
4
|
+
* improvement: Minfra::Cli::Templater can now user helper modules
|
1
5
|
# 4.0.0
|
2
|
-
* in apply mode of secrets we prefix the name with the chart name
|
6
|
+
* feature: in apply mode of secrets we prefix the name with the chart name
|
3
7
|
# 3.1.0
|
4
|
-
* overriding backends via MINFRA_HIERA_BACKENDS
|
5
|
-
* overriding Yaml Backend to allow :extension: setting
|
8
|
+
* improvement: overriding backends via MINFRA_HIERA_BACKENDS
|
9
|
+
* improvement: overriding Yaml Backend to allow :extension: setting
|
6
10
|
# 3.0.2
|
7
11
|
* removing complex dns manipulation and hardcoding google servers
|
8
12
|
# 3.0.1
|
data/lib/minfra/cli/templater.rb
CHANGED
@@ -5,6 +5,25 @@ module Minfra
|
|
5
5
|
module Cli
|
6
6
|
# not threadsafe!
|
7
7
|
class Templater
|
8
|
+
class TemplateBinding
|
9
|
+
def _binding
|
10
|
+
@binding ||= binding
|
11
|
+
end
|
12
|
+
end
|
13
|
+
#see https://apidock.com/ruby/v2_5_5/ERB/result_with_hash
|
14
|
+
class ERBPlus < ERB
|
15
|
+
def result_with(hash: {}, helpers: [])
|
16
|
+
b = TemplateBinding.new
|
17
|
+
hash.each_pair do |key, value|
|
18
|
+
b.define_singleton_method(key) do value end
|
19
|
+
end
|
20
|
+
helpers.each do |helper|
|
21
|
+
b.extend helper
|
22
|
+
end
|
23
|
+
result(b._binding)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
8
27
|
def self.read(path, params: {}, fallback: nil)
|
9
28
|
p = Pathname.new(path)
|
10
29
|
if p.exist?
|
@@ -18,11 +37,11 @@ module Minfra
|
|
18
37
|
render(content, params)
|
19
38
|
end
|
20
39
|
|
21
|
-
def self.render(template, params)
|
22
|
-
new(template).render(params)
|
40
|
+
def self.render(template, params, helpers: [])
|
41
|
+
new(template, helpers: ).render(params)
|
23
42
|
end
|
24
43
|
|
25
|
-
def self.template_dir(src, dst, extensions)
|
44
|
+
def self.template_dir(src, dst, extensions, helpers: [], params: {})
|
26
45
|
destination = Pathname.new(dst)
|
27
46
|
destination.mkpath
|
28
47
|
source = Pathname.new(src)
|
@@ -34,7 +53,7 @@ module Minfra
|
|
34
53
|
elsif extensions.include?(File.extname(filename)) # a file
|
35
54
|
# puts("templating: #{filename}")
|
36
55
|
content = File.read(filename)
|
37
|
-
modified_content = Minfra::Cli::Templater.render(content,
|
56
|
+
modified_content = Minfra::Cli::Templater.render(content, params, helpers: )
|
38
57
|
File.write("#{destination}/#{rel_path}", modified_content)
|
39
58
|
else
|
40
59
|
# puts("copying : #{filename}")
|
@@ -43,10 +62,11 @@ module Minfra
|
|
43
62
|
end
|
44
63
|
end
|
45
64
|
|
46
|
-
def initialize(template)
|
47
|
-
@erb =
|
65
|
+
def initialize(template, helpers: [])
|
66
|
+
@erb = ERBPlus.new(template)
|
48
67
|
@check_mode = false
|
49
68
|
@check_missing = []
|
69
|
+
@helpers = helpers
|
50
70
|
end
|
51
71
|
|
52
72
|
def missing?
|
@@ -67,7 +87,7 @@ module Minfra
|
|
67
87
|
end
|
68
88
|
|
69
89
|
def render(params)
|
70
|
-
@erb.
|
90
|
+
@erb.result_with(hash: params, helpers: @helpers)
|
71
91
|
end
|
72
92
|
|
73
93
|
def method_missing(name)
|
@@ -78,6 +98,7 @@ module Minfra
|
|
78
98
|
super
|
79
99
|
end
|
80
100
|
end
|
101
|
+
|
81
102
|
end
|
82
103
|
end
|
83
104
|
end
|
data/lib/minfra/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minfra-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Schrammel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|