quorum 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/Gemfile.lock +58 -58
  2. data/HISTORY.md +4 -0
  3. data/README.rdoc +31 -31
  4. data/app/assets/javascripts/quorum/jobs.js +2 -2
  5. data/app/assets/javascripts/quorum/quorum.js +55 -55
  6. data/app/assets/stylesheets/quorum/application.css +23 -23
  7. data/app/assets/stylesheets/quorum/jquery-ui-1.8.16.custom.css +5 -5
  8. data/app/controllers/quorum/jobs_controller.rb +7 -7
  9. data/app/models/quorum/blastn_job.rb +1 -1
  10. data/app/models/quorum/blastp_job.rb +1 -1
  11. data/app/models/quorum/blastx_job.rb +1 -1
  12. data/app/models/quorum/job.rb +19 -19
  13. data/app/models/quorum/tblastn_job.rb +1 -1
  14. data/app/views/quorum/jobs/form/_blastn_form.html.erb +7 -7
  15. data/app/views/quorum/jobs/form/_blastp_form.html.erb +7 -7
  16. data/app/views/quorum/jobs/form/_blastx_form.html.erb +7 -7
  17. data/app/views/quorum/jobs/form/_tblastn_form.html.erb +7 -7
  18. data/app/views/quorum/jobs/new.html.erb +9 -9
  19. data/app/views/quorum/jobs/show.html.erb +7 -7
  20. data/app/views/quorum/jobs/templates/_blast_detailed_report_template.html.erb +3 -3
  21. data/app/views/quorum/jobs/templates/_blast_template.html.erb +4 -4
  22. data/lib/generators/quorum/install_generator.rb +3 -3
  23. data/lib/generators/quorum/views_generator.rb +7 -6
  24. data/lib/generators/templates/README +3 -3
  25. data/lib/generators/templates/blast.rb +7 -7
  26. data/lib/generators/templates/blast_db.rb +6 -6
  27. data/lib/generators/templates/fetch +3 -3
  28. data/lib/generators/templates/quorum_initializer.rb +1 -1
  29. data/lib/generators/templates/quorum_settings.yml +1 -1
  30. data/lib/generators/templates/search +8 -8
  31. data/lib/generators/templates/trollop.rb +4 -4
  32. data/lib/quorum/sequence.rb +6 -6
  33. data/lib/quorum/version.rb +1 -1
  34. data/lib/quorum.rb +1 -1
  35. data/lib/tasks/blastdb/build_blast_db.rb +7 -7
  36. data/lib/tasks/quorum_tasks.rake +6 -6
  37. data/lib/workers/quorum.rb +2 -2
  38. data/quorum.gemspec +1 -1
  39. data/spec/dummy/quorum/blastdb/test.nin +0 -0
  40. data/spec/dummy/quorum/blastdb/test.pin +0 -0
  41. data/spec/javascripts/fixtures/quorum_search_form.html +8 -8
  42. data/spec/javascripts/quorum_spec.js +12 -12
  43. data/spec/javascripts/string_spec.js +2 -2
  44. data/spec/models/blastn_job_report_spec.rb +3 -3
  45. data/spec/models/blastp_job_report_spec.rb +3 -3
  46. data/spec/models/blastx_job_report_spec.rb +3 -3
  47. data/spec/models/job_spec.rb +1 -1
  48. data/spec/models/tblastn_job_report_spec.rb +3 -3
  49. data/spec/quorum/quorum_sequence_spec.rb +1 -1
  50. data/spec/requests/jobs_spec.rb +12 -11
  51. data/spec/spec_helper.rb +1 -1
  52. data/spec/tasks/blastdb_rake_spec.rb +5 -5
  53. data/spec/templates/blast_spec.rb +5 -5
  54. data/vendor/assets/javascripts/jquery.autohint.js +16 -16
  55. data/vendor/assets/javascripts/jquery.tipsy.js +33 -33
  56. metadata +96 -31
