surveyor 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +0 -6
  3. data/README.md +40 -14
  4. data/app/helpers/surveyor_helper.rb +1 -85
  5. data/app/views/partials/_answer.html.haml +5 -4
  6. data/app/views/partials/_question.html.haml +7 -5
  7. data/app/views/partials/_question_group.html.haml +2 -2
  8. data/app/views/surveyor/export.json.rabl +75 -0
  9. data/app/views/surveyor/show.html.haml +75 -13
  10. data/app/views/surveyor/show.json.rabl +14 -0
  11. data/config/routes.rb +2 -3
  12. data/doc/surveyor reject or delete decision matrix.png +0 -0
  13. data/features/export_to_json.feature +96 -0
  14. data/features/show_survey.feature +42 -0
  15. data/features/step_definitions/{common_setps.rb → common_steps.rb} +0 -0
  16. data/features/step_definitions/surveyor_steps.rb +46 -12
  17. data/features/step_definitions/web_steps.rb +15 -5
  18. data/features/support/paths.rb +2 -1
  19. data/features/surveyor.feature +192 -41
  20. data/features/surveyor_parser.feature +10 -10
  21. data/features/{redcap_parser.feature → z_redcap_parser.feature} +9 -6
  22. data/lib/formtastic/surveyor_builder.rb +1 -4
  23. data/lib/generators/surveyor/install_generator.rb +6 -5
  24. data/lib/generators/surveyor/templates/db/migrate/add_api_id_to_question_groups.rb +9 -0
  25. data/lib/generators/surveyor/templates/db/migrate/add_api_ids_to_response_sets_and_responses.rb +11 -0
  26. data/lib/generators/surveyor/templates/public/javascripts/surveyor/jquery-ui-timepicker-addon.js +1277 -0
  27. data/lib/generators/surveyor/templates/public/javascripts/surveyor/jquery-ui.js +11729 -0
  28. data/lib/generators/surveyor/templates/public/javascripts/surveyor/jquery.surveyor.js +54 -10
  29. data/lib/generators/surveyor/templates/public/stylesheets/sass/surveyor.sass +1 -1
  30. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/jquery-ui-timepicker-addon.css +6 -0
  31. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/jquery-ui.custom.css +572 -0
  32. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  33. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  34. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  36. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  37. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-icons_ef8c08_256x240.png +0 -0
  38. data/lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-icons_ffffff_256x240.png +0 -0
  39. data/lib/generators/surveyor/templates/surveys/EXTENDING_SURVEYOR.md +14 -0
  40. data/lib/generators/surveyor/templates/surveys/MODIFYING_SURVEYOR.md +91 -0
  41. data/lib/generators/surveyor/templates/surveys/date_survey.rb +15 -0
  42. data/lib/generators/surveyor/templates/surveys/kitchen_sink_survey.rb +2 -2
  43. data/lib/surveyor/common.rb +31 -4
  44. data/lib/surveyor/helpers/surveyor_helper_methods.rb +99 -0
  45. data/lib/surveyor/models/answer_methods.rb +6 -5
  46. data/lib/surveyor/models/dependency_condition_methods.rb +0 -1
  47. data/lib/surveyor/models/dependency_methods.rb +1 -1
  48. data/lib/surveyor/models/question_group_methods.rb +5 -0
  49. data/lib/surveyor/models/question_methods.rb +5 -2
  50. data/lib/surveyor/models/response_methods.rb +44 -3
  51. data/lib/surveyor/models/response_set_methods.rb +14 -4
  52. data/lib/surveyor/models/survey_methods.rb +8 -2
  53. data/lib/surveyor/models/survey_section_methods.rb +13 -1
  54. data/lib/surveyor/parser.rb +18 -11
  55. data/lib/surveyor/render_text.rb +19 -0
  56. data/lib/surveyor/surveyor_controller_methods.rb +19 -1
  57. data/lib/surveyor/unparser.rb +1 -1
  58. data/lib/surveyor/version.rb +1 -1
  59. data/lib/tasks/surveyor_tasks.rake +1 -1
  60. data/spec/controllers/surveyor_controller_spec.rb +7 -3
  61. data/spec/helpers/surveyor_helper_spec.rb +104 -9
  62. data/spec/lib/chinese_survey.rb +14 -0
  63. data/spec/lib/common_spec.rb +52 -1
  64. data/spec/lib/rake_kitchen_sink.rb +40 -0
  65. data/spec/models/answer_spec.rb +11 -0
  66. data/spec/models/question_spec.rb +15 -0
  67. data/spec/models/response_set_spec.rb +45 -1
  68. data/spec/models/response_spec.rb +7 -4
  69. data/surveyor.gemspec +4 -2
  70. metadata +99 -40
  71. data/app/controllers/results_controller.rb +0 -13
  72. data/app/views/results/index.html.erb +0 -17
  73. data/app/views/results/show.html.erb +0 -25
