Module: SurveyMetamodel::Application::ClassModule

Defined in:
lib/generators/survey/metamodels/app.rb

Instance Method Summary collapse

Instance Method Details

#all_survey_questionsObject



30
31
32
# File 'lib/generators/survey/metamodels/app.rb', line 30

def all_survey_questions
  return model.survey_questions.flatten.uniq
end

#all_view_elementsObject



34
35
36
37
38
39
# File 'lib/generators/survey/metamodels/app.rb', line 34

def all_view_elements
  elements = view.form_elements
  all_elements = (view_forms + elements)
  elements.each { |element| all_elements << element.elements if ((element.is_a?(Group) or element.is_a?(Page)) and !element.is_a?(Image)) }
  return all_elements.flatten.uniq
end

#check_for_inconsistenciesObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/generators/survey/metamodels/app.rb', line 64

def check_for_inconsistencies
  all_survey_questions.each do |question_1|
    all_survey_questions.each do |question_2|
      raise "Model elements cannot have the same name (name='#{element_1.name}')!" if question_1.name? and question_2.name? and question_1.name == question_2.name and (question_1 != question_2)
    end
  end
  
  all_view_elements.each do |element_1|
    all_view_elements.each do |element_2|
      raise "View elements can only be associated to a exactly one model element (name='#{element_1.name}')!" if (!element_1.model_element.nil? and !element_2.model_element.nil?) and ((element_1.model_element == element_2.model_element) and (element_1 != element_2))
      raise "Pages cannot contain other pages (name='#{element_1.name}')!" if element_1.is_a?(Page) and !element_1.elements.nil? and element_1.elements.any? { |e| e.is_a?(Page) }
    end
  end
end

#model_surveysObject



22
23
24
# File 'lib/generators/survey/metamodels/app.rb', line 22

def model_surveys
  model.surveys if !model.nil? and !model.surveys.nil?
end

#preprocessingObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/generators/survey/metamodels/app.rb', line 41

def preprocessing
  model.survey_questions.each { |question| question.init } if !model.nil?
  if !view.nil?
    view.static_pages.each { |static_page| static_page.create_page_file } if !view.static_pages.nil?
    view.header.elements.each { |element| element.init } if !view.header.nil? and !view.header.elements.nil?
    view.footer.elements.each { |element| element.init } if !view.header.nil? and !view.footer.elements.nil?
    if !view.forms.nil? and !view.forms.elements.nil?
      view.form_elements.each do |element|
        element.init
        element.set_model_element
      end
    end
    if !view.nil? and !view.forms.nil?
      view_forms.each do |form|
        form.init
        form.set_model_element
        form.set_page_elements
      end
    end
    check_for_inconsistencies
  end
end

#view_formsObject



26
27
28
# File 'lib/generators/survey/metamodels/app.rb', line 26

def view_forms
  view.forms if !view.nil? and !view.forms.nil?
end