@@ -8,7 +8,7 @@
8
8
  (function($) {
9
9
 
10
10
  var methods = {
11
-
11
+
12
12
  init: function() {
13
13
  return this.each(function() {
14
14
  var $this = $(this);
@@ -22,20 +22,20 @@
22
22
  addHints: function() {
23
23
  return this.each(function() {
24
24
  var $this = $(this);
25
- if ($this.attr('title') === '') {
26
- return;
25
+ if ($this.attr('title') === '') {
26
+ return;
27
27
  }
28
28
 
29
- if ($this.val() === '') {
30
- $this.val($this.attr('title'));
29
+ if ($this.val() === '') {
30
+ $this.val($this.attr('title'));
31
31
 
32
32
  if (!$this.hasClass('auto-hint')) {
33
33
  $this.addClass('auto-hint');
34
34
  }
35
- } else {
36
- $this.removeClass('auto-hint');
35
+ } else {
36
+ $this.removeClass('auto-hint');
37
37
  }
38
- });
38
+ });
39
39
  },
40
40
 
41
41
  // Remove hint and class on focus.
@@ -46,7 +46,7 @@
46
46
  $this.val('');
47
47
  $this.removeClass('auto-hint');
48
48
  }
49
- });
49
+ });
50
50
  },
51
51
 
52
52
  // Retain value or add hint.
@@ -57,17 +57,17 @@
57
57
  $this.val($this.attr('title'));
58
58
  $this.addClass('auto-hint');
59
59
  }
60
- });
60
+ });
61
61
  },
62
-
62
+
63
63
  // Remove hints.
64
64
  removeHints: function() {
65
65
  return this.each(function() {
66
66
  var $this = $(this);
67
- if ($this.val() === $this.attr('title')) {
68
- $this.val('');
69
- }
70
- });
67
+ if ($this.val() === $this.attr('title')) {
68
+ $this.val('');
69
+ }
70
+ });
71
71
  }
72
72
 
73
73
  };
@@ -80,7 +80,7 @@
80
80
  return methods.init.apply(this, arguments);
81
81
  } else {
82
82
  $.error('Method ' + method + ' does not exist for jQuery autoHint.');
83
- }
83
+ }
84
84
 
85
85
  };
86
86
 
@@ -4,37 +4,37 @@
4
4
  // released under the MIT license
5
5
 
6
6
  (function($) {
7
-
7
+
8
8
  function maybeCall(thing, ctx) {
9
9
  return (typeof thing == 'function') ? (thing.call(ctx)) : thing;
10
10
  };
11
-
11
+
12
12
  function Tipsy(element, options) {
13
13
  this.$element = $(element);
14
14
  this.options = options;
15
15
  this.enabled = true;
16
16
  this.fixTitle();
17
17
  };
18
-
18
+
19
19
  Tipsy.prototype = {
20
20
  show: function() {
21
21
  var title = this.getTitle();
22
22
  if (title && this.enabled) {
23
23
  var $tip = this.tip();
24
-
24
+
25
25
  $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);
26
26
  $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity
27
27
  $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body);
28
-
28
+
29
29
  var pos = $.extend({}, this.$element.offset(), {
30
30
  width: this.$element[0].offsetWidth,
31
31
  height: this.$element[0].offsetHeight
32
32
  });
33
-
33
+
34
34
  var actualWidth = $tip[0].offsetWidth,
35
35
  actualHeight = $tip[0].offsetHeight,
36
36
  gravity = maybeCall(this.options.gravity, this.$element[0]);
37
-
37
+
38
38
  var tp;
39
39
  switch (gravity.charAt(0)) {
40
40
  case 'n':
@@ -50,7 +50,7 @@
50
50
  tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};
51
51
  break;
52
52
  }
53
-
53
+
54
54
  if (gravity.length == 2) {
55
55
  if (gravity.charAt(1) == 'w') {
56
56
  tp.left = pos.left + pos.width / 2 - 15;
@@ -58,13 +58,13 @@
58
58
  tp.left = pos.left + pos.width / 2 - actualWidth + 15;
59
59
  }
60
60
  }
61
-
61
+
62
62
  $tip.css(tp).addClass('tipsy-' + gravity);
63
63
  $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0);
64
64
  if (this.options.className) {
65
65
  $tip.addClass(maybeCall(this.options.className, this.$element[0]));
66
66
  }
67
-
67
+
68
68
  if (this.options.fade) {
69
69
  $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});
