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