class Souschef::Template::Base

Base class containing reusable functions

Attributes

ots[RW]
path[RW]

Public Class Methods

new(opts) click to toggle source
# File lib/souschef/template/base.rb, line 7
def initialize(opts)
  @opts = opts
  @path = opts[:path]
end

Private Instance Methods

cookbook_file_path(file) click to toggle source

Private - Return path to the file inside cookbook directory

Return String

# File lib/souschef/template/base.rb, line 40
def cookbook_file_path(file)
  File.join(@path, file)
end
create_spec_dir(spec_dir) click to toggle source

Private - Creates spec/ directory if missing

Return nil

# File lib/souschef/template/base.rb, line 63
def create_spec_dir(spec_dir)
  info "Create #{spec_dir} directory"
  Dir.mkdir(spec_dir)
end
datafile_path(file) click to toggle source

Private - Return location of a custom template file if it exists, or return the default version

Return String

# File lib/souschef/template/base.rb, line 18
def datafile_path(file)
  local_profile = "~/.souschef/#{@opts[:profile]}/#{file}"
  profile = File.expand_path(local_profile, __FILE__)

  if File.exist?(profile)
    profile
  else
    p = "../../../../data/#{file}"
    File.expand_path(p, __FILE__)
  end
end
info(msg) click to toggle source

Private - Print out message if verbose option is selected

Return nil

# File lib/souschef/template/base.rb, line 33
def info(msg)
  Souschef::Print.info(msg) if @opts[:verbose]
end
load_erb_file(file) click to toggle source

Private - Load ERB template

file - String file name

Returns String

# File lib/souschef/template/base.rb, line 56
def load_erb_file(file)
  File.read(datafile_path(file))
end
write_file(file, data) click to toggle source

Private - Write data to the desired file

Returns nil

# File lib/souschef/template/base.rb, line 47
def write_file(file, data)
  File.open(file, 'w') { |fd| fd.write(data) }
end