class Hookit::Resource::HookFile

Public Class Methods

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

Public Instance Methods

run(action) click to toggle source
# File lib/hookit/resource/hook_file.rb, line 20
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/hook_file.rb, line 58
def chmod!
  ::File.chmod(mode, path) if mode
end
chown!() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 53
def chown!
  return unless owner or group
  `chown #{(group.nil?) ? owner : "#{owner}:#{group}"} #{path}`
end
create!() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 39
def create!
  ::File.write path, render
end
create_if_missing!() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 43
def create_if_missing!
  if not ::File.exists? path
    create!
  end
end
delete!() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 49
def delete!
  ::File.delete path
end
file_dir() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 70
def file_dir
  "#{module_root}/files"
end
module_root() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 74
def module_root
  dict[:module_root]
end
render() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 66
def render
  ::File.read("#{file_dir}/#{source}")
end
touch!() click to toggle source
# File lib/hookit/resource/hook_file.rb, line 62
def touch!
  `touch -c #{path}`
end