@@ -18,5 +18,56 @@ describe Surveyor::Common, "" do
18
18
  "In general, you would say your health is:" => "you_would_say_your_health"
19
19
  }.each{|k, v| Surveyor::Common.to_normalized_string(k).should == v}
20
20
  end
21
-
21
+ it "should deep compare json objects" do
22
+ a = {"a" => "b"}.to_json
23
+ b = '{"a": "b"}'
24
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_true
25
+
26
+ a = {"y" => "x"}.to_json
27
+ b = {:y => "x"}
28
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_true
29
+
30
+ a = [{"y" => "x"}, {"j" => "b"}].to_json
31
+ b = '[{"y": "x"}]'
32
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_false
33
+
34
+ a = [{"y" => "x"}, {"uuid" => "*"}].to_json
35
+ b = '[{"y": "x"}, {"uuid": "12312312312123"}]'
36
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_true
37
+
38
+ a = %({"survey": {
39
+ "title":"Simple survey",
40
+ "uuid":"72888670-9151-012e-9ec1-00254bc472f4",
41
+ "sections":[{
42
+ "title":"Basic questions"
43
+ }]
44
+ }
45
+ })
46
+ b = %({"survey": {"title": "Simple survey","uuid": "*","sections": [{"title": "Basic questions"}]}})
47
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_true
48
+
49
+ a = %({"survey": {
50
+ "title":"Simple survey",
51
+ "uuid":"72888670-9151-012e-9ec1-00254bc472f4",
52
+ "sections":[{
53
+ "title":"Different"
54
+ }]
55
+ }
56
+ })
57
+ b = %({"survey": {"title": "Simple survey","uuid": "*","sections": [{"title": "Basic questions"}]}})
58
+ Surveyor::Common.equal_json_excluding_wildcards(a,b).should be_false
59
+ end
60
+ describe '#generate_api_id' do
61
+ def generate
62
+ Surveyor::Common.generate_api_id
63
+ end
64
+
65
+ it 'generates a String' do
66
+ generate.should be_a String
67
+ end
68
+
69
+ it 'generates a new value every time' do
70
+ (1..100).collect { generate }.uniq.size.should == 100
71
+ end
72
+ end
22
73
  end
