Class: Consult::Template
Instance Attribute Summary collapse
Instance Method Summary
collapse
#indent, #key, #query, #query_nodes, #secret, #secrets, #service, #timestamp, #with
Methods included from Utilities
#resolve
Constructor Details
#initialize(name, config) ⇒ Template
Returns a new instance of Template.
12
13
14
15
|
# File 'lib/consult/template.rb', line 12
def initialize(name, config)
@name = name
@config = config
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
10
11
12
|
# File 'lib/consult/template.rb', line 10
def config
@config
end
|
#name ⇒ Object
Returns the value of attribute name.
10
11
12
|
# File 'lib/consult/template.rb', line 10
def name
@name
end
|
Instance Method Details
#dest ⇒ Object
32
33
34
|
# File 'lib/consult/template.rb', line 32
def dest
resolve @config.fetch(:dest)
end
|
#expired? ⇒ Boolean
40
41
42
43
44
|
# File 'lib/consult/template.rb', line 40
def expired?
return true if !config.key?(:ttl) || !dest.exist?
dest.mtime < (Time.now - @config[:ttl].to_i)
end
|
#path ⇒ Object
28
29
30
|
# File 'lib/consult/template.rb', line 28
def path
resolve @config.fetch(:path)
end
|
#render(save: true) ⇒ Object
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/consult/template.rb', line 17
def render(save: true)
renderer = ERB.new(File.read(path, encoding: 'utf-8'), nil, '-')
result = renderer.result(binding)
File.open(dest, 'w') { |f| f << result } if save
result
rescue StandardError => e
puts "Error rendering template: #{name}"
raise e
end
|
#should_render? ⇒ Boolean
36
37
38
|
# File 'lib/consult/template.rb', line 36
def should_render?
expired?
end
|