survey_on_rails 0.4.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. data/gen/models/model.rb +6 -2
  2. data/gen/models/styles.rb +1 -1
  3. data/gen/models/view.rb +4 -0
  4. data/lib/generators/survey/USAGE +4 -4
  5. data/lib/generators/survey/metamodels/app.rb +38 -27
  6. data/lib/generators/survey/metamodels/base.rb +31 -29
  7. data/lib/generators/survey/metamodels/main.rb +1 -0
  8. data/lib/generators/survey/metamodels/model.rb +22 -54
  9. data/lib/generators/survey/metamodels/static.rb +44 -0
  10. data/lib/generators/survey/metamodels/style.rb +64 -83
  11. data/lib/generators/survey/metamodels/types.rb +2 -0
  12. data/lib/generators/survey/metamodels/validation.rb +15 -2
  13. data/lib/generators/survey/metamodels/view.rb +124 -172
  14. data/lib/generators/survey/showcase/assets/static_pages/about.html.erb +10 -0
  15. data/lib/generators/survey/showcase/assets/static_pages/contact.html.erb +7 -0
  16. data/lib/generators/survey/showcase/assets/static_pages/help.html.erb +8 -0
  17. data/lib/generators/survey/showcase/assets/static_pages/home.html.erb +11 -0
  18. data/lib/generators/survey/showcase/models/app.rb +10 -0
  19. data/lib/generators/survey/showcase/models/model.rb +13 -0
  20. data/lib/generators/survey/showcase/models/static.rb +22 -0
  21. data/lib/generators/survey/showcase/models/styles.rb +3 -0
  22. data/lib/generators/survey/showcase/models/view.rb +13 -0
  23. data/lib/generators/survey/survey_generator.rb +11 -0
  24. data/lib/generators/survey/templates/app/assets/stylesheets/stylesheet.tpl +7 -7
  25. data/lib/generators/survey/templates/app/controllers/survey_controller.tpl +1 -1
  26. data/lib/generators/survey/templates/app/models/validator.tpl +2 -2
  27. data/lib/generators/survey/templates/app/views/{form → forms}/checkbox_group.tpl +12 -12
  28. data/lib/generators/survey/templates/app/views/{form → forms}/choice_question.tpl +0 -0
  29. data/lib/generators/survey/templates/app/views/{form → forms}/dropdown.tpl +0 -0
  30. data/lib/generators/survey/templates/app/views/{form → forms}/element.tpl +0 -0
  31. data/lib/generators/survey/templates/app/views/{form → forms}/form.tpl +0 -0
  32. data/lib/generators/survey/templates/app/views/{form → forms}/group.tpl +0 -0
  33. data/lib/generators/survey/templates/app/views/{form → forms}/horizontal_radio_button_group.tpl +0 -0
  34. data/lib/generators/survey/templates/app/views/{form → forms}/image.tpl +0 -0
  35. data/lib/generators/survey/templates/app/views/{form → forms}/pagination.tpl +4 -5
  36. data/lib/generators/survey/templates/app/views/{form → forms}/radio_button_group.tpl +0 -0
  37. data/lib/generators/survey/templates/app/views/{form → forms}/table.tpl +0 -0
  38. data/lib/generators/survey/templates/app/views/{form → forms}/textfield.tpl +0 -0
  39. data/lib/generators/survey/templates/app/views/layouts/header.tpl +31 -31
  40. data/lib/generators/survey/templates/app/views/views.tpl +1 -1
  41. metadata +29 -17
  42. checksums.yaml +0 -15
data/gen/models/model.rb CHANGED
@@ -5,8 +5,8 @@ SURVEYS = SurveyOnRails::Builder::build do
5
5
  text(:title => "A textfield with suffix and color", :name => "textfield_3")
6
6
  text "textfield_4", :title => "A small textfield"
7
7
  text "textfield_5", :title => "A multiline textfield"
8
- text "textfield_6", :title => "A textfield with color"
9
- text "textfield_6_1", :title => "A textfield with number rule." do numberRule end
8
+ text "textfield_6", :title => "A textfield with color" do dependency :requires => "textfield_6_1", :value => "25" end
9
+ text "textfield_6_1", :title => "A textfield with number rule." do integerRule end
10
10
  text "textfield_7", :title => "A textfield with info text" do presenceRule end
11
11
 
12
12
  multipleChoice "multiple_choice_1", :title => "A multiple choice." do
