FileWriterBlueprint
The provided code defines a module `Sublayer` with a nested submodule `Actions`. Inside the `Actions` submodule, a class named `WriteFileAction` is defined, which inherits from a base class `Base`. The purpose of this class is to handle the action of writing content to a file.
The `WriteFileAction` class has an `initialize` method that takes two parameters: `file_contents` and `file_path`. These parameters are used to set instance variables `@file_contents` and `@file_path`.
The class also has a `call` method, which is responsible for opening the file at `@file_path` in write mode (`'w'`). It then writes the contents stored in `@file_contents` to the file. The file is automatically closed after the block is executed.
Noteworthy details include the use of Ruby's block syntax with `File.open`, which ensures that the file is properly closed after the operation, even if an error occurs during the file write process.
module Sublayer
module Actions
class WriteFileAction < Base
def initialize(file_contents:, file_path:)
@file_contents = file_contents
@file_path = file_path
end
def call
File.open(@file_path, 'w') do |file|
file.write(@file_contents)
end
end
end
end
end