surveyor 1.3.0 → 1.4.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 (48) hide show
  1. data/CHANGELOG.md +22 -0
  2. data/Gemfile +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +4 -1
  5. data/app/views/partials/_answer.html.haml +1 -1
  6. data/app/views/partials/_section_menu.html.haml +8 -1
  7. data/app/views/surveyor/edit.html.haml +1 -1
  8. data/app/views/surveyor/new.html.haml +1 -1
  9. data/app/views/surveyor/show.html.haml +17 -20
  10. data/ci-exec.sh +1 -1
  11. data/config/routes.rb +7 -7
  12. data/features/internationalization.feature +68 -2
  13. data/features/show_survey.feature +29 -0
  14. data/features/step_definitions/parser_steps.rb +15 -0
  15. data/features/step_definitions/surveyor_steps.rb +11 -9
  16. data/features/support/paths.rb +5 -2
  17. data/features/z_redcap_parser.feature +4 -1
  18. data/lib/assets/javascripts/surveyor/jquery.surveyor.js +5 -1
  19. data/lib/assets/stylesheets/surveyor.sass +2 -0
  20. data/lib/generators/surveyor/install_generator.rb +4 -0
  21. data/lib/generators/surveyor/templates/app/controllers/surveyor_controller.rb +2 -2
  22. data/lib/generators/surveyor/templates/config/locales/surveyor_en.yml +1 -0
  23. data/lib/generators/surveyor/templates/config/locales/surveyor_es.yml +1 -0
  24. data/lib/generators/surveyor/templates/config/locales/surveyor_he.yml +1 -0
  25. data/lib/generators/surveyor/templates/config/locales/surveyor_ko.yml +2 -1
  26. data/lib/generators/surveyor/templates/surveys/languages.rb +9 -5
  27. data/lib/generators/surveyor/templates/surveys/translations/languages.es.yml +4 -0
  28. data/lib/generators/surveyor/templates/surveys/translations/languages.he.yml +4 -0
  29. data/lib/generators/surveyor/templates/surveys/translations/languages.ko.yml +4 -0
  30. data/lib/surveyor/helpers/surveyor_helper_methods.rb +1 -1
  31. data/lib/surveyor/models/answer_methods.rb +2 -2
  32. data/lib/surveyor/models/question_methods.rb +3 -3
  33. data/lib/surveyor/models/response_methods.rb +18 -5
  34. data/lib/surveyor/models/response_set_methods.rb +1 -1
  35. data/lib/surveyor/models/survey_methods.rb +2 -2
  36. data/lib/surveyor/models/survey_section_methods.rb +2 -2
  37. data/lib/surveyor/parser.rb +25 -4
  38. data/lib/surveyor/redcap_parser.rb +13 -13
  39. data/lib/surveyor/surveyor_controller_methods.rb +22 -19
  40. data/lib/surveyor/version.rb +1 -1
  41. data/lib/tasks/surveyor_tasks.rake +1 -1
  42. data/spec/controllers/surveyor_controller_spec.rb +155 -269
  43. data/spec/lib/parser_spec.rb +189 -21
  44. data/spec/models/response_set_spec.rb +7 -5
  45. data/spec/spec_helper.rb +3 -1
  46. data/stacktests.sh +1 -1
  47. data/surveyor.gemspec +3 -1
  48. metadata +271 -275
@@ -1,36 +1,204 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
3
 
3
4
  describe Surveyor::Parser do
4
- before(:each) do
5
- @parser = Surveyor::Parser.new
6
- end
5
+ let(:parser){ Surveyor::Parser.new }
7
6
  it "should translate shortcuts into full model names" do
8
- @parser.send(:full, "section").should == "survey_section"
9
- @parser.send(:full, "g").should == "question_group"
10
- @parser.send(:full, "repeater").should == "question_group"
11
- @parser.send(:full, "label").should == "question"
12
- @parser.send(:full, "vc").should == "validation_condition"
13
- @parser.send(:full, "vcondition").should == "validation_condition"
7
+ parser.send(:full, "section").should == "survey_section"
8
+ parser.send(:full, "g").should == "question_group"
9
+ parser.send(:full, "repeater").should == "question_group"
10
+ parser.send(:full, "label").should == "question"
11
+ parser.send(:full, "vc").should == "validation_condition"
12
+ parser.send(:full, "vcondition").should == "validation_condition"
14
13
  end