@@ -102,6 +102,10 @@ SURVEYS = SurveyOnRails::Builder::build do
102
102
  text "textfield_14", :title => "A normal textfield"
103
103
  end
104
104
 
105
+ survey("survey_3", :author => "Max Mustermann", :title => "Also a survey") do
106
+ text "textfield_15", :title => "A normal textfield"
107
+ end
108
+
105
109
  survey("product_survey", :author => "Max Mustermann", :title => "Product survey") do
106
110
  text :name => "comment_1", :title => "How would you comment the new product?"
107
111
  end
data/gen/models/styles.rb CHANGED
@@ -6,7 +6,7 @@ STYLES = SurveyOnRails::Builder::build do
6
6
  staticStyle :element_names => "choice_23", :foreground => :blue, :background => :red
7
7
  staticStyle :element_names => "group_1, group_2, table_5", :foreground => :black, :background => :white
8
8
 
9
- staticStyle :element_types => "radio_button_group, horizontal_radio_button_group", :background => :lightGray, :font_style => :italic
9
+ staticStyle :element_types => "radio_button_group, horizontal_radio_button_group", :element_names => "textfield_1", :background => :lightGray, :font_style => :italic
10
10
 
11
11
  staticStyle(:element_names => "textfield_21", :margin => 10, :padding => 5, :background => :lightGray, :foreground => :white, :font_size => 20, :font_style => :oblique, :font_weight => :bold,
12
12
  :horizontal_alignment => :center, :vertical_alignment => :middle) do
data/gen/models/view.rb CHANGED
@@ -76,6 +76,10 @@ FORMS = SurveyOnRails::Builder::build do
76
76
  textfield_14
77
77
  end
78
78
 
79
+ form("survey_3") do
80
+ textfield_15
81
+ end
82
+
79
83
  form("product_survey") do
80
84
  comment_1
81
85
  end
@@ -1,5 +1,5 @@
1
- Description:
2
- This generator will generate classes for a rails application to display a survey.
3
-
4
- Example:
1
+ Description:
2
+ This generator will generate classes for a rails application to display a survey.
3
+
4
+ Example:
5
5
  rails generate survey
@@ -1,7 +1,6 @@
1
1
  module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
2
2
  class View < Base
3
3
  contains_many 'forms', Form, 'view'
4
-
5
4
  contains_one 'header', Header, 'view'
6
5
  contains_one 'footer', Footer, 'view'
7
6
  contains_many 'static_pages', StaticPage, 'view'
@@ -20,49 +19,61 @@ end
20
19
 
21
20
  module SurveyMetamodel
22
21
  module Application::ClassModule
22
+ def model_surveys
23
+ model.surveys if !model.nil? and !model.surveys.nil?
24
+ end
25
+
23
26
  def view_forms
24
27
  view.forms if !view.nil? and !view.forms.nil?
25
28
  end
26
29
 
27
- def all_elements
28
- elems = view.form_elements
29
- all_elems = (view_forms + elems)
30
- elems.each do |elem|
31
- all_elems << elem.elements if ((elem.is_a?(Group) or elem.is_a?(Page)) and !elem.is_a?(Image))
32
- end
33
- return all_elems
30
+ def all_survey_questions
31
+ return model.survey_questions.flatten.uniq
32
+ end
33
+
34
+ def all_view_elements
35
+ elements = view.form_elements
36
+ all_elements = (view_forms + elements)
37
+ elements.each { |element| all_elements << element.elements if ((element.is_a?(Group) or element.is_a?(Page)) and !element.is_a?(Image)) }
38
+ return all_elements.flatten.uniq
34
39
  end
35
40
 
36
41
  def preprocessing
37
42
  model.survey_questions.each { |question| question.init } if !model.nil?
38
43
  if !view.nil?
39
- view.static_pages.each { |static_page| static_page.create_page_file }
40
- view.header.elements.each { |element| element.init }
41
- view.header.elements.each { |element| element.init }
42
- view_forms.each do |form|
43
- form.init
44
- form.set_model_element
45
- form.set_page_elements
44
+ view.static_pages.each { |static_page| static_page.create_page_file } if !view.static_pages.nil?
45
+ view.header.elements.each { |element| element.init } if !view.header.nil? and !view.header.elements.nil?
46
+ view.footer.elements.each { |element| element.init } if !view.header.nil? and !view.footer.elements.nil?
47
+ if !view.forms.nil? and !view.forms.elements.nil?
48
+ view.form_elements.each do |element|
49
+ element.init
50
+ element.set_model_element
51
+ end
46
52
  end
