Module: SurveyMetamodel::ViewElement::ClassModule
- Defined in:
- lib/generators/survey/metamodels/view.rb
Instance Method Summary collapse
- #get_form ⇒ Object
- #has_label? ⇒ Boolean
- #has_model_element? ⇒ Boolean
- #has_valid_model_element? ⇒ Boolean
- #is_layout_element? ⇒ Boolean
- #is_mandatory? ⇒ Boolean
- #model_element? ⇒ Boolean
- #number_title(i) ⇒ Object
- #rules ⇒ Object
- #set_model_element ⇒ Object
Instance Method Details
#get_form ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/generators/survey/metamodels/view.rb', line 135 def get_form cont = self while true if !cont.container.nil? cont = cont.container else break end end return cont.form end |
#has_label? ⇒ Boolean
77 78 79 |
# File 'lib/generators/survey/metamodels/view.rb', line 77 def has_label? return self.is_a?(Input) end |
#has_model_element? ⇒ Boolean
81 82 83 |
# File 'lib/generators/survey/metamodels/view.rb', line 81 def has_model_element? return (model_element? and !is_layout_element?) end |
#has_valid_model_element? ⇒ Boolean
85 86 87 |
# File 'lib/generators/survey/metamodels/view.rb', line 85 def has_valid_model_element? return (model_element? or is_layout_element?) end |
#is_layout_element? ⇒ Boolean
73 74 75 |
# File 'lib/generators/survey/metamodels/view.rb', line 73 def is_layout_element? return (self.is_a?(Group) or self.is_a?(Page) or self.is_a?(Image)) end |
#is_mandatory? ⇒ Boolean
89 90 91 |
# File 'lib/generators/survey/metamodels/view.rb', line 89 def is_mandatory? return (!model_element.nil? and model_element.rules.any? { |r| r.is_a?(PresenceRule) }) end |
#model_element? ⇒ Boolean
69 70 71 |
# File 'lib/generators/survey/metamodels/view.rb', line 69 def model_element? return !model_element.nil? end |
#number_title(i) ⇒ Object
128 129 130 131 132 133 |
# File 'lib/generators/survey/metamodels/view.rb', line 128 def number_title(i) suffix = (is_mandatory?)? " *": "" real_title = "#{title}#{suffix}" num_title = (i > 0)? ("#{i}. #{real_title}"): real_title return num_title end |
#rules ⇒ Object
93 94 95 |
# File 'lib/generators/survey/metamodels/view.rb', line 93 def rules model_element.rules if !model_element.nil? end |
#set_model_element ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/generators/survey/metamodels/view.rb', line 97 def set_model_element if self.is_a?(Group) or (self.is_a?(Page) and !self.elements.empty?) elements.each do |element| element.set_model_element end end if self.is_a?(Input) and !self.for.nil? self.name = self.for.name self.title = self.for.title self.for.model_element = nil end cont = get_form cont.set_model_element if !cont.model_element? view = cont.view survey = view.app.model.surveys.select { |s| s.name == cont.name }.first model_elements = survey.questions.select { |q| q.name == self.name or q.name == self.snake_class } if !model_elements.nil? and model_elements.count == 1 self.model_element = model_elements.first.dup self.title = model_element.title if !title? and model_element.title? end if !model_element.nil? and model_element.name == self.snake_class self.name = self.snake_class self.class_name = self.snake_base_class end raise "Names cannot be nil and can only consist of letters, numbers and underscore (name='#{name}')!" if has_name? and !(self.name.scan(/\w+/).count == 1) end |