15
14
  it "should translate 'condition' based on context" do
16
- @parser.send(:full, "condition").should == "dependency_condition"
17
- @parser.send(:full, "c").should == "dependency_condition"
18
- @parser.context[:validation] = Validation.new
19
- @parser.send(:full, "condition").should == "validation_condition"
20
- @parser.send(:full, "c").should == "validation_condition"
21
- @parser.context[:validation] = nil
22
- @parser.send(:full, "condition").should == "dependency_condition"
23
- @parser.send(:full, "c").should == "dependency_condition"
15
+ parser.send(:full, "condition").should == "dependency_condition"
16
+ parser.send(:full, "c").should == "dependency_condition"
17
+ parser.context[:validation] = Validation.new
18
+ parser.send(:full, "condition").should == "validation_condition"
19
+ parser.send(:full, "c").should == "validation_condition"
20
+ parser.context[:validation] = nil
21
+ parser.send(:full, "condition").should == "dependency_condition"
22
+ parser.send(:full, "c").should == "dependency_condition"
24
23
  end
25
24
  it "should not translate bad shortcuts" do
26
- @parser.send(:full, "quack").should == "quack"
27
- @parser.send(:full, "grizzly").should == "grizzly"
25
+ parser.send(:full, "quack").should == "quack"
26
+ parser.send(:full, "grizzly").should == "grizzly"
28
27
  end
29
28
  it "should identify models that take blocks" do
30
- @parser.send(:block_models).should == %w(survey survey_section question_group)
29
+ parser.send(:block_models).should == %w(survey survey_section question_group)
31
30
  end
32
31
  it "should return a survey object" do
33
32
  Surveyor::Parser.new.parse("survey 'hi' do\n end").is_a?(Survey).should be_true
34
33
  end
34
+ describe 'reference checking' do
35
+ it 'accepts Answer#reference_identifier via underscore or hash syntax' do
36
+ survey_text = <<END
37
+ survey "Numbers" do
38
+ section_one "One" do
39
+ q_1 "Select a number", :pick => :one
40
+ a "One", {:reference_identifier => "1"}
41
+ a_2 "Two"
42
+ a_3 "Three"
43
+
44
+ label_2 "One is the loneliest number..."
45
+ dependency :rule => "A"
46
+ condition_A :q_1, "==", {:answer_reference => "1"}
47
+
48
+ label_3 "Two can be as bad as one..."
49
+ dependency :rule => "A"
50
+ condition_A :q_1, "==", {:answer_reference => "2"}
51
+
52
+ label_4 "that you'll ever do"
53
+ dependency :rule => "A"
54
+ condition_A :q_1, "==", :a_1
55
+
56
+ label_5 "it's the loneliest number since the number one"
57
+ dependency :rule => "A"
58
+ condition_A :q_1, "==", :a_2
59
+ end
60
+ end
61
+ END
62
+ survey = Surveyor::Parser.new.parse(survey_text)
63
+ survey.is_a?(Survey).should == true
64
+ end
65
+
66
+ end
67
+
68
+ describe 'translations' do
69
+
70
+ it 'should produce the survey text for :default locale' do
71
+ survey_text = <<END
72
+ survey "One language is never enough" do
73
+ translations :en => :default, :es =>{'questions' => {'name' =>{ 'text' => '¡Hola!'}}}
74
+ section_one "One" do
75
+ label_name "Hello!"
76
+ end
77
+ end
78
+ END
79
+ survey = Surveyor::Parser.new.parse(survey_text)
80
+ survey.is_a?(Survey).should == true
81
+ survey.translations.size.should == 2
82
+ question = survey.sections.first.questions.first
83
+ question.translation(:en)[:text].should == "Hello!"
84
+ question.translation(:es)[:text].should == "¡Hola!"
85
+ end
35
86
 