47
- view.form_elements.each do |element|
48
- element.init
49
- element.set_model_element
53
+ if !view.nil? and !view.forms.nil?
54
+ view_forms.each do |form|
55
+ form.init
56
+ form.set_model_element
57
+ form.set_page_elements
58
+ end
50
59
  end
51
60
  check_for_inconsistencies
52
61
  end
53
62
  end
54
63
 
55
64
  def check_for_inconsistencies
56
- all_elements.each do |element1|
57
- all_elements.each do |element2|
58
- if !element1.model_element.nil? and !element2.model_element.nil?
59
- if ((element1.model_element == element2.model_element) and (element1 != element2))
60
- raise "View element is already associated to a model element (name='#{element1.name}')!"
61
- end
62
- end
65
+ all_survey_questions.each do |question_1|
66
+ all_survey_questions.each do |question_2|
67
+ 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)
68
+ end
69
+ end
70
+
71
+ all_view_elements.each do |element_1|
72
+ all_view_elements.each do |element_2|
73
+ 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))
74
+ 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) }
63
75
  end
64
76
  end
65
- return true
66
77
  end
67
78
  end
68
79
 
@@ -82,7 +93,7 @@ module SurveyMetamodel
82
93
  end
83
94
 
84
95
  def form_inputs
85
- form_elements.select { |q| q.is_a?(Input) }
96
+ form_elements.select { |q| q.is_a?(Input) } if !form_elements.nil?
86
97
  end
87
98
  end
88
99
  end
@@ -32,32 +32,32 @@ module SurveyMetamodel
32
32
  end
33
33
 
34
34
  module Element::ClassModule
35
- def snake_name
36
- plural_name.underscore
35
+ def name?
36
+ !name.blank?
37
37
  end
38
38
 
39
- def snake_name_singular
40
- name.underscore
39
+ def title?
40
+ !title.blank?
41
41
  end
42
42
 
43
- def camel_name
44
- plural_name.camelize
43
+ def has_name?
44
+ return !(self.is_a?(Group) or self.is_a?(Image) or self.is_a?(Page) or self.is_a?(SurveyManagement) or self.is_a?(UserManagement))
45
45
  end
46
46
 
47
- def file_name
48
- (plural_name.split('').any? { |c| c =~ /^[0-9]$/ })? plural_name.gsub!('_', ''): plural_name
47
+ def snake_name
48
+ plural_name.underscore if plural_name?
49
49
  end
50
-
51
- def name?
52
- !name.blank?
50
+
51
+ def snake_name_singular
52
+ name.underscore if name?
53
53
  end
54
54
 
55
- def title?
56
- !title.blank?
55
+ def camel_name
56
+ plural_name.camelize if plural_name?
57
57
  end
58
58
 
59
- def has_name
60
- return !(self.is_a?(Group) or self.is_a?(Image) or self.is_a?(Page) or self.is_a?(SurveyManagement) or self.is_a?(UserManagement))
59
+ def file_name
60
+ ((plural_name.split('').any? { |c| c =~ /^[0-9]$/ })? plural_name.gsub!('_', ''): plural_name) if plural_name?
61
61
  end
62
62
 
63
63
  def init
@@ -76,20 +76,20 @@ module SurveyMetamodel
76
76
 
77
77
  private
78
78
 
79
- def set_name
80
- self.name = unique_name if !name?
79
+ def plural_name?
80
+ !plural_name.blank?
81
81
  end
82
82
 
83
- def set_title
84
- self.title = unique_title if !title?
83
+ def plural_name
84
+ name.pluralize if name?
85
85
  end
86
86
 
87
- def init_all(collection)
88
- collection.each { |element| element.init } if !collection.nil?
87
+ def set_name
88
+ self.name = unique_name if !name?
89
89
  end
90
90
 
91
- def plural_name
92
- name.pluralize
91
+ def set_title
92
+ self.title = unique_title if !title?
93
93
  end
94
94
 
95
95
  def unique_name
@@ -101,8 +101,12 @@ module SurveyMetamodel
101
101
  name.camelize if !name?
102
102
  end
103
103
 
104
+ def init_all(collection)
105
+ collection.each { |e| e.init } if !collection.nil?
106
+ end
107
+
104
108
  def init_with(new_name)
