Module: I18nContextGenerator::Writers::Helpers

Included in:
ContextExtractor, AndroidXmlWriter, StringsWriter, SwiftWriter, XcstringsWriter
Defined in:
lib/i18n_context_generator/writers/helpers.rb

Overview

Shared utilities for writer classes (description filtering, file discovery).

Instance Method Summary collapse

Instance Method Details

#find_swift_files(path, ignore_patterns: []) ⇒ Object



29
30
31
32
33
# File 'lib/i18n_context_generator/writers/helpers.rb', line 29

def find_swift_files(path, ignore_patterns: [])
  PathPolicy.new(ignore_patterns: ignore_patterns, roots: [path])
            .files([path]) { |file| FileClassifier.swift_source?(file) }
            .sort
end

#result_matches_source_path?(result, source_path) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
# File 'lib/i18n_context_generator/writers/helpers.rb', line 23

def result_matches_source_path?(result, source_path)
  return true unless result.respond_to?(:source_file) && result.source_file

  File.expand_path(result.source_file) == File.expand_path(source_path)
end

#skip_description?(description) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/i18n_context_generator/writers/helpers.rb', line 10

def skip_description?(description)
  description.include?('No usage found') || description.include?('Processing failed')
end

#writable_result?(result) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
# File 'lib/i18n_context_generator/writers/helpers.rb', line 14

def writable_result?(result)
  return false unless result&.description
  return false if result.respond_to?(:actionable?) && !result.actionable?
  return false unless result.error.nil?
  return false if result.description.strip.empty?

  !skip_description?(result.description)
end