36
- end
87
+
88
+ it 'should raise an error w/o :default locale' do
89
+ survey_text = <<END
90
+ survey "One language is never enough" do
91
+ translations :es =>{'questions' => {'name' =>{ 'text' => '¡Hola!'}}}
92
+ section_one "One" do
93
+ label_name "Hello!"
94
+ end
95
+ end
96
+ END
97
+ s = Survey.all.size
98
+ expect {survey = Surveyor::Parser.new.parse(survey_text)}.to raise_error
99
+ Survey.all.size.should == s
100
+ end
101
+
102
+
103
+ it 'should allow multiple default locales' do
104
+ survey_text = <<END
105
+ survey "Just don't talk about tyres" do
106
+ translations :'en-US' => :default, :'en-GB' => :default, :es =>{'questions' => {'name' =>{'text' => '¡Hola!'}}}
107
+ section_one "One" do
108
+ label_name "Hello!"
109
+ end
110
+ end
111
+ END
112
+
113
+ survey = Surveyor::Parser.new.parse(survey_text)
114
+ survey.is_a?(Survey).should == true
115
+ survey.translations.size.should == 3
116
+ question = survey.sections.first.questions.first
117
+ question.translation(:'en-US')[:text].should == "Hello!"
118
+ question.translation(:'en-GB')[:text].should == "Hello!"
119
+ question.translation(:es)[:text].should == "¡Hola!"
120
+ end
121
+
122
+ context 'when a translation is specified as a Hash' do
123
+ it 'should should treat the hash as an inline translation' do
124
+ survey_text = <<END
125
+ survey "One language is never enough" do
126
+ translations :en => :default, :es => {"title"=>"Un idioma nunca es suficiente", "survey_sections"=>{"one"=>{"title"=>"Uno"}}, "question_groups"=>{"hello"=>{"text"=>"¡Hola!"}}, "questions"=>{"name"=>{"text"=>"¿Cómo se llama Usted?", "answers"=>{"name"=>{"help_text"=>"Mi nombre es..."}}}}}
127
+ section_one "One" do
128
+ g_hello "Hello" do
129
+ q_name "What is your name?"
130
+ a_name :string, :help_text => "My name is..."
131
+ end
132
+ end
133
+ end
134
+ END
135
+ survey = Surveyor::Parser.new.parse(survey_text)
136
+ survey.is_a?(Survey).should == true
137
+ survey.translations.size.should == 2
138
+ survey.translation(:es)['title'].should == "Un idioma nunca es suficiente"
139
+ end
140
+ end
141
+
142
+ context 'when a translation is specified as a String' do
143
+
144
+ context 'when the survey filename is not given' do
145
+ it 'should look for the translation file relative to pwd' do
146
+ Dir.mktmpdir do |dir|
147
+ FileUtils.cd(dir) do
148
+ translation_yaml = YAML::dump({'title' => 'Un idioma nunca es suficiente'})
149
+ translation_temp_file = Tempfile.new('parser_spec_translation.yml',dir)
150
+ translation_temp_file.write(translation_yaml)
151
+ translation_temp_file.flush
152
+ survey_text = <<END
153
+ survey "One language is never enough" do
154
+ translations :es =>'#{File.basename(translation_temp_file.path)}', :en => :default
155
+ section_one "One" do
156
+ g_hello "Hello" do
157
+ q_name "What is your name?"
158
+ a_name :string, :help_text => "My name is..."
159
+ end
160
+ end
161
+ end
162
+ END
163
+ survey_temp_file = Tempfile.new('parser_spec_survey.rb',dir)
164
+ survey_temp_file.write(survey_text)
165
+ survey_temp_file.flush
166
+ Surveyor::Parser.parse(File.read(survey_temp_file.path))
167
+ survey = Survey.where(:title=>'One language is never enough').first
168
+ survey.nil?.should == false
169
+ survey.translation(:es)['title'].should == "Un idioma nunca es suficiente"
170
+ end
171
+ end
172
+ end
173
+ end
174
+ context 'when the survey filename is given' do
175
+ it 'should look for the translation file relative to the survey directory' do
176
+ Dir.mktmpdir do |dir|
177
+ translation_yaml = YAML::dump({'title' => 'Un idioma nunca es suficiente'})
178
+ translation_temp_file = Tempfile.new('surveyor:parser_spec.rb',dir)
179
+ translation_temp_file.write(translation_yaml)
180
+ translation_temp_file.flush
181
+ survey_text = <<END
182
+ survey "One language is never enough" do
183
+ translations :es =>'#{File.basename(translation_temp_file.path)}', :en => :default
184
+ section_one "One" do
185
+ g_hello "Hello" do
186
+ q_name "What is your name?"
187
+ a_name :string, :help_text => "My name is..."
188
+ end
189
+ end
190
+ end
191
+ END
192
+ survey_temp_file = Tempfile.new('surveyor:parser_spec.rb',dir)
193
+ survey_temp_file.write(survey_text)
194
+ survey_temp_file.flush
195
+ Surveyor::Parser.parse_file(survey_temp_file.path)
196
+ survey = Survey.where(:title=>'One language is never enough').first
197
+ survey.nil?.should == false
198
+ survey.translation(:es)['title'].should == "Un idioma nunca es suficiente"
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
204
+ end
@@ -132,11 +132,13 @@ describe ResponseSet do
132
132
  end
