Module: ViteRuby::CLI::FileUtils
- Defined in:
- lib/vite_ruby/cli/file_utils.rb
Overview
NOTE: Extracted from dry-cli version 0.6.0, which later removed this file as it was refactored and extracted into the more complete (and complex) dry-files.
Class Method Summary collapse
-
.append(path, contents) ⇒ Object
private
Adds a new line at the bottom of the file.
-
.cp(source, destination) ⇒ Object
private
Copies source into destination.
-
.inject_line_after(path, target, contents) ⇒ Object
private
Inject
contentsinpathaftertarget. -
.inject_line_after_last(path, target, contents) ⇒ Object
private
Inject
contentsinpathafter lasttarget. -
.inject_line_before(path, target, contents) ⇒ Object
private
Inject
contentsinpathbeforetarget. -
.replace_first_line(path, target, replacement) ⇒ Object
private
Replace first line in
paththat containstargetwithreplacement. -
.write(path, *content) ⇒ Object
private
Creates a new file or rewrites the contents of an existing file.
Class Method Details
.append(path, contents) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Adds a new line at the bottom of the file.
34 35 36 37 38 39 40 41 42 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 34 def append(path, contents) content = read_lines(path) return if content.join.include?(contents) content << "\n" unless content.last&.end_with?("\n") content << "#{contents}\n" write(path, content) end |
.cp(source, destination) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Copies source into destination.
25 26 27 28 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 25 def cp(source, destination) mkdir_p(destination) FileUtils.cp(source, destination) unless File.exist?(destination) end |
.inject_line_after(path, target, contents) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Inject contents in path after target.
67 68 69 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 67 def inject_line_after(path, target, contents) _inject_line_after(path, target, contents, method(:index)) end |
.inject_line_after_last(path, target, contents) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Inject contents in path after last target.
75 76 77 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 75 def inject_line_after_last(path, target, contents) _inject_line_after(path, target, contents, method(:rindex)) end |
.inject_line_before(path, target, contents) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Inject contents in path before target.
59 60 61 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 59 def inject_line_before(path, target, contents) _inject_line_before(path, target, contents, method(:index)) end |
.replace_first_line(path, target, replacement) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Replace first line in path that contains target with replacement.
48 49 50 51 52 53 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 48 def replace_first_line(path, target, replacement) content = read_lines(path) content[index(content, path, target)] = "#{replacement}\n" write(path, content) end |
.write(path, *content) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Creates a new file or rewrites the contents of an existing file.
14 15 16 17 18 19 |
# File 'lib/vite_ruby/cli/file_utils.rb', line 14 def write(path, *content) mkdir_p(path) File.open(path, File::CREAT | File::WRONLY | File::TRUNC) do |file| file.write(Array(content).flatten.join) end end |