105
- { :name => "#{new_name.to_underscore}", :title => "#{new_name}" }
109
+ return { :name => "#{new_name.to_underscore}", :title => "#{new_name}" }
106
110
  end
107
111
 
108
112
  def choices_by_s(string)
@@ -110,11 +114,9 @@ module SurveyMetamodel
110
114
  end
111
115
 
112
116
  def choices_by_a(array)
113
- tmp_choices = Array.new
114
- array.each do |choice|
115
- tmp_choices << Choice.new(init_with(choice.strip))
116
- end
117
- return tmp_choices
117
+ choices_a = Array.new
118
+ array.each { |choice| choices_a << Choice.new(init_with(choice.strip)) }
119
+ return choices_a
118
120
  end
119
121
  end
120
122
  end
@@ -8,5 +8,6 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
8
8
  require "validation"
9
9
  require "model"
10
10
  require "view"
11
+ require "static"
11
12
  require "app"
12
13
  end
@@ -3,22 +3,17 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
3
3
  abstract
4
4
  end
5
5
 
6
- class Survey < ModelElement
7
- has_attr 'author', String
8
- contains_many 'questions', ModelElement, 'survey'
9
- end
10
-
11
- class Dependency < Base
12
- has_attr 'requires', String
13
- has_attr 'value', String
14
- end
15
-
16
6
  class Question < ModelElement
17
7
  abstract
18
8
  contains_many 'rules', ValidationRule, 'question'
19
9
  contains_many 'dependencies', Dependency, 'question'
20
10
  end
21
11
 
12
+ class Survey < ModelElement
13
+ has_attr 'author', String
14
+ contains_many 'questions', Question, 'survey'
15
+ end
16
+
22
17
  class Text < Question
23
18
  end
24
19
 
@@ -55,6 +50,7 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
55
50
 
56
51
  has_attr 'rows_s', String
57
52
  contains_many 'rows', Row, 'matrix'
53
+
58
54
  has_attr 'columns_s', String
59
55
  contains_many 'columns', Column, 'matrix'
60
56
 
@@ -64,77 +60,49 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
64
60
  end
65
61
 
66
62
  module SurveyMetamodel
67
- LIKERT_SCALE = ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"]
68
-
69
- module Dependency::ClassModule
70
- def condition
71
- return "(!params[:#{requires}].blank? and params[:#{requires}][:content] == '#{value}')"
72
- end
73
- end
74
-
75
63
  module Question::ClassModule
76
64
  def conditions
77
65
  conditions_a = Array.new
78
- dependencies.each do |dependency|
79
- conditions_a << dependency.condition
80
- end
66
+ dependencies.each { |dependency| conditions_a << dependency.condition }
81
67
  return "(#{conditions_a.join(" and ")})"
82
68
  end
83
69
  end
84
70
 
85
- module RatingScale::ClassModule
71
+ module ChoiceQuestion::ClassModule
86
72
  def real_choices
87
- if type == :numerical
88
- choices2 = Array.new
89
- (min..max).each { |i| choices2 << Choice.new(:name => "#{self.name}_choice_#{i}", :title => "#{i}") }
90
- choices2
91
- elsif type == :likert
92
- choices_by_a(LIKERT_SCALE)
93
- elsif self.is_a?(RatingScale)
94
- choices
95
- end
73
+ return (!choices_s.blank? and choices.empty?)? choices_by_s(choices_s): choices
96
74
  end
97
75
  end
98
76
 
99
- module ChoiceQuestion::ClassModule
77
+ module RatingScale::ClassModule
100
78
  def real_choices
101
- if self.is_a?(ChoiceQuestion)
102
- if !choices_s.blank? and choices.empty?
103
- choices_by_s(choices_s)
104
- else
105
- choices
106
- end
79
+ if type == :numerical
80
+ choices_a = Array.new
81
+ (min..max).each { |i| choices_a << Choice.new(:name => "#{self.name}_choice_#{i}", :title => "#{i}") }
82
+ return choices_a
83
+ elsif type == :likert
84
+ return choices_by_a(LIKERT_SCALE)
85
+ else
86
+ return choices
107
87
  end
108
88
  end
109
89
  end
110
90
 
111
91
  module Matrix::ClassModule
112
92
  def real_rows
113
- if !rows_s.blank? and rows.empty?
114
- choices_by_s(rows_s)
115
- else
116
- rows
117
- end
93
+ return (!rows_s.blank? and rows.empty?)? choices_by_s(rows_s): rows
118
94
  end