133
133
 
134
134
  [
135
- ['string_value', 'foo', '', 'foo'],
136
- ['datetime_value', '2010-10-01', '', Date.new(2010, 10, 1)],
137
- ['integer_value', '9', '', 9],
138
- ['float_value', '4.0', '', 4.0],
139
- ['text_value', 'more than foo', '', 'more than foo']
135
+ ['string_value', 'foo', '', 'foo'],
136
+ ['datetime_value', '2010-10-01 17:15', '', Time.zone.parse('2010-10-1 17:15')],
137
+ ['date_value', '2010-10-01', '', '2010-10-01'],
138
+ ['time_value', '17:15', '', '17:15'],
139
+ ['integer_value', '9', '', 9],
140
+ ['float_value', '4.0', '', 4.0],
141
+ ['text_value', 'more than foo', '', 'more than foo']
140
142
  ].each do |value_type, set_value, blank_value, expected_value|
141
143
  describe "plus #{value_type}" do
142
144
  it 'saves the value' do
@@ -7,7 +7,7 @@ rescue LoadError => e
7
7
  end
8
8
  require 'rspec/rails'
9
9
  require 'factories'
10
-
10
+ require 'json_spec'
11
11
  require 'database_cleaner'
12
12
 
13
13
  # for asset_pipeline_enabled? in models
@@ -18,6 +18,8 @@ include Surveyor::Helpers::AssetPipeline
18
18
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
19
19
 
20
20
  RSpec.configure do |config|
21
+ config.include JsonSpec::Helpers
22
+
21
23
  config.treat_symbols_as_metadata_keys_with_true_values = true
22
24
 
23
25
  # == Mock Framework
@@ -7,7 +7,7 @@ PS3="Choose a stack or 'q' to quit: "
7
7
 
8
8
  options=""
9
9
  rubies=(ree 1.9.3)
10
- rails_versions=(rails_3.0 rails_3.1 rails_3.2)
10
+ rails_versions=(rails_3.1 rails_3.2)
11
11
 
12
12
  for i in "${rubies[@]}"
13
13
  do
@@ -18,7 +18,9 @@ Gem::Specification.new do |s|
18
18
  s.require_paths = ["lib"]
19
19
 
20
20
  s.add_dependency('rails', '~> 3.0')
21
- s.add_dependency('haml', '~> 3.1.3')
21
+ # '< 5.0' is to be conservative; once 5.0 comes out we should test with it and
22
+ # allow it if it works.
23
+ s.add_dependency('haml', '>= 3.1.3', '< 5.0')
22
24
  s.add_dependency('sass')
