Class: Konjak::TranslationUnit

Inherits:
StructuralElement show all
Defined in:
lib/konjak/translation_unit.rb

Constant Summary collapse

TAG_NAME =
'tu'

Instance Method Summary collapse

Methods inherited from Element

#__getobj__, #initialize

Constructor Details

This class inherits a constructor from Konjak::Element

Instance Method Details

#can_contain?(element) ⇒ Boolean

methods

Returns:

  • (Boolean)


29
30
31
# File 'lib/konjak/translation_unit.rb', line 29

def can_contain?(element)
  [Note, Property, TranslationUnitVariant].any? {|c| c === element }
end

#complete?Boolean

Logically, a complete translation-memory database will contain at least two <tuv> elements in each translation unit.

Returns:

  • (Boolean)


34
35
36
# File 'lib/konjak/translation_unit.rb', line 34

def complete?
  variants.count >= 2
end

#has_translation?(src_lang, target_lang) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/konjak/translation_unit.rb', line 38

def has_translation?(src_lang, target_lang)
  src_lang?(src_lang) && has_variant_lang?(src_lang) && has_variant_lang?(target_lang)
end

#has_variant_lang?(lang) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/konjak/translation_unit.rb', line 46

def has_variant_lang?(lang)
  variants.any? {|v| v.xml_lang == lang }
end

#src_lang?(src_lang) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/konjak/translation_unit.rb', line 42

def src_lang?(src_lang)
  !self.src_lang || self.src_lang == '*all*' || self.src_lang == src_lang
end

#valid?Boolean

FIXME

Zero, one or more <note>, or <prop> elements in any order, followed by
One or more <tuv> elements.

Returns:

  • (Boolean)


57
58
59
# File 'lib/konjak/translation_unit.rb', line 57

def valid?
  variants.count >= 1
end

#variant(lang) ⇒ Object



50
51
52
# File 'lib/konjak/translation_unit.rb', line 50

def variant(lang)
  variants.detect {|v| v.xml_lang == lang }
end

#variantsObject

childrens



23
24
25
# File 'lib/konjak/translation_unit.rb', line 23

def variants
  children.select {|c| c.name == TranslationUnitVariant::TAG_NAME }.map! {|tuv| TranslationUnitVariant.new(tuv) }
end