Class: Assistant::RbsGenerator::Writer
- Inherits:
-
Object
- Object
- Assistant::RbsGenerator::Writer
- Defined in:
- lib/assistant/rbs_generator/writer.rb
Overview
File-writing layer with marker-aware idempotency.
Instance Method Summary collapse
-
#initialize(output_dir:, quiet: false, stdout: $stdout, stderr: $stderr) ⇒ Writer
constructor
A new instance of Writer.
-
#write(service_class, contents) ⇒ Object
Returns one of :written, :unchanged, :skipped.
Constructor Details
#initialize(output_dir:, quiet: false, stdout: $stdout, stderr: $stderr) ⇒ Writer
Returns a new instance of Writer.
8 9 10 11 12 13 |
# File 'lib/assistant/rbs_generator/writer.rb', line 8 def initialize(output_dir:, quiet: false, stdout: $stdout, stderr: $stderr) @output_dir = output_dir @quiet = quiet @stdout = stdout @stderr = stderr end |
Instance Method Details
#write(service_class, contents) ⇒ Object
Returns one of :written, :unchanged, :skipped.
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/assistant/rbs_generator/writer.rb', line 16 def write(service_class, contents) target = path_for(service_class) return skip!(target) if exists_without_marker?(target) return unchanged!(target) if File.exist?(target) && File.read(target) == contents FileUtils.mkdir_p(File.dirname(target)) File.write(target, contents) announce("[written] #{target}") :written end |