23
25
  s.add_dependency('fastercsv', '~> 1.5.4')
24
26
  s.add_dependency('formtastic', '~> 2.1.0')
metadata CHANGED
@@ -1,351 +1,355 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: surveyor
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 0
10
- version: 1.3.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Brian Chamberlain
14
9
  - Mark Yoon
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2013-03-15 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2013-04-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: rails
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
19
+ requirements:
27
20
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 3
32
- - 0
33
- version: "3.0"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
34
23
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: haml
38
24
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
40
26
  none: false
41
- requirements:
27
+ requirements:
42
28
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 5
45
- segments:
46
- - 3
47
- - 1
48
- - 3
29
+ - !ruby/object:Gem::Version
30
+ version: '3.0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: haml
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
49
38
  version: 3.1.3
39
+ - - <
40
+ - !ruby/object:Gem::Version
41
+ version: '5.0'
50
42
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: sass
54
43
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 3.1.3
50
+ - - <
51
+ - !ruby/object:Gem::Version
52
+ version: '5.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: sass
55
+ requirement: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
64
61
  type: :runtime
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: fastercsv
68
62
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: fastercsv
71
+ requirement: !ruby/object:Gem::Requirement
70
72
  none: false
71
- requirements:
73
+ requirements:
72
74
  - - ~>
73
- - !ruby/object:Gem::Version
74
- hash: 11
75
- segments:
76
- - 1
77
- - 5
78
- - 4
75
+ - !ruby/object:Gem::Version
79
76
  version: 1.5.4
80
77
  type: :runtime
81
- version_requirements: *id004
82
- - !ruby/object:Gem::Dependency
83
- name: formtastic
84
78
  prerelease: false
85
- requirement: &id005 !ruby/object:Gem::Requirement
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ~>
83
+ - !ruby/object:Gem::Version
84
+ version: 1.5.4
85
+ - !ruby/object:Gem::Dependency
86
+ name: formtastic
87
+ requirement: !ruby/object:Gem::Requirement
86
88
  none: false
87
- requirements:
89
+ requirements:
88
90
  - - ~>
89
- - !ruby/object:Gem::Version
90
- hash: 11
91
- segments:
92
- - 2
93
- - 1
94
- - 0
91
+ - !ruby/object:Gem::Version
95
92
  version: 2.1.0
96
93
  type: :runtime
97
- version_requirements: *id005
98
- - !ruby/object:Gem::Dependency
99
- name: uuidtools
100
94
  prerelease: false
101
- requirement: &id006 !ruby/object:Gem::Requirement
95
+ version_requirements: !ruby/object:Gem::Requirement
102
96
  none: false
103
- requirements:
97
+ requirements:
104
98
  - - ~>
105
- - !ruby/object:Gem::Version
106
- hash: 1
107
- segments:
108
- - 2
109
- - 1
110
- version: "2.1"
99
+ - !ruby/object:Gem::Version
100
+ version: 2.1.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: uuidtools
103
+ requirement: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ version: '2.1'
111
109
  type: :runtime
112
- version_requirements: *id006
113
- - !ruby/object:Gem::Dependency
114
- name: mustache
115
110
  prerelease: false
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
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ~>
115
+ - !ruby/object:Gem::Version
116
+ version: '2.1'
117
+ - !ruby/object:Gem::Dependency
118
+ name: mustache
119
+ requirement: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
126
124
  version: 0.99.4
127
125
  type: :runtime
128
- version_requirements: *id007
129
- - !ruby/object:Gem::Dependency
130
- name: rabl
131
126
  prerelease: false
132
- requirement: &id008 !ruby/object:Gem::Requirement
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - '='
131
+ - !ruby/object:Gem::Version
132
+ version: 0.99.4
133
+ - !ruby/object:Gem::Dependency
134
+ name: rabl
135
+ requirement: !ruby/object:Gem::Requirement
133
136
  none: false
134
- requirements:
137
+ requirements:
135
138
  - - ~>
136
- - !ruby/object:Gem::Version
137
- hash: 29
138
- segments:
139
- - 0
140
- - 6
141
- - 13
139
+ - !ruby/object:Gem::Version
142
140
  version: 0.6.13
