Class: CurriculumGenerator::Generator::CvDoubleItem

Inherits:
BasicGenerator show all
Defined in:
lib/curriculum-generator/generator/cv_double_item.rb

Instance Attribute Summary

Attributes inherited from BasicGenerator

#data, #lang, #param

Instance Method Summary collapse

Methods inherited from BasicGenerator

#evaluate, #get_value

Constructor Details

#initialize(param, data, lang) ⇒ CvDoubleItem

Returns a new instance of CvDoubleItem.



5
6
7
# File 'lib/curriculum-generator/generator/cv_double_item.rb', line 5

def initialize(param, data, lang)
  super(param, data, lang)
end

Instance Method Details

#generateObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/curriculum-generator/generator/cv_double_item.rb', line 9

def generate
  value = get_value(param)
  unless value.is_a?(Array)
    value = Array[value]
  end
  value.collect do |elem|
    instance = self
    result = Either.chain do
      bind -> { elem.is_a?(Hash) }
      bind -> {
        elem.has_key?('item_0') &&
            elem['item_0'].has_key?('title') &&
            elem['item_0'].has_key?('content')
      }
      bind -> {
        elem.has_key?('item_1') &&
            elem['item_1'].has_key?('title') &&
            elem['item_1'].has_key?('content')
      }
      bind -> {
        instance.get_cv_double_item(elem['item_0'], elem['item_1'])
      }
    end
    result.success? ? result.fetch : ''
  end.join("\n")
end