@@ -0,0 +1,40 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'rake'
3
+
4
+ describe Surveyor::Parser do
5
+ before do
6
+ @rake = Rake::Application.new
7
+ Rake.application = @rake
8
+ Rake.application.rake_require "lib/tasks/surveyor_tasks"
9
+ Rake::Task.define_task(:environment)
10
+ end
11
+ it "should return properly parse the kitchen sink survey" do
12
+ ENV["FILE"]="surveys/kitchen_sink_survey.rb"
13
+ @rake["surveyor"].invoke
14
+
15
+ Survey.count.should == 1
16
+ SurveySection.count.should == 2
17
+ Question.count.should == 44
18
+ Answer.count.should == 241
19
+ Dependency.count.should == 6
20
+ DependencyCondition.count.should == 9
21
+ QuestionGroup.count.should == 6
22
+
23
+ Survey.all.map(&:destroy)
24
+ end
25
+ it "should return properly parse a UTF8 survey" do
26
+ ENV["FILE"]="../spec/lib/chinese_survey.rb"
27
+ @rake["surveyor"].invoke
28
+
29
+ Survey.count.should == 1
30
+ SurveySection.count.should == 1
31
+ Question.count.should == 3
32
+ Answer.count.should == 15
33
+ Dependency.count.should == 0
34
+ DependencyCondition.count.should == 0
35
+ QuestionGroup.count.should == 1
36
+
37
+ Survey.all.map(&:destroy)
38
+ end
39
+
40
+ end
@@ -41,4 +41,15 @@ describe Answer, "when creating a new answer" do
41
41
  it "should have an api_id" do
42
42
  @answer.api_id.length.should == 36
43
43
  end
44
+
45
+ require 'mustache'
46
+ class FakeMustacheContext < ::Mustache
47
+ def site
48
+ "Northwestern"
49
+ end
50
+ end
51
+ it "should substitute 'Northwestern' in place {{site}}" do
52
+ @answer.text = "You are in {{site}}"
53
+ @answer.split_or_hidden_text(nil, FakeMustacheContext).should == "You are in Northwestern"
54
+ end
44
55
  end
@@ -85,6 +85,21 @@ describe Question, "when interacting with an instance" do
85
85
  @question.solo?.should be_true
86
86
  @question.part_of_group?.should be_false
87
87
  end
88
+
89
+ require 'mustache'
90
+ class FakeMustacheContext < ::Mustache
91
+ def site
92
+ "Northwestern"
93
+ end
94
+ def somethingElse
95
+ "something new"
96
+ end
97
+ end
98
+ it "should substitute 'Northwestern' in place {{site}}" do
99
+ @question.text = "You are in {{site}}"
100
+ @question.render_question_text(FakeMustacheContext).should == "You are in Northwestern"
101
+ end
102
+
88
103
  end
89
104
 
90
105
  describe Question, "with dependencies" do
@@ -13,6 +13,36 @@ describe ResponseSet do
13
13
  @response_set.access_code.length.should == 10
14
14
  end
15
15
 
16
+ describe '#access_code' do
17
+ let!(:rs1) { Factory(:response_set).tap { |rs| rs.update_attribute(:access_code, 'one') } }
18
+ let!(:rs2) { Factory(:response_set).tap { |rs| rs.update_attribute(:access_code, 'two') } }
19
+
20
+ # Regression test for #263
21
+ it 'accepts an access code in the constructor' do
22
+ ResponseSet.new(:access_code => 'eleven').access_code.should == 'eleven'
23
+ end
24
+
25
+ # Regression test for #263
26
+ it 'setter accepts a conflicting access code' do
27
+ rs2.access_code = 'one'
28
+ rs2.access_code.should == 'one'
29
+ end
30
+
31
+ it 'is invalid when conflicting' do
32
+ rs2.access_code = 'one'
33
+ rs2.should_not be_valid
34
+ rs2.should have(1).errors_on(:access_code)
35
+ end
36
+
37
+ it 'defaults to a random, non-conflicting value on init' do
38
+ Surveyor::Common.should_receive(:make_tiny_code).and_return('one')
39
+ Surveyor::Common.should_receive(:make_tiny_code).and_return('two')
40
+ Surveyor::Common.should_receive(:make_tiny_code).and_return('three')
41
+
42
+ ResponseSet.new.access_code.should == 'three'
43
+ end
44
+ end
45
+
16
46
  it "is completable" do
17
47
  @response_set.completed_at.should be_nil
18
48
  @response_set.complete!
@@ -23,7 +53,13 @@ describe ResponseSet do
23
53
 
24
54
  it "does not allow completion through mass assignment" do
25
55
  @response_set.completed_at.should be_nil
