Module: SurveyMetamodel::Form::ClassModule
- Defined in:
- lib/generators/survey/metamodels/view.rb
Instance Method Summary collapse
- #actual_pages_number ⇒ Object
- #author ⇒ Object
- #has_multiple_pages? ⇒ Boolean
- #input_elements ⇒ Object
- #inputs ⇒ Object
- #page_title(j) ⇒ Object
- #pages ⇒ Object
- #pages_number ⇒ Object
- #set_model_element ⇒ Object
- #set_page_elements ⇒ Object
Instance Method Details
#actual_pages_number ⇒ Object
172 173 174 |
# File 'lib/generators/survey/metamodels/view.rb', line 172 def actual_pages_number page_elements.count end |
#author ⇒ Object
159 160 161 |
# File 'lib/generators/survey/metamodels/view.rb', line 159 def model_element. if model_element? end |
#has_multiple_pages? ⇒ Boolean
155 156 157 |
# File 'lib/generators/survey/metamodels/view.rb', line 155 def has_multiple_pages? actual_pages_number > 1 end |
#input_elements ⇒ Object
184 185 186 187 188 189 190 |
# File 'lib/generators/survey/metamodels/view.rb', line 184 def input_elements page_elements = elements.select { |e| e.is_a?(Page) }.elements other_elements = page_elements.select { |e| !e.is_a?(Group) } group_elements = page_elements.select { |e| e.is_a?(Group) }.elements input_elems = (inputs + other_elements + group_elements) return input_elems end |
#inputs ⇒ Object
176 177 178 |
# File 'lib/generators/survey/metamodels/view.rb', line 176 def inputs elements.select { |e| e.is_a?(Input) } end |
#page_title(j) ⇒ Object
163 164 165 166 |
# File 'lib/generators/survey/metamodels/view.rb', line 163 def page_title(j) page = (pages.reject { |p| p.break == true })[j - 1] return (!page.nil? and page.title? and !page.break)? page.title: "" end |
#pages ⇒ Object
180 181 182 |
# File 'lib/generators/survey/metamodels/view.rb', line 180 def pages elements.select { |e| e.is_a?(Page) } end |
#pages_number ⇒ Object
168 169 170 |
# File 'lib/generators/survey/metamodels/view.rb', line 168 def pages_number pages.count end |
#set_model_element ⇒ Object
192 193 194 195 196 197 198 199 |
# File 'lib/generators/survey/metamodels/view.rb', line 192 def set_model_element model_elements = view.app.model.surveys.select { |s| s.name == name } raise "Form have to be associated to exactly one survey (name='#{name}')!" if !name? or model_elements.nil? or model_elements.count > 1 if !model_elements.nil? and model_elements.count == 1 self.model_element = model_elements.first self.title = model_element.title if !title? and model_element.title? end end |
#set_page_elements ⇒ Object
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/generators/survey/metamodels/view.rb', line 201 def set_page_elements first_page = pages.first page_elems = Array.new page_elems << elements if pages.count == 0 pages.each do |page| if !page.elements.nil? and !page.elements.empty? page_elems << page.elements else page_elems << page_elements_before(first_page) if (page == first_page) after_page_elements = page_elements_after(page) page_elems << after_page_elements if after_page_elements.any? end end self.page_elements = page_elems end |