Module: I18nContextGenerator::AppleStringLiteral

Defined in:
lib/i18n_context_generator/apple_string_literal.rb

Overview

Shared parsing and decoding for Apple/Swift quoted string literals.

Constant Summary collapse

BODY_PATTERN =
'(?:\\\\.|[^"\\\\])*'
ASSIGNMENT_PATTERN =
/\A\s*"(?<key>#{BODY_PATTERN})"\s*=/

Class Method Summary collapse

Class Method Details

.assignment_key(content) ⇒ Object



11
12
13
14
# File 'lib/i18n_context_generator/apple_string_literal.rb', line 11

def assignment_key(content)
  match = ASSIGNMENT_PATTERN.match(content)
  decode(match[:key]) if match
end

.decode(content) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/i18n_context_generator/apple_string_literal.rb', line 16

def decode(content)
  return if content.nil?

  content
    .gsub('\\"', '"')
    .gsub("\\'", "'")
    .gsub('\\\\', '\\')
    .gsub('\\n', "\n")
    .gsub('\\r', "\r")
    .gsub('\\t', "\t")
end