26
- @response_set.update_attributes(:completed_at => Time.now)
56
+ # Rails 3.2 throws an ActiveModel::MassAssignmentSecurity::Error error on response_set.update_attribues
57
+ # Using begin..rescue..end for Rails 3.1 and 3.0 backwards compatibility
58
+ # lambda { @response_set.update_attributes(:completed_at => Time.now) }.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
59
+ begin
60
+ @response_set.update_attributes(:completed_at => Time.now)
61
+ rescue
62
+ end
27
63
  @response_set.completed_at.should be_nil
28
64
  end
29
65
 
@@ -39,6 +75,14 @@ describe ResponseSet do
39
75
  @response_set.responses.detect{|r| r.question_id == 7}.text_value.should == "Brian is tired"
40
76
  end
41
77
 
78
+ it 'saves its responses' do
79
+ new_set = ResponseSet.new(:survey => Factory(:survey))
80
+ new_set.responses.build(:question_id => 1, :answer_id => 1, :string_value => 'XXL')
81
+ new_set.save!
82
+
83
+ ResponseSet.find(new_set.id).responses.should have(1).items
84
+ end
85
+
42
86
  it "should ignore data if corresponding radio button is not selected" do
43
87
  @response_set.update_attributes(:responses_attributes => ResponseSet.to_savable(@radio_response_attributes))
44
88
  @response_set.responses.select{|r| r.question_id == 2}.should have(1).item
@@ -10,10 +10,7 @@ describe Response, "when saving a response" do
10
10
  @response.should be_valid
11
11
  end
12
12
 
13
- it "should be invalid without a parent response set and question" do
14
- @response.response_set_id = nil
15
- @response.should have(1).error_on(:response_set_id)
16
-
13
+ it "should be invalid without a question" do
17
14
  @response.question_id = nil
18
15
  @response.should have(1).error_on(:question_id)
19
16
  end
@@ -36,6 +33,12 @@ describe Response, "when saving a response" do
36
33
  @response.answer = Factory(:answer, :response_class => "answer").tap { |a| a.id = 143 }
37
34
  @response.correct?.should be_false
38
35
  end
36
+
37
+ it "should be in order by created_at" do
38
+ @response.response_set.should_not be_nil
39
+ response2 = Factory(:response, :question => Factory(:question), :answer => Factory(:answer), :response_set => @response.response_set, :created_at => (@response.created_at + 1))
40
+ Response.all.should == [@response, response2]
41
+ end
39
42
 
40
43
  describe "returns the response as the type requested" do
41
44
  it "returns 'string'" do
data/surveyor.gemspec CHANGED
@@ -22,7 +22,9 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency('sass')
23
23
  s.add_dependency('fastercsv', '~> 1.5.4')
24
24
  s.add_dependency('formtastic', '~> 1.2.4')
25
- s.add_dependency('uuid')
25
+ s.add_dependency('uuidtools', '~> 2.1')
26
+ s.add_dependency('mustache', '0.99.4')
27
+ s.add_dependency('rabl', '~>0.6.6')
26
28
 
27
29
  s.add_development_dependency('yard')
28
30
  s.add_development_dependency('rake', '0.8.7')
@@ -34,6 +36,6 @@ Gem::Specification.new do |s|
34
36
  s.add_development_dependency('database_cleaner', '~> 0.6.7')
35
37
  s.add_development_dependency('launchy', '~> 2.0.5')
36
38
  s.add_development_dependency('capybara', '~> 1.1.1')
37
- s.add_development_dependency('ci_reporter', '~> 1.6')
39
+ s.add_development_dependency('ci_reporter', '1.6.6')
38
40
  end
39
41
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surveyor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 75
4
+ hash: 71
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 21
8
+ - 22
9
9
  - 0
10
- version: 0.21.0
10
+ version: 0.22.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Chamberlain
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-11-10 00:00:00 Z
19
+ date: 2012-04-04 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rails
@@ -96,23 +96,56 @@ dependencies:
96
96
  type: :runtime
