Class: I18nContextGenerator::Writers::Preview

Inherits:
Object
  • Object
show all
Defined in:
lib/i18n_context_generator/writers/preview.rb

Overview

Renders a writer against a temporary copy and returns a Git-style patch without mutating the original file.

Class Method Summary collapse

Class Method Details

.render(path) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/i18n_context_generator/writers/preview.rb', line 13

def render(path)
  extension = File.extname(path)
  candidate = Tempfile.new(['i18n-context-preview-', extension])
  candidate.binmode
  candidate.write(File.binread(path))
  candidate.close

  yield candidate.path
  return nil if File.binread(candidate.path) == File.binread(path)

  unified_diff(path, candidate.path)
ensure
  candidate&.close!
end