Class: ZodRails::Generation::FileWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/zod_rails/generation/file_writer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output_dir:) ⇒ FileWriter

Returns a new instance of FileWriter.



10
11
12
# File 'lib/zod_rails/generation/file_writer.rb', line 10

def initialize(output_dir:)
  @output_dir = output_dir
end

Instance Attribute Details

#output_dirObject (readonly)

Returns the value of attribute output_dir.



8
9
10
# File 'lib/zod_rails/generation/file_writer.rb', line 8

def output_dir
  @output_dir
end

Instance Method Details

#output_path_for(model_name) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/zod_rails/generation/file_writer.rb', line 20

def output_path_for(model_name)
  parts = model_name.split("::")
  filename = underscore(parts.pop)
  path_parts = parts.map { |p| underscore(p) }
  path_parts << "#{filename}.ts"
  path_parts.join("/")
end

#write(filename:, content:) ⇒ Object



14
15
16
17
18
# File 'lib/zod_rails/generation/file_writer.rb', line 14

def write(filename:, content:)
  full_path = File.join(output_dir, filename)
  FileUtils.mkdir_p(File.dirname(full_path))
  File.write(full_path, content)
end