143
141
  type: :runtime
144
- version_requirements: *id008
145
- - !ruby/object:Gem::Dependency
146
- name: yard
147
142
  prerelease: false
148
- requirement: &id009 !ruby/object:Gem::Requirement
149
- none: false
150
- requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- hash: 3
154
- segments:
155
- - 0
156
- version: "0"
143
+ version_requirements: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ~>
147
+ - !ruby/object:Gem::Version
148
+ version: 0.6.13
149
+ - !ruby/object:Gem::Dependency
150
+ name: yard
151
+ requirement: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
157
  type: :development
158
- version_requirements: *id009
159
- - !ruby/object:Gem::Dependency
160
- name: rake
161
158
  prerelease: false
162
- requirement: &id010 !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- hash: 63
168
- segments:
169
- - 0
170
- - 9
171
- - 2
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: rake
167
+ requirement: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
172
  version: 0.9.2
173
173
  type: :development
174
- version_requirements: *id010
175
- - !ruby/object:Gem::Dependency
176
- name: rspec-rails
177
174
  prerelease: false
178
- requirement: &id011 !ruby/object:Gem::Requirement
175
+ version_requirements: !ruby/object:Gem::Requirement
179
176
  none: false
180
- requirements:
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: 0.9.2
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec-rails
183
+ requirement: !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
181
186
  - - ~>
182
- - !ruby/object:Gem::Version
183
- hash: 43
184
- segments:
185
- - 2
186
- - 9
187
- - 0
187
+ - !ruby/object:Gem::Version
188
188
  version: 2.9.0
189
189
  type: :development
190
- version_requirements: *id011
191
- - !ruby/object:Gem::Dependency
192
- name: bundler
193
190
  prerelease: false
194
- requirement: &id012 !ruby/object:Gem::Requirement
191
+ version_requirements: !ruby/object:Gem::Requirement
195
192
  none: false
196
- requirements:
193
+ requirements:
197
194
  - - ~>
198
- - !ruby/object:Gem::Version
199
- hash: 15
200
- segments:
201
- - 1
202
- - 0
203
- version: "1.0"
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- hash: 61
207
- segments:
208
- - 1
209
- - 0
210
- - 21
195
+ - !ruby/object:Gem::Version
196
+ version: 2.9.0
197
+ - !ruby/object:Gem::Dependency
198
+ name: bundler
199
+ requirement: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ~>
203
+ - !ruby/object:Gem::Version
204
+ version: '1.0'
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
211
207
  version: 1.0.21
212
208
  type: :development
213
- version_requirements: *id012
214
- - !ruby/object:Gem::Dependency
215
- name: factory_girl
216
209
  prerelease: false
217
- requirement: &id013 !ruby/object:Gem::Requirement
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: '1.0'
216
+ - - ! '>='
217
+ - !ruby/object:Gem::Version
218
+ version: 1.0.21
219
+ - !ruby/object:Gem::Dependency
220
+ name: factory_girl
221
+ requirement: !ruby/object:Gem::Requirement
218
222
  none: false
219
- requirements:
223
+ requirements:
220
224
  - - ~>
221
- - !ruby/object:Gem::Version
222
- hash: 15
223
- segments:
224
- - 2
225
- - 1
226
- - 2
225
+ - !ruby/object:Gem::Version
227
226
  version: 2.1.2
228
227
  type: :development
229
- version_requirements: *id013
230
- - !ruby/object:Gem::Dependency
231
- name: sqlite3
232
228
  prerelease: false
233
- requirement: &id014 !ruby/object:Gem::Requirement
234
- none: false
235
- requirements:
236
- - - ">="
237
- - !ruby/object:Gem::Version
238
- hash: 3
239
- segments:
240
- - 0
241
- version: "0"
229
+ version_requirements: !ruby/object:Gem::Requirement
230
+ none: false
231
+ requirements:
232
+ - - ~>
233
+ - !ruby/object:Gem::Version
234
+ version: 2.1.2
235
+ - !ruby/object:Gem::Dependency
236
+ name: sqlite3
237
+ requirement: !ruby/object:Gem::Requirement
238
+ none: false
239
+ requirements:
240
+ - - ! '>='
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
242
243
  type: :development
