Class: MKBrut::Ops::RenderTemplate

Inherits:
BaseOp
  • Object
show all
Defined in:
lib/mkbrut/ops/render_template.rb

Instance Method Summary collapse

Methods inherited from BaseOp

dry_run=, dry_run?, #dry_run?, fileutils_args, #fileutils_args

Constructor Details

#initialize(source, destination_root:, erb_binding:) ⇒ RenderTemplate

Returns a new instance of RenderTemplate.



4
5
6
7
8
# File 'lib/mkbrut/ops/render_template.rb', line 4

def initialize(source, destination_root:, erb_binding:)
  @erb              = source
  @destination_file = destination_root / @erb.basename.sub_ext("")
  @erb_binding      = erb_binding
end

Instance Method Details

#callObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mkbrut/ops/render_template.rb', line 10

def call
  if dry_run?
    puts "Render '#{@destination_file}'"
    return
  end
  template = File.read(@erb)
  File.open(@destination_file, "w") do |file|
    file.puts ERB.new(
      template,
      trim_mode: "-"
    ).result(
      @erb_binding.instance_eval { binding }
    )
  end
end

#to_sObject



25
# File 'lib/mkbrut/ops/render_template.rb', line 25

def to_s = "ERB '#{@erb}' to '#{@destination_file}'"