Class: C11n::Synchronizer::Android

Inherits:
Object
  • Object
show all
Defined in:
lib/c11n/synchronizer/android.rb

Constant Summary collapse

RESOURCES =
'res'
BASE_PATTERN =
/^values-?/
FILE_NAME =
'strings.xml'

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Android

Returns a new instance of Android.



11
12
13
14
# File 'lib/c11n/synchronizer/android.rb', line 11

def initialize(options = {})
  @project_root = options[:root]
  @default_locale = options[:default_locale]
end

Instance Method Details

#exportersObject



22
23
24
25
26
# File 'lib/c11n/synchronizer/android.rb', line 22

def exporters
  @exporters ||= Hash[localization_files.map do |locale, file_path|
    [locale, C11n::Exporter::Android.new(path: file_path)]
  end]
end

#importersObject



16
17
18
19
20
# File 'lib/c11n/synchronizer/android.rb', line 16

def importers
  @importers ||= Hash[localization_files.map do |locale, file_path|
    [locale, C11n::Importer::Android.new(path: file_path, locale: locale)]
  end]
end

#localization_directoriesObject



37
38
39
40
41
# File 'lib/c11n/synchronizer/android.rb', line 37

def localization_directories
  @localization_directories ||= Dir.new(File.join(@project_root, RESOURCES)).entries.select { |entry| entry =~ BASE_PATTERN }.select do |entry|
    Dir.new(File.join(@project_root, RESOURCES, entry)).entries.include?(FILE_NAME)
  end
end

#localization_filesObject



28
29
30
31
32
33
34
35
# File 'lib/c11n/synchronizer/android.rb', line 28

def localization_files
  @localization_files ||= localization_directories.inject({}) do |files, localization_directory|
    locale = localization_directory.gsub(BASE_PATTERN, '')
    path = File.join(@project_root, RESOURCES, localization_directory, FILE_NAME)

    files.merge (locale.empty? ? @default_locale : locale.to_sym) => path
  end
end