class MissingTranslations::TemplatesParser

Public Class Methods

new(files) click to toggle source
# File lib/templates_parser.rb, line 3
def initialize(files)
  @files = files
end

Public Instance Methods

keys() click to toggle source
# File lib/templates_parser.rb, line 7
def keys
  keys = @files.map do |template|
    puts "Searching in #{template}"

    file    = File.basename(template).gsub /^_?(.+?)\..+$/, '\1'
    dir     = template.split('/')[-2]
    context = "#{dir}.#{file}"

    File.readlines(template).map { |line| line_keys(line, context) }
  end

  puts

  keys.compact.flatten.compact.uniq
end

Private Instance Methods

line_keys(line, context) click to toggle source
# File lib/templates_parser.rb, line 29
def line_keys(line, context)
  line.scan(/\W+t(ranslate)?\s*\(?['"]([^#]+?)['"]/i).map do |m|
    arg = m[1]
    if arg != '.'
      arg[0] == '.' ? "#{locale}.#{context}#{arg}" : "#{locale}.#{arg}"
    end
  end
end
locale() click to toggle source
# File lib/templates_parser.rb, line 25
def locale
  'en'.freeze
end