70
70
  } else {
@@ -72,7 +72,7 @@
72
72
  }
73
73
  }
74
74
  },
75
-
75
+
76
76
  hide: function() {
77
77
  if (this.options.fade) {
78
78
  this.tip().stop().fadeOut(function() { $(this).remove(); });
@@ -80,14 +80,14 @@
80
80
  this.tip().remove();
81
81
  }
82
82
  },
83
-
83
+
84
84
  fixTitle: function() {
85
85
  var $e = this.$element;
86
86
  if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') {
87
87
  $e.attr('original-title', $e.attr('title') || '').removeAttr('title');
88
88
  }
89
89
  },
90
-
90
+
91
91
  getTitle: function() {
92
92
  var title, $e = this.$element, o = this.options;
93
93
  this.fixTitle();
@@ -100,14 +100,14 @@
100
100
  title = ('' + title).replace(/(^\s*|\s*$)/, "");
101
101
  return title || o.fallback;
102
102
  },
103
-
103
+
104
104
  tip: function() {
105
105
  if (!this.$tip) {
106
106
  this.$tip = $('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>');
107
107
  }
108
108
  return this.$tip;
109
109
  },
110
-
110
+
111
111
  validate: function() {
112
112
  if (!this.$element[0].parentNode) {
113
113
  this.hide();
@@ -115,14 +115,14 @@
115
115
  this.options = null;
116
116
  }
117
117
  },
118
-
118
+
119
119
  enable: function() { this.enabled = true; },
120
120
  disable: function() { this.enabled = false; },
121
121
  toggleEnabled: function() { this.enabled = !this.enabled; }
122
122
  };
123
-
123
+
124
124
  $.fn.tipsy = function(options) {
125
-
125
+
126
126
  if (options === true) {
127
127
  return this.data('tipsy');
128
128
  } else if (typeof options == 'string') {
@@ -130,9 +130,9 @@
130
130
  if (tipsy) tipsy[options]();
131
131
  return this;
132
132
  }
133
-
133
+
134
134
  options = $.extend({}, $.fn.tipsy.defaults, options);
135
-
135
+
136
136
  function get(ele) {
137
137
  var tipsy = $.data(ele, 'tipsy');
138
138
  if (!tipsy) {
@@ -141,7 +141,7 @@
141
141
  }
142
142
  return tipsy;
143
143
  }
144
-
144
+
145
145
  function enter() {
146
146
  var tipsy = get(this);
147
147
  tipsy.hoverState = 'in';
@@ -152,7 +152,7 @@
152
152
  setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);
153
153
  }
154
154
  };
155
-
155
+
156
156
  function leave() {
157
157
  var tipsy = get(this);
158
158
  tipsy.hoverState = 'out';
@@ -162,20 +162,20 @@
162
162
  setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut);
163
163
  }
164
164
  };
165
-
165
+
166
166
  if (!options.live) this.each(function() { get(this); });
167
-
167
+
168
168
  if (options.trigger != 'manual') {
169
169
  var binder = options.live ? 'live' : 'bind',
170
170
  eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',
171
171
  eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
172
172
  this[binder](eventIn, enter)[binder](eventOut, leave);
173
173
  }
174
-
174
+
175
175
  return this;
176
-
176
+
177
177
  };
178
-
178
+
179
179
  $.fn.tipsy.defaults = {
180
180
  className: null,
181
181
  delayIn: 0,
@@ -190,7 +190,7 @@
190
190
  title: 'title',
191
191
  trigger: 'hover'
192
192
  };
193
-
193
+
194
194
  // Overwrite this method to provide options on a per-element basis.
195
195
  // For example, you could store the gravity in a 'tipsy-gravity' attribute:
196
196
  // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
@@ -198,15 +198,15 @@
198
198
  $.fn.tipsy.elementOptions = function(ele, options) {
199
199
  return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
200
200
  };
201
-
201
+
202
202
  $.fn.tipsy.autoNS = function() {
203
203
  return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
204
204
  };