243
- version_requirements: *id014
244
- - !ruby/object:Gem::Dependency
245
- name: cucumber-rails
246
244
  prerelease: false
247
- requirement: &id015 !ruby/object:Gem::Requirement
245
+ version_requirements: !ruby/object:Gem::Requirement
248
246
  none: false
249
- requirements:
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: cucumber-rails
253
+ requirement: !ruby/object:Gem::Requirement
254
+ none: false
255
+ requirements:
250
256
  - - ~>
251
- - !ruby/object:Gem::Version
252
- hash: 17
253
- segments:
254
- - 1
255
- - 1
256
- - 1
257
+ - !ruby/object:Gem::Version
257
258
  version: 1.1.1
258
259
  type: :development
259
- version_requirements: *id015
260
- - !ruby/object:Gem::Dependency
261
- name: database_cleaner
262
260
  prerelease: false
263
- requirement: &id016 !ruby/object:Gem::Requirement
261
+ version_requirements: !ruby/object:Gem::Requirement
264
262
  none: false
265
- requirements:
263
+ requirements:
266
264
  - - ~>
267
- - !ruby/object:Gem::Version
268
- hash: 9
269
- segments:
270
- - 0
271
- - 6
272
- - 7
265
+ - !ruby/object:Gem::Version
266
+ version: 1.1.1
267
+ - !ruby/object:Gem::Dependency
268
+ name: database_cleaner
269
+ requirement: !ruby/object:Gem::Requirement
270
+ none: false
271
+ requirements:
272
+ - - ~>
273
+ - !ruby/object:Gem::Version
273
274
  version: 0.6.7
274
275
  type: :development
275
- version_requirements: *id016
276
- - !ruby/object:Gem::Dependency
277
- name: launchy
278
276
  prerelease: false
279
- requirement: &id017 !ruby/object:Gem::Requirement
277
+ version_requirements: !ruby/object:Gem::Requirement
280
278
  none: false
281
- requirements:
279
+ requirements:
282
280
  - - ~>
283
- - !ruby/object:Gem::Version
284
- hash: 5
285
- segments:
286
- - 2
287
- - 0
288
- - 5
281
+ - !ruby/object:Gem::Version
282
+ version: 0.6.7
283
+ - !ruby/object:Gem::Dependency
284
+ name: launchy
285
+ requirement: !ruby/object:Gem::Requirement
286
+ none: false
287
+ requirements:
288
+ - - ~>
289
+ - !ruby/object:Gem::Version
289
290
  version: 2.0.5
290
291
  type: :development
291
- version_requirements: *id017
292
- - !ruby/object:Gem::Dependency
293
- name: capybara
294
292
  prerelease: false
295
- requirement: &id018 !ruby/object:Gem::Requirement
293
+ version_requirements: !ruby/object:Gem::Requirement
294
+ none: false
295
+ requirements:
296
+ - - ~>
297
+ - !ruby/object:Gem::Version
298
+ version: 2.0.5
299
+ - !ruby/object:Gem::Dependency
300
+ name: capybara
301
+ requirement: !ruby/object:Gem::Requirement
296
302
  none: false
297
- requirements:
303
+ requirements:
298
304
  - - ~>
299
- - !ruby/object:Gem::Version
300
- hash: 17
301
- segments:
302
- - 1
303
- - 1
304
- - 1
305
+ - !ruby/object:Gem::Version
305
306
  version: 1.1.1
306
307
  type: :development
307
- version_requirements: *id018
308
- - !ruby/object:Gem::Dependency
309
- name: ci_reporter
310
308
  prerelease: false
