Class: Thor::Actions::CreateLink
- Inherits:
-
CreateFile
- Object
- EmptyDirectory
- CreateFile
- Thor::Actions::CreateLink
- Defined in:
- lib/thor/actions/create_link.rb
Overview
CreateLink is a subset of CreateFile, which instead of taking a block of data, just takes a source string from the user.
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
:nodoc:.
Attributes inherited from EmptyDirectory
#base, #config, #destination, #given_destination, #relative_destination
Instance Method Summary collapse
- #exists? ⇒ Boolean
-
#identical? ⇒ Boolean
Checks if the content of the file at the destination is identical to the rendered result.
- #invoke! ⇒ Object
Methods inherited from CreateFile
Methods inherited from EmptyDirectory
Constructor Details
This class inherits a constructor from Thor::Actions::CreateFile
Instance Attribute Details
#data ⇒ Object (readonly)
:nodoc:
28 29 30 |
# File 'lib/thor/actions/create_link.rb', line 28 def data @data end |
Instance Method Details
#exists? ⇒ Boolean
56 57 58 |
# File 'lib/thor/actions/create_link.rb', line 56 def exists? super || File.symlink?(destination) end |
#identical? ⇒ Boolean
Checks if the content of the file at the destination is identical to the rendered result.
Returns
- Boolean
-
true if it is identical, false otherwise.
35 36 37 38 |
# File 'lib/thor/actions/create_link.rb', line 35 def identical? source = File.(render, File.dirname(destination)) exists? && File.identical?(source, destination) end |
#invoke! ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/thor/actions/create_link.rb', line 40 def invoke! invoke_with_conflict_check do require "fileutils" FileUtils.mkdir_p(File.dirname(destination)) # Create a symlink by default config[:symbolic] = true if config[:symbolic].nil? File.unlink(destination) if exists? if config[:symbolic] File.symlink(render, destination) else File.link(render, destination) end end given_destination end |