Class: Twine::Formatters::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/twine/formatters/abstract.rb

Direct Known Subclasses

Android, Apple

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.can_handle_directory?(path) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
# File 'lib/twine/formatters/abstract.rb', line 4

def self.can_handle_directory?(path)
  return false
end

Instance Method Details

#default_file_nameObject

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/twine/formatters/abstract.rb', line 8

def default_file_name
  raise NotImplementedError.new("You must implement default_file_name in your formatter class.")
end

#determine_language_given_path(path) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/twine/formatters/abstract.rb', line 12

def determine_language_given_path(path)
  raise NotImplementedError.new("You must implement determine_language_given_path in your formatter class.")
end

#read_file(path, lang, strings) ⇒ Object

Raises:

  • (NotImplementedError)


16
17
18
# File 'lib/twine/formatters/abstract.rb', line 16

def read_file(path, lang, strings)
  raise NotImplementedError.new("You must implement read_file in your formatter class.")
end

#row_matches_tags?(row, tags) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/twine/formatters/abstract.rb', line 37

def row_matches_tags?(row, tags)
  if tags == nil || tags.length == 0
    return true
  end

  if tags != nil && row.tags != nil
    tags.each do |tag|
      if row.tags.include? tag
        return true
      end
    end
  end

  return false
end

#translated_string_for_row_and_lang(row, lang, default_lang) ⇒ Object



53
54
55
# File 'lib/twine/formatters/abstract.rb', line 53

def translated_string_for_row_and_lang(row, lang, default_lang)
  row.translations[lang] || row.translations[default_lang]
end

#write_all_files(path, tags, strings) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/twine/formatters/abstract.rb', line 24

def write_all_files(path, tags, strings)
  if !File.directory?(path)
    raise Twine::Error.new("Directory does not exist: #{path}")
  end

  Dir.foreach(path) do |item|
    lang = determine_language_given_path(item)
    if lang
      write_file(File.join(path, item, default_file_name), lang, tags, strings)
    end
  end
end

#write_file(path, lang, tags, strings) ⇒ Object

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/twine/formatters/abstract.rb', line 20

def write_file(path, lang, tags, strings)
  raise NotImplementedError.new("You must implement write_file in your formatter class.")
end