Class: Pantograph::Actions::ErbAction
Constant Summary
Pantograph::Action::AVAILABLE_CATEGORIES, Pantograph::Action::RETURN_TYPES
Class Method Summary
collapse
action_name, author, deprecated_notes, lane_context, method_missing, other_action, output, return_type, return_value, sample_return_value, shell_out_should_use_bundle_exec?, step_text
Class Method Details
.authors ⇒ Object
53
54
55
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 53
def self.authors
["hjanuschka"]
end
|
.available_options ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 27
def self.available_options
[
PantographCore::ConfigItem.new(key: :template,
short_option: '-T',
env_name: 'ERB_SRC',
description: 'ERB Template File',
optional: false,
type: String),
PantographCore::ConfigItem.new(key: :destination,
short_option: '-D',
env_name: 'ERB_DST',
description: 'Destination file',
optional: true,
type: String),
PantographCore::ConfigItem.new(key: :placeholders,
short_option: '-p',
env_name: 'ERB_PLACEHOLDERS',
description: 'Placeholders given as a hash',
default_value: {},
is_string: false,
type: Hash)
]
end
|
.category ⇒ Object
79
80
81
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 79
def self.category
:misc
end
|
.description ⇒ Object
16
17
18
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 16
def self.description
'Allows to Generate output files based on ERB templates'
end
|
.details ⇒ Object
20
21
22
23
24
25
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 20
def self.details
[
'Renders an ERB template with `:placeholders` given as a hash via parameter.',
'If no `:destination` is set, it returns the rendered template as string.'
].join("\n")
end
|
.example_code ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 57
def self.example_code
[
'# Example `erb` template:
# Variable1 <%= var1 %>
# Variable2 <%= var2 %>
# <% for item in var3 %>
# <%= item %>
# <% end %>
erb(
template: "1.erb",
destination: "/tmp/rendered.out",
placeholders: {
:var1 => 123,
:var2 => "string",
:var3 => ["element1", "element2"]
}
)'
]
end
|
.is_supported?(platform) ⇒ Boolean
83
84
85
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 83
def self.is_supported?(platform)
true
end
|
.run(params) ⇒ Object
4
5
6
7
8
9
10
|
# File 'pantograph/lib/pantograph/actions/erb.rb', line 4
def self.run(params)
template = File.read(params[:template])
result = ERB.new(template).result(OpenStruct.new(params[:placeholders]).instance_eval { binding })
File.open(params[:destination], 'w') { |file| file.write(result) } if params[:destination]
UI.message("Successfully parsed template: '#{params[:template]}' and rendered output to: #{params[:destination]}") if params[:destination]
result
end
|