311
- requirement: &id019 !ruby/object:Gem::Requirement
312
- none: false
313
- requirements:
314
- - - "="
315
- - !ruby/object:Gem::Version
316
- hash: 3
317
- segments:
318
- - 1
319
- - 6
320
- - 6
309
+ version_requirements: !ruby/object:Gem::Requirement
310
+ none: false
311
+ requirements:
312
+ - - ~>
313
+ - !ruby/object:Gem::Version
314
+ version: 1.1.1
315
+ - !ruby/object:Gem::Dependency
316
+ name: ci_reporter
317
+ requirement: !ruby/object:Gem::Requirement
318
+ none: false
319
+ requirements:
320
+ - - '='
321
+ - !ruby/object:Gem::Version
321
322
  version: 1.6.6
322
323
  type: :development
323
- version_requirements: *id019
324
- - !ruby/object:Gem::Dependency
325
- name: json_spec
326
324
  prerelease: false
327
- requirement: &id020 !ruby/object:Gem::Requirement
325
+ version_requirements: !ruby/object:Gem::Requirement
328
326
  none: false
329
- requirements:
327
+ requirements:
328
+ - - '='
329
+ - !ruby/object:Gem::Version
330
+ version: 1.6.6
331
+ - !ruby/object:Gem::Dependency
332
+ name: json_spec
333
+ requirement: !ruby/object:Gem::Requirement
334
+ none: false
335
+ requirements:
330
336
  - - ~>
331
- - !ruby/object:Gem::Version
332
- hash: 17
333
- segments:
334
- - 1
335
- - 0
336
- - 3
337
+ - !ruby/object:Gem::Version
337
338
  version: 1.0.3
338
339
  type: :development
339
- version_requirements: *id020
340
+ prerelease: false
341
+ version_requirements: !ruby/object:Gem::Requirement
342
+ none: false
343
+ requirements:
344
+ - - ~>
345
+ - !ruby/object:Gem::Version
346
+ version: 1.0.3
340
347
  description:
341
348
  email: yoon@northwestern.edu
342
349
  executables: []
343
-
344
350
  extensions: []
345
-
346
351
  extra_rdoc_files: []
347
-
348
- files:
352
+ files:
349
353
  - .gitignore
350
354
  - .rspec
351
355
  - CHANGELOG.md
@@ -558,38 +562,30 @@ files:
558
562
  - surveyor.gemspec
559
563
  homepage: http://github.com/NUBIC/surveyor
560
564
  licenses: []
561
-
562
- post_install_message: Thanks for installing surveyor! The time has come to run the surveyor generator and migrate your database, even if you are upgrading.
565
+ post_install_message: Thanks for installing surveyor! The time has come to run the
566
+ surveyor generator and migrate your database, even if you are upgrading.
563
567
  rdoc_options: []
564
-
565
- require_paths:
568
+ require_paths:
566
569
  - lib
567
- required_ruby_version: !ruby/object:Gem::Requirement
570
+ required_ruby_version: !ruby/object:Gem::Requirement
568
571
  none: false
569
- requirements:
570
- - - ">="
571
- - !ruby/object:Gem::Version
572
- hash: 3
573
- segments:
574
- - 0
575
- version: "0"
576
- required_rubygems_version: !ruby/object:Gem::Requirement
572
+ requirements:
573
+ - - ! '>='
574
+ - !ruby/object:Gem::Version
575
+ version: '0'
576
+ required_rubygems_version: !ruby/object:Gem::Requirement
577
577
  none: false
578
- requirements:
579
- - - ">="
580
- - !ruby/object:Gem::Version
581
- hash: 3
582
- segments:
583
- - 0
584
- version: "0"
578
+ requirements:
579
+ - - ! '>='
580
+ - !ruby/object:Gem::Version
581
+ version: '0'
585
582
  requirements: []
586
-
587
583
  rubyforge_project:
588
- rubygems_version: 1.8.15
584
+ rubygems_version: 1.8.24
589
585
  signing_key:
590
586
  specification_version: 3
591
587
  summary: A rails (gem) plugin to enable surveys in your application
592
- test_files:
588
+ test_files:
593
589
  - features/ajax_submissions.feature
594
590
  - features/export_to_json.feature
595
591
  - features/internationalization.feature