97
97
  version_requirements: *id005
98
98
  - !ruby/object:Gem::Dependency
99
- name: uuid
99
+ name: uuidtools
100
100
  prerelease: false
101
101
  requirement: &id006 !ruby/object:Gem::Requirement
102
102
  none: false
103
103
  requirements:
104
- - - ">="
104
+ - - ~>
105
105
  - !ruby/object:Gem::Version
106
- hash: 3
106
+ hash: 1
107
107
  segments:
108
- - 0
109
- version: "0"
108
+ - 2
109
+ - 1
110
+ version: "2.1"
110
111
  type: :runtime
111
112
  version_requirements: *id006
112
113
  - !ruby/object:Gem::Dependency
113
- name: yard
114
+ name: mustache
114
115
  prerelease: false
115
116
  requirement: &id007 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - "="
120
+ - !ruby/object:Gem::Version
121
+ hash: 411
122
+ segments:
123
+ - 0
124
+ - 99
125
+ - 4
126
+ version: 0.99.4
127
+ type: :runtime
128
+ version_requirements: *id007
129
+ - !ruby/object:Gem::Dependency
130
+ name: rabl
131
+ prerelease: false
132
+ requirement: &id008 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ hash: 11
138
+ segments:
139
+ - 0
140
+ - 6
141
+ - 6
142
+ version: 0.6.6
143
+ type: :runtime
144
+ version_requirements: *id008
145
+ - !ruby/object:Gem::Dependency
146
+ name: yard
147
+ prerelease: false
148
+ requirement: &id009 !ruby/object:Gem::Requirement
116
149
  none: false
117
150
  requirements:
118
151
  - - ">="
@@ -122,11 +155,11 @@ dependencies:
122
155
  - 0
123
156
  version: "0"
124
157
  type: :development
125
- version_requirements: *id007
158
+ version_requirements: *id009
126
159
  - !ruby/object:Gem::Dependency
127
160
  name: rake
128
161
  prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
162
+ requirement: &id010 !ruby/object:Gem::Requirement
130
163
  none: false
131
164
  requirements:
132
165
  - - "="
@@ -138,11 +171,11 @@ dependencies:
138
171
  - 7
139
172
  version: 0.8.7
140
173
  type: :development
141
- version_requirements: *id008
174
+ version_requirements: *id010
142
175
  - !ruby/object:Gem::Dependency
143
176
  name: rspec-rails
144
177
  prerelease: false
145
- requirement: &id009 !ruby/object:Gem::Requirement
178
+ requirement: &id011 !ruby/object:Gem::Requirement
146
179
  none: false
147
180
  requirements:
148
181
  - - ~>
@@ -154,11 +187,11 @@ dependencies:
154
187
  - 0
155
188
  version: 2.6.0
156
189
  type: :development
157
- version_requirements: *id009
190
+ version_requirements: *id011
158
191
  - !ruby/object:Gem::Dependency
159
192
  name: bundler
160
193
  prerelease: false
161
- requirement: &id010 !ruby/object:Gem::Requirement
194
+ requirement: &id012 !ruby/object:Gem::Requirement
162
195
  none: false
163
196
  requirements:
164
197
  - - ~>
@@ -177,11 +210,11 @@ dependencies:
177
210
  - 21
178
211
  version: 1.0.21
179
212
  type: :development
180
- version_requirements: *id010
213
+ version_requirements: *id012
181
214
  - !ruby/object:Gem::Dependency
182
215
  name: factory_girl
183
216
  prerelease: false
184
- requirement: &id011 !ruby/object:Gem::Requirement
217
+ requirement: &id013 !ruby/object:Gem::Requirement
185
218
  none: false
186
219
  requirements:
187
220
  - - ~>
@@ -193,11 +226,11 @@ dependencies:
193
226
  - 2
194
227
  version: 2.1.2
195
228
  type: :development
