Class: Babelish::CSV2Android

Inherits:
Csv2Base show all
Defined in:
lib/babelish/csv2android.rb

Instance Attribute Summary collapse

Attributes inherited from Csv2Base

#comments_column, #csv_filename, #csv_separator, #default_lang, #excluded_states, #ignore_lang_path, #keys_column, #langs, #languages, #output_basename, #output_dir, #state_column

Instance Method Summary collapse

Methods inherited from Csv2Base

#comments, #convert, #create_file_from_path, #default_filepath, #keys, #table, #write_content

Constructor Details

#initialize(filename, langs, args = {}) ⇒ CSV2Android

Returns a new instance of CSV2Android.



5
6
7
8
9
# File 'lib/babelish/csv2android.rb', line 5

def initialize(filename, langs, args = {})
  super(filename, langs, args)

  @file_path = args[:output_dir].to_s
end

Instance Attribute Details

#file_pathObject

Returns the value of attribute file_path.



3
4
5
# File 'lib/babelish/csv2android.rb', line 3

def file_path
  @file_path
end

Instance Method Details

#extensionObject



44
45
46
# File 'lib/babelish/csv2android.rb', line 44

def extension
  "xml"
end

#get_row_format(row_key, row_value, comment = nil, indentation = 0) ⇒ Object



27
28
29
# File 'lib/babelish/csv2android.rb', line 27

def get_row_format(row_key, row_value, comment = nil, indentation = 0)
  "\t<string name=\"#{row_key}\">#{row_value}</string>\n"
end

#hash_to_output(content = {}) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/babelish/csv2android.rb', line 31

def hash_to_output(content = {})
  output = ''
  if content && content.size > 0
    output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
    output += "<resources>\n"
    content.each do |key, value|
      output += get_row_format(key, value)
    end
    output += "</resources>\n"
  end
  return output
end

#language_filepaths(language) ⇒ Object



11
12
13
14
15
# File 'lib/babelish/csv2android.rb', line 11

def language_filepaths(language)
  require 'pathname'
  filepath = Pathname.new(@file_path) + "values-#{language.code}" + "strings.xml"
  return filepath ? [filepath] : []
end

#process_value(row_value, default_value) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/babelish/csv2android.rb', line 17

def process_value(row_value, default_value)
  value = super(row_value, default_value)
  # if the value begins and ends with a quote we must leave them unescapted
  if value.size > 4 && value[0, 2] == "\\\"" && value[value.size - 2, value.size] == "\\\""
    value[0, 2] = "\""
    value[value.size - 2, value.size] = "\""
  end
  value.to_utf8
end