119
95
 
120
96
  def real_columns
121
97
  if type == :likert
122
98
  choices_by_s(LIKERT_SCALE.join(','))
123
- elsif self.is_a?(Matrix)
124
- if !columns_s.blank? and columns.empty?
125
- choices_by_s(columns_s)
126
- else
127
- columns
128
- end
99
+ else
100
+ return (!columns_s.blank? and columns.empty?)? choices_by_s(columns_s): columns
129
101
  end
130
102
  end
131
103
 
132
104
  def real_choices
133
- if !choices_s.blank? and choices.empty?
134
- choices_by_s(choices_s)
135
- else
136
- choices
137
- end
105
+ return (!choices_s.blank? and choices.empty?)? choices_by_s(choices_s): choices
138
106
  end
139
107
  end
140
108
  end
@@ -0,0 +1,44 @@
1
+ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
2
+ class StaticElement < ViewElement
3
+ abstract
4
+ end
5
+
6
+ class StaticView < ViewElement
7
+ abstract
8
+ contains_many 'elements', StaticElement, 'page'
9
+ end
10
+
11
+ class Header < StaticView
12
+ end
13
+
14
+ class Footer < StaticView
15
+ end
16
+
17
+ class StaticPage < StaticView
18
+ has_attr 'file', String
19
+ has_attr 'root', Boolean
20
+ end
21
+
22
+ class Label < StaticElement
23
+ end
24
+
25
+ class Link < StaticElement
26
+ has_attr 'url', String
27
+ has_attr 'path', Boolean
28
+ end
29
+
30
+ class SurveyManagement < StaticElement
31
+ end
32
+
33
+ class UserManagement < StaticElement
34
+ end
35
+ end
36
+
37
+ module SurveyMetamodel
38
+ module StaticPage::ClassModule
39
+ def create_page_file
40
+ file_path = (!file.nil?)? file: "gen/assets/static_pages/#{name}.html.erb"
41
+ File.new(file_path, 'w') unless File.exists?(file_path)
42
+ end
43
+ end
44
+ end
@@ -6,7 +6,6 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
6
6
 
7
7
  class Style < Base
8
8
  abstract
9
-
10
9
  has_attr 'margin', Integer
11
10
  has_attr 'padding', Integer
12
11
  has_attr 'foreground', Color
@@ -30,8 +29,8 @@ module SurveyMetamodel extend RGen::MetamodelBuilder::ModuleExtension
30
29
 
31
30
  class StyleElement < Element
32
31
  abstract
33
- contains_one 'style', ElementStyle, 'element'
34
32
  has_attr 'custom_html', String
33
+ contains_one 'style', ElementStyle, 'element'
35
34
  end
36
35
  end
37
36
 
@@ -48,11 +47,11 @@ module SurveyMetamodel
48
47
 
49
48
  module Style::ClassModule
50
49
  def margin?
51
- !margin.nil? and margin != 0
50
+ !margin.nil? and (margin != 0)
52
51
  end
53
52
 
54
53
  def padding?
55
- !padding.nil? and margin != 0
54
+ !padding.nil? and (margin != 0)
56
55
  end
57
56
 
58
57
  def foreground?
@@ -64,102 +63,83 @@ module SurveyMetamodel
64
63
  end
65
64
 
66
65
  def font_size?
67
- !font_size.nil? and margin != 0
66
+ !font_size.nil? and (font_size != 0)
68
67
  end
69
68
 
70
69
  def font_style?
71
- !font_style.nil?
70
+ !style.nil?
72
71
  end
73
72
 
74
73
  def font_weight?
75
- !font_weight.nil?
74
+ !weight.nil?
76
75
  end
77
76
 
78
- def horizontal_align?
77
+ def horizontal_alignment?
79
78
  !horizontal_align.nil?
80
79
  end
81
80
 
82
- def vertical_align?
81
+ def vertical_alignment?
83
82
  !vertical_align.nil?
84
83
  end
85
84
 
86
- #See HTML color table: http://www.w3schools.com/html/html_colornames.asp
87
- def color(color)
88
- if color == :blue
89
- "#0000FF"
90
- elsif color == :red
91
- "#FF0000"
92
- elsif color == :yellow
93
- "#FFFF00"
94
- elsif color == :gray
95
- "#808080"
96
- elsif color == :green
97
- "#008000"
98
- elsif color == :white
99
- "#FFFFFF"
100
- elsif color == :black
101
- "#000000"
102
- elsif color == :lightGray
103
- "#D3D3D3"
104
- elsif color == :darkGray
105
- "#A9A9A9"
106
- else
107
- "#FFFFFF"
108
- end
85
+ def foreground_color
86
+ color(foreground)
87
+ end
88
+
89
+ def background_color
90
+ color(background)
109
91
  end
110
92
 
111
93
  def style
112
- if font_style == :normal
113
- "normal"
114
- elsif font_style == :italic
115
- "italic"
116
- elsif font_style == :oblique
117
- "oblique"
94
+ case font_style
95
+ when :normal then "normal"
96
+ when :italic then "italic"
97
+ when :oblique then "oblique"
118
98
  end
119
99
  end
120
100
 
121
101
  def weight
122
- if font_weight == :normal
123
- "normal"
124
- elsif font_weight == :bold
125
- "italic"
102
+ case font_weight
103
+ when :normal then "normal"
104
+ when :bold then "bold"
126
105
  end
127
106
  end
128
107
 
129
108
  def horizontal_align
130
- if horizontal_alignment == :left
131
- "left"
132
- elsif horizontal_alignment == :center
133
- "center"
134
- elsif horizontal_alignment == :right
135
- "right"
109
+ case horizontal_alignment
110
+ when :left then "left"
111
+ when :center then "center"
112
+ when :right then "right"
136
113
  end
137
114
  end
138
115
 
139
116
  def vertical_align
140
- if vertical_alignment == :top
141
- "top"
142
- elsif vertical_alignment == :middle
143
- "middle"
144
- elsif vertical_alignment == :bottom
145
- "bottom"
117
+ case vertical_alignment
118
+ when :top then "top"
119
+ when :middle then "middle"
120
+ when :bottom then "bottom"
146
121
  end
147
122
  end
123
+
124
+ private
125
+
126
+ def color(color)
127
+ case color
128
+ when :blue then "#0000FF"
129
+ when :red then "#FF0000"
130
+ when :yellow then "#FFFF00"
131
+ when :gray then "#808080"
132
+ when :green then "#008000"
133
+ when :white then "#FFFFFF"
134
+ when :black then "#000000"
135
+ when :lightGray then "#D3D3D3"
136
+ when :darkGray then "#A9A9A9"
137
+ else "#FFFFFF"
138
+ end
139
+ end
148
140
  end
149
141
 
150
142
  module StaticStyle::ClassModule
151
- def names
152
- names = Array.new
153
- if element_names? and !element_types?
154
- names = self.element_names.split(',')
155
- elsif !element_names? and element_types?
156
- names = self.element_types.split(',')
157
- elsif element_names? and element_types?
158
- names = self.element_names.split(',') + self.element_types.split(',')
159
- end
160
- return names.each {|s| s.strip! }
161
- end
162
-
163
143
  def element_names?
164
144
  !element_names.blank?
165
145
  end
@@ -167,36 +147,37 @@ module SurveyMetamodel
167
147
  def element_types?
168
148
  !element_types.blank?
169
149
  end
150
+
151
+ def names_and_types
152
+ names_a = Array.new
153
+ names_a += self.element_names.split(',') if element_names?
154
+ names_a += self.element_types.split(',') if element_types?
155
+ return (names_a.each {|s| s.strip! })
156
+ end
170
157
  end
171
158
 
172
159
  module StyleElement::ClassModule
173
- def has_style?(element)
174
- return true if style?
175
-
176
- container = nil
177
- if !self.group.nil?
178
- container = self.group
179
- elsif self.is_a?(Input)
180
- container = self
181
- end
182
-
183
- (!container.form.view.styles.select { |s| s.element_name == element.name }.empty?)
184
- end
185
-
186
160
  def style?
187
161
  !style.nil?
188
162
  end
189
163
 
164
+ def content?
165
+ !content.blank?
166
+ end
167
+
190
168
  def content
191
169
  if custom_html?
192
- custom_html
170
+ return custom_html
193
171
  elsif title?
194
- title
172
+ return title
195
173
  end
196
174
  end
197
175
 
198
- def content?
199
- !content.blank?
176
+ def has_style?(element)
177
+ return true if style?
178
+ container = self
179
+ container = self.group if !self.group.nil?
180
+ return (!container.form.view.styles.select { |s| s.element_name == element.name }.empty?)
200
181
  end
201
182
  end
202
183
  end