surveyor 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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