205
-
205
+
206
206
  $.fn.tipsy.autoWE = function() {
207
207
  return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
208
208
  };
209
-
209
+
210
210
  /**
211
211
  * yields a closure of the supplied parameters, producing a function that takes
212
212
  * no arguments and is suitable for use as an autogravity function like so:
@@ -217,7 +217,7 @@
217
217
  * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer
218
218
  * if there are no viewable region edges effecting the tooltip's
219
219
  * gravity. It will try to vary from this minimally, for example,
220
- * if 'sw' is preferred and an element is near the right viewable
220
+ * if 'sw' is preferred and an element is near the right viewable
221
221
  * region edge, but not the top edge, it will set the gravity for
222
222
  * that element's tooltip to be 'se', preserving the southern
223
223
  * component.
@@ -237,5 +237,5 @@
237
237
  return dir.ns + (dir.ew ? dir.ew : '');
238
238
  }
239
239
  };
240
-
240
+
241
241
  })(jQuery);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quorum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-31 00:00:00.000000000Z
12
+ date: 2012-04-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &16508360 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *16508360
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: jquery-rails
27
- requirement: &16507560 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *16507560
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: net-ssh
38
- requirement: &16506660 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 2.3.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *16506660
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.3.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: resque
49
- requirement: &16506000 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.19.0
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *16506000
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.19.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: resque-result
60
- requirement: &16505320 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 1.0.1
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *16505320
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.0.1
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: bio-blastxmlparser
71
- requirement: &16504660 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 1.0.1
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *16504660
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.1
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: mysql2
82
- requirement: &16500480 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ~>
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 0.3.11
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *16500480
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.3.11
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: rspec-rails
93
- requirement: &16499900 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '2.6'
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *16499900
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '2.6'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: resque_spec
104
- requirement: &16499360 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ~>
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: '0.8'
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *16499360
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '0.8'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: capybara
115
- requirement: &16498840 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ~>
@@ -120,10 +165,15 @@ dependencies:
120
165
  version: '1.1'
121
166
  type: :development
122
167
  prerelease: false
123
- version_requirements: *16498840
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
124
174
  - !ruby/object:Gem::Dependency
125
175
  name: database_cleaner
126
- requirement: &16498280 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
127
177
  none: false
128
178
  requirements:
129
179
  - - ~>
@@ -131,10 +181,15 @@ dependencies:
131
181
  version: '0.6'
132
182
  type: :development
133
183
  prerelease: false
134
- version_requirements: *16498280
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: '0.6'
135
190
  - !ruby/object:Gem::Dependency
136
191
  name: factory_girl_rails
137
- requirement: &16497740 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
138
193
  none: false
139
194
  requirements:
140
195
  - - ~>
@@ -142,10 +197,15 @@ dependencies:
142
197
  version: '1.2'
143
198
  type: :development
144
199
  prerelease: false
145
- version_requirements: *16497740
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: '1.2'
146
206
  - !ruby/object:Gem::Dependency
147
207
  name: jasmine
148
- requirement: &16497200 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
149
209
  none: false
150
210
  requirements:
151
211
  - - ~>
@@ -153,7 +213,12 @@ dependencies:
153
213
  version: '1.1'
154
214
  type: :development
155
215
  prerelease: false
156
- version_requirements: *16497200
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: '1.1'
157
222
  description: Flexible bioinformatics search tool.
158
223
  email:
159
224
  - kas@ncgr.org
@@ -369,7 +434,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
369
434
  version: '0'
370
435
  segments:
371
436
  - 0
372
- hash: 2758324715515745186
437
+ hash: -2365568155334163580
373
438
  required_rubygems_version: !ruby/object:Gem::Requirement
374
439
  none: false
375
440
  requirements:
@@ -378,10 +443,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
378
443
  version: '0'
379
444
  segments:
380
445
  - 0
381
- hash: 2758324715515745186
446
+ hash: -2365568155334163580
382
447
  requirements: []
383
448
  rubyforge_project:
384
- rubygems_version: 1.8.15
449
+ rubygems_version: 1.8.21
385
450
  signing_key:
386
451
  specification_version: 3
387
452
  summary: Flexible bioinformatics search tool.