class Terraspace::Compiler::Writer

Public Class Methods

new(mod, options={}) click to toggle source
# File lib/terraspace/compiler/writer.rb, line 6
def initialize(mod, options={})
  @mod, @options = mod, options
  @src_path = options[:src_path]
  @dest_name = options[:dest_name] # override generated name
end

Public Instance Methods

dest_dir() click to toggle source
# File lib/terraspace/compiler/writer.rb, line 24
def dest_dir
  if @mod.is_a?(Terraspace::Mod::Remote)
    File.dirname(@src_path) # for Mod::Remote src is dest
  else
    @mod.cache_dir
  end
end
dest_path() click to toggle source
# File lib/terraspace/compiler/writer.rb, line 12
def dest_path
  name = get_name
  name = basename(name)
  "#{dest_dir}/#{name}"
end
get_name() click to toggle source
# File lib/terraspace/compiler/writer.rb, line 18
def get_name
  return @dest_name if @dest_name
  return @src_path if Terraspace.pass_file?(@src_path)
  @src_path.sub('.rb','.tf.json')
end
write(content) click to toggle source
# File lib/terraspace/compiler/writer.rb, line 32
def write(content)
  FileUtils.mkdir_p(File.dirname(dest_path))
  if content.respond_to?(:path) # IO filehandle
    FileUtils.cp(content.path, dest_path) # preserves permission
  else # just content
    IO.write(dest_path, content)
  end
  logger.debug "Created #{Terraspace::Util.pretty_path(dest_path)}"
end