class SousChef::Resource::Directory

Constants

ACTIONS

Public Class Methods

new(*args) click to toggle source
Calls superclass method SousChef::Resource::Base::new
# File lib/sous_chef/resource/directory.rb, line 6
def initialize(*args)
  action :create
  force false
  super
end

Public Instance Methods

action(action=nil) click to toggle source
# File lib/sous_chef/resource/directory.rb, line 20
def action(action=nil)
  set_or_return(:action, action && validate_action(action))
end
force(forced) click to toggle source
# File lib/sous_chef/resource/directory.rb, line 24
def force(forced)
  @forced = forced
end
forced?() click to toggle source
# File lib/sous_chef/resource/directory.rb, line 28
def forced?
  @forced
end
mode(mode=nil) click to toggle source
# File lib/sous_chef/resource/directory.rb, line 16
def mode(mode=nil)
  set_or_return(:mode, mode)
end
path(path=nil) click to toggle source
# File lib/sous_chef/resource/directory.rb, line 12
def path(path=nil)
  set_or_return(:path, path) || name
end
to_script() click to toggle source
Calls superclass method SousChef::Resource::Base#to_script
# File lib/sous_chef/resource/directory.rb, line 32
def to_script
  @script ||= begin
    setup
    __send__(action)
    [super, mode_command].compact.join("\n")
  end
end

Protected Instance Methods

create() click to toggle source
# File lib/sous_chef/resource/directory.rb, line 41
def create
  command %{mkdir -p #{escape_path(path)}}
end
delete() click to toggle source
# File lib/sous_chef/resource/directory.rb, line 45
def delete
  cmd = forced?? 'rm -rf' : 'rmdir'
  command %{#{cmd} #{escape_path(path)}}
end
mode_command() click to toggle source
# File lib/sous_chef/resource/directory.rb, line 55
def mode_command
  if mode
    sprintf(%{chmod %04o %s}, mode, escape_path(path))
  end
end
validate_action(action) click to toggle source
# File lib/sous_chef/resource/directory.rb, line 50
def validate_action(action)
  return action if ACTIONS.include?(action.to_s)
  raise ArgumentError, "Invalid action #{action}, only #{ACTIONS.join(', ')} allowed"
end