Class: Thor::Actions::EmptyDirectory

Inherits:
Object
  • Object
show all
Defined in:
lib/thor/actions/empty_directory.rb

Overview

Class which holds create directory logic. This is the base class for other actions like create_file and directory.

This implementation is based in Templater actions, created by Jonas Nicklas and Michael S. Klishin under MIT LICENSE.

Direct Known Subclasses

CreateFile, Directory, InjectIntoFile

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base, destination, config = {}) ⇒ EmptyDirectory

Initializes given the source and destination.

Parameters

base<Thor::Base>

A Thor::Base instance

source<String>

Relative path to the source of this file

destination<String>

Relative path to the destination of this file

config<Hash>

give :verbose => false to not log the status.



35
36
37
38
# File 'lib/thor/actions/empty_directory.rb', line 35

def initialize(base, destination, config={})
  @base, @config   = base, { :verbose => true }.merge(config)
  self.destination = destination
end

Instance Attribute Details

#baseObject (readonly)

:nodoc:



25
26
27
# File 'lib/thor/actions/empty_directory.rb', line 25

def base
  @base
end

#configObject (readonly)

:nodoc:



25
26
27
# File 'lib/thor/actions/empty_directory.rb', line 25

def config
  @config
end

#destinationObject

:nodoc:



25
26
27
# File 'lib/thor/actions/empty_directory.rb', line 25

def destination
  @destination
end

#given_destinationObject (readonly)

:nodoc:



25
26
27
# File 'lib/thor/actions/empty_directory.rb', line 25

def given_destination
  @given_destination
end

#relative_destinationObject (readonly)

:nodoc:



25
26
27
# File 'lib/thor/actions/empty_directory.rb', line 25

def relative_destination
  @relative_destination
end

Instance Method Details

#exists?Boolean

Checks if the destination file already exists.

Returns

Boolean

true if the file exists, false otherwise.



45
46
47
# File 'lib/thor/actions/empty_directory.rb', line 45

def exists?
  ::File.exists?(destination)
end

#invoke!Object



49
50
51
52
53
# File 'lib/thor/actions/empty_directory.rb', line 49

def invoke!
  invoke_with_conflict_check do
    ::FileUtils.mkdir_p(destination)
  end
end

#revoke!Object



55
56
57
58
59
# File 'lib/thor/actions/empty_directory.rb', line 55

def revoke!
  say_status :remove, :red
  ::FileUtils.rm_rf(destination) if !pretend? && exists?
  given_destination
end