196
- version_requirements: *id011
229
+ version_requirements: *id013
197
230
  - !ruby/object:Gem::Dependency
198
231
  name: sqlite3
199
232
  prerelease: false
200
- requirement: &id012 !ruby/object:Gem::Requirement
233
+ requirement: &id014 !ruby/object:Gem::Requirement
201
234
  none: false
202
235
  requirements:
203
236
  - - ">="
@@ -207,11 +240,11 @@ dependencies:
207
240
  - 0
208
241
  version: "0"
209
242
  type: :development
210
- version_requirements: *id012
243
+ version_requirements: *id014
211
244
  - !ruby/object:Gem::Dependency
212
245
  name: cucumber-rails
213
246
  prerelease: false
214
- requirement: &id013 !ruby/object:Gem::Requirement
247
+ requirement: &id015 !ruby/object:Gem::Requirement
215
248
  none: false
216
249
  requirements:
217
250
  - - ~>
@@ -223,11 +256,11 @@ dependencies:
223
256
  - 1
224
257
  version: 1.1.1
225
258
  type: :development
226
- version_requirements: *id013
259
+ version_requirements: *id015
227
260
  - !ruby/object:Gem::Dependency
228
261
  name: database_cleaner
229
262
  prerelease: false
230
- requirement: &id014 !ruby/object:Gem::Requirement
263
+ requirement: &id016 !ruby/object:Gem::Requirement
231
264
  none: false
232
265
  requirements:
233
266
  - - ~>
@@ -239,11 +272,11 @@ dependencies:
239
272
  - 7
240
273
  version: 0.6.7
241
274
  type: :development
242
- version_requirements: *id014
275
+ version_requirements: *id016
243
276
  - !ruby/object:Gem::Dependency
244
277
  name: launchy
245
278
  prerelease: false
246
- requirement: &id015 !ruby/object:Gem::Requirement
279
+ requirement: &id017 !ruby/object:Gem::Requirement
247
280
  none: false
248
281
  requirements:
249
282
  - - ~>
@@ -255,11 +288,11 @@ dependencies:
255
288
  - 5
256
289
  version: 2.0.5
257
290
  type: :development
258
- version_requirements: *id015
291
+ version_requirements: *id017
259
292
  - !ruby/object:Gem::Dependency
260
293
  name: capybara
261
294
  prerelease: false
262
- requirement: &id016 !ruby/object:Gem::Requirement
295
+ requirement: &id018 !ruby/object:Gem::Requirement
263
296
  none: false
264
297
  requirements:
265
298
  - - ~>
@@ -271,22 +304,23 @@ dependencies:
271
304
  - 1
272
305
  version: 1.1.1
273
306
  type: :development
274
- version_requirements: *id016
307
+ version_requirements: *id018
275
308
  - !ruby/object:Gem::Dependency
276
309
  name: ci_reporter
277
310
  prerelease: false
278
- requirement: &id017 !ruby/object:Gem::Requirement
311
+ requirement: &id019 !ruby/object:Gem::Requirement
279
312
  none: false
280
313
  requirements:
281
- - - ~>
314
+ - - "="
282
315
  - !ruby/object:Gem::Version
283
316
  hash: 3
284
317
  segments:
285
318
  - 1
286
319
  - 6
287
- version: "1.6"
320
+ - 6
321
+ version: 1.6.6
288
322
  type: :development
289
- version_requirements: *id017
323
+ version_requirements: *id019
290
324
  description:
291
325
  email: yoon@northwestern.edu
292
326
  executables: []
@@ -302,7 +336,6 @@ files:
302
336
  - MIT-LICENSE
303
337
  - README.md
304
338
  - Rakefile
305
- - app/controllers/results_controller.rb
306
339
  - app/controllers/surveyor_controller.rb
307
340
  - app/helpers/results_helper.rb
308
341
  - app/helpers/survey_form_builder.rb
@@ -327,19 +360,21 @@ files:
327
360
  - app/views/partials/_question_group.html.haml
