class Hookit::Resource::Template

Public Class Methods

new(name) click to toggle source
Calls superclass method Hookit::Resource::Base::new
# File lib/hookit/resource/template.rb, line 21
def initialize(name)
  path name unless path
  source "#{::File.basename(name)}.erb"
  super
end

Public Instance Methods

run(action) click to toggle source
# File lib/hookit/resource/template.rb, line 27
def run(action)
  case action
  when :create
    create!
    chown!
    chmod!
  when :create_if_missing
    create_if_missing!
    chown!
    chmod!
  when :delete
    delete!
  when :touch
    touch!
  end
end

Protected Instance Methods

chmod!() click to toggle source
# File lib/hookit/resource/template.rb, line 65
def chmod!
  ::File.chmod(mode, path) if mode
end
chown!() click to toggle source
# File lib/hookit/resource/template.rb, line 60
def chown!
  return unless owner or group
  `chown #{(group.nil?) ? owner : "#{owner}:#{group}"} #{path}`
end
create!() click to toggle source
# File lib/hookit/resource/template.rb, line 46
def create!
  ::File.write path, render
end
create_if_missing!() click to toggle source
# File lib/hookit/resource/template.rb, line 50
def create_if_missing!
  if not ::File.exists? path
    create!
  end
end
delete!() click to toggle source
# File lib/hookit/resource/template.rb, line 56
def delete!
  ::File.delete path
end
module_root() click to toggle source
# File lib/hookit/resource/template.rb, line 81
def module_root
  dict[:module_root]
end
render() click to toggle source
# File lib/hookit/resource/template.rb, line 73
def render
  Tilt.new("#{template_dir}/#{source}").render(self, variables)
end
template_dir() click to toggle source
# File lib/hookit/resource/template.rb, line 77
def template_dir
  "#{module_root}/templates"
end
touch!() click to toggle source
# File lib/hookit/resource/template.rb, line 69
def touch!
  `touch -c #{path}`
end