@@ -48,36 +48,40 @@ def status(s = nil)
48
48
@status
49
49
end
50
50
51
+ def use_erb_templates_for_questions
52
+ @use_erb_templates_for_questions = true
53
+ end
54
+
51
55
def multiple_choice ( name , options = { } , &block )
52
- add_node Question ::MultipleChoice . new ( self , name , options , &block )
56
+ add_question ( Question ::MultipleChoice , name , options , &block )
53
57
end
54
58
55
59
def country_select ( name , options = { } , &block )
56
- add_node Question ::CountrySelect . new ( self , name , options , &block )
60
+ add_question ( Question ::CountrySelect , name , options , &block )
57
61
end
58
62
59
- def date_question ( name , &block )
60
- add_node Question ::Date . new ( self , name , &block )
63
+ def date_question ( name , options = { } , &block )
64
+ add_question ( Question ::Date , name , options , &block )
61
65
end
62
66
63
67
def value_question ( name , options = { } , &block )
64
- add_node Question ::Value . new ( self , name , options , &block )
68
+ add_question ( Question ::Value , name , options , &block )
65
69
end
66
70
67
- def money_question ( name , &block )
68
- add_node Question ::Money . new ( self , name , &block )
71
+ def money_question ( name , options = { } , &block )
72
+ add_question ( Question ::Money , name , options , &block )
69
73
end
70
74
71
- def salary_question ( name , &block )
72
- add_node Question ::Salary . new ( self , name , &block )
75
+ def salary_question ( name , options = { } , &block )
76
+ add_question ( Question ::Salary , name , options , &block )
73
77
end
74
78
75
- def checkbox_question ( name , &block )
76
- add_node Question ::Checkbox . new ( self , name , &block )
79
+ def checkbox_question ( name , options = { } , &block )
80
+ add_question ( Question ::Checkbox , name , options , &block )
77
81
end
78
82
79
- def postcode_question ( name , &block )
80
- add_node Question ::Postcode . new ( self , name , &block )
83
+ def postcode_question ( name , options = { } , &block )
84
+ add_question ( Question ::Postcode , name , options , &block )
81
85
end
82
86
83
87
def outcome ( name , &block )
@@ -130,9 +134,15 @@ def normalize_responses(responses)
130
134
class InvalidStatus < StandardError ; end
131
135
132
136
private
133
- def add_node ( node )
134
- raise "Node #{ node . name } already defined" if node_exists? ( node )
135
- @nodes << node
136
- end
137
+
138
+ def add_question ( klass , name , options = { } , &block )
139
+ options . reverse_merge! ( use_erb_template : @use_erb_templates_for_questions )
140
+ add_node klass . new ( self , name , options , &block )
141
+ end
142
+
143
+ def add_node ( node )
144
+ raise "Node #{ node . name } already defined" if node_exists? ( node )
145
+ @nodes << node
146
+ end
137
147
end
138
148
end
0 commit comments