328
361
  - app/views/partials/_section.html.haml
329
362
  - app/views/partials/_section_menu.html.haml
330
- - app/views/results/index.html.erb
331
- - app/views/results/show.html.erb
332
363
  - app/views/surveyor/edit.html.haml
364
+ - app/views/surveyor/export.json.rabl
333
365
  - app/views/surveyor/new.html.haml
334
366
  - app/views/surveyor/show.html.haml
367
+ - app/views/surveyor/show.json.rabl
335
368
  - ci-exec.sh
336
369
  - config/routes.rb
337
370
  - cucumber.yml
338
371
  - doc/question types.png
372
+ - doc/surveyor reject or delete decision matrix.png
339
373
  - doc/surveyor_models.png
340
374
  - doc/surveyor_models2.png
341
- - features/redcap_parser.feature
342
- - features/step_definitions/common_setps.rb
375
+ - features/export_to_json.feature
376
+ - features/show_survey.feature
377
+ - features/step_definitions/common_steps.rb
343
378
  - features/step_definitions/parser_steps.rb
344
379
  - features/step_definitions/surveyor_steps.rb
345
380
  - features/step_definitions/web_steps.rb
@@ -353,6 +388,7 @@ files:
353
388
  - features/surveyor.feature
354
389
  - features/surveyor_dependencies.feature
355
390
  - features/surveyor_parser.feature
391
+ - features/z_redcap_parser.feature
356
392
  - lib/formtastic/surveyor_builder.rb
357
393
  - lib/generators/surveyor/custom_generator.rb
358
394
  - lib/generators/surveyor/install_generator.rb
@@ -361,7 +397,9 @@ files:
361
397
  - lib/generators/surveyor/templates/config/locales/surveyor_en.yml
362
398
  - lib/generators/surveyor/templates/config/locales/surveyor_es.yml
363
399
  - lib/generators/surveyor/templates/config/locales/surveyor_he.yml
400
+ - lib/generators/surveyor/templates/db/migrate/add_api_id_to_question_groups.rb
364
401
  - lib/generators/surveyor/templates/db/migrate/add_api_ids.rb
402
+ - lib/generators/surveyor/templates/db/migrate/add_api_ids_to_response_sets_and_responses.rb
365
403
  - lib/generators/surveyor/templates/db/migrate/add_correct_answer_id_to_questions.rb
366
404
  - lib/generators/surveyor/templates/db/migrate/add_default_value_to_answers.rb
367
405
  - lib/generators/surveyor/templates/db/migrate/add_display_order_to_surveys.rb
@@ -383,21 +421,35 @@ files:
383
421
  - lib/generators/surveyor/templates/db/migrate/create_validations.rb
384
422
  - lib/generators/surveyor/templates/public/images/surveyor/next.gif
385
423
  - lib/generators/surveyor/templates/public/images/surveyor/prev.gif
424
+ - lib/generators/surveyor/templates/public/javascripts/surveyor/jquery-ui-timepicker-addon.js
425
+ - lib/generators/surveyor/templates/public/javascripts/surveyor/jquery-ui.js
386
426
  - lib/generators/surveyor/templates/public/javascripts/surveyor/jquery.blockUI.js
387
427
  - lib/generators/surveyor/templates/public/javascripts/surveyor/jquery.surveyor.js
388
428
  - lib/generators/surveyor/templates/public/javascripts/surveyor/jquery.tools.min.js
389
429
  - lib/generators/surveyor/templates/public/stylesheets/sass/custom.sass
390
430
  - lib/generators/surveyor/templates/public/stylesheets/sass/surveyor.sass
391
431
  - lib/generators/surveyor/templates/public/stylesheets/surveyor/dateinput.css
432
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/jquery-ui-timepicker-addon.css
433
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/jquery-ui.custom.css
392
434
  - lib/generators/surveyor/templates/public/stylesheets/surveyor/reset.css
393
435
  - lib/generators/surveyor/templates/public/stylesheets/surveyor/results.css
436
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_100_f6f6f6_1x400.png
437
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_100_fdf5ce_1x400.png
438
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_glass_65_ffffff_1x400.png
439
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_gloss-wave_35_f6a828_500x100.png
440
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-bg_highlight-soft_75_ffe45c_1x100.png
441
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-icons_ef8c08_256x240.png
442
+ - lib/generators/surveyor/templates/public/stylesheets/surveyor/ui-icons_ffffff_256x240.png
394
443
  - lib/generators/surveyor/templates/surveys/EXTENDING_SURVEYOR.md
444
+ - lib/generators/surveyor/templates/surveys/MODIFYING_SURVEYOR.md
445
+ - lib/generators/surveyor/templates/surveys/date_survey.rb
395
446
  - lib/generators/surveyor/templates/surveys/kitchen_sink_survey.rb
396
447
  - lib/generators/surveyor/templates/surveys/quiz.rb
397
448
  - lib/surveyor.rb
398
449
  - lib/surveyor/acts_as_response.rb
399
450
  - lib/surveyor/common.rb
400
451
  - lib/surveyor/engine.rb
452
+ - lib/surveyor/helpers/surveyor_helper_methods.rb
401
453
  - lib/surveyor/models/answer_methods.rb
402
454
  - lib/surveyor/models/dependency_condition_methods.rb
403
455
  - lib/surveyor/models/dependency_methods.rb
@@ -411,6 +463,7 @@ files:
411
463
  - lib/surveyor/models/validation_methods.rb
412
464
  - lib/surveyor/parser.rb
413
465
  - lib/surveyor/redcap_parser.rb
466
+ - lib/surveyor/render_text.rb
414
467
  - lib/surveyor/surveyor_controller_methods.rb
415
468
  - lib/surveyor/unparser.rb
416
469
  - lib/surveyor/version.rb
@@ -420,8 +473,10 @@ files:
420
473
  - spec/factories.rb
421
474
  - spec/helpers/surveyor_helper_spec.rb
422
475
  - spec/lib/benchmark_spec.rb
476
+ - spec/lib/chinese_survey.rb
423
477
  - spec/lib/common_spec.rb
424
478
  - spec/lib/parser_spec.rb
479
+ - spec/lib/rake_kitchen_sink.rb
425
480
  - spec/lib/redcap_parser_spec.rb
426
481
  - spec/lib/unparser_spec.rb
427
482
  - spec/models/answer_spec.rb
@@ -473,8 +528,9 @@ signing_key:
473
528
  specification_version: 3
474
529
  summary: A rails (gem) plugin to enable surveys in your application
475
530
  test_files:
476
- - features/redcap_parser.feature
477
- - features/step_definitions/common_setps.rb
531
+ - features/export_to_json.feature
532
+ - features/show_survey.feature
533
+ - features/step_definitions/common_steps.rb
478
534
  - features/step_definitions/parser_steps.rb
479
535
  - features/step_definitions/surveyor_steps.rb
480
536
  - features/step_definitions/web_steps.rb
@@ -488,12 +544,15 @@ test_files:
488
544
  - features/surveyor.feature
489
545
  - features/surveyor_dependencies.feature
490
546
  - features/surveyor_parser.feature
547
+ - features/z_redcap_parser.feature
491
548
  - spec/controllers/surveyor_controller_spec.rb
492
549
  - spec/factories.rb
493
550
  - spec/helpers/surveyor_helper_spec.rb
494
551
  - spec/lib/benchmark_spec.rb
552
+ - spec/lib/chinese_survey.rb
495
553
  - spec/lib/common_spec.rb
496
554
  - spec/lib/parser_spec.rb
555
+ - spec/lib/rake_kitchen_sink.rb
497
556
  - spec/lib/redcap_parser_spec.rb
498
557
  - spec/lib/unparser_spec.rb
499
558
  - spec/models/answer_spec.rb