quorum 0.3.1 → 0.3.2
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.
- data/.travis.yml +21 -0
- data/Gemfile +3 -11
- data/Gemfile.lock +62 -58
- data/HISTORY.md +9 -0
- data/README.rdoc +29 -19
- data/Rakefile +51 -0
- data/app/assets/javascripts/quorum/jobs.js +4 -0
- data/app/assets/javascripts/quorum/quorum.js +315 -239
- data/app/controllers/quorum/jobs_controller.rb +4 -4
- data/app/models/quorum/job.rb +1 -1
- data/app/views/quorum/jobs/new.html.erb +7 -7
- data/app/views/quorum/jobs/show.html.erb +22 -8
- data/app/views/quorum/jobs/templates/_blast_detailed_report_template.html.erb +2 -2
- data/app/views/quorum/jobs/templates/_blast_template.html.erb +2 -2
- data/lib/generators/templates/blast.rb +1 -13
- data/lib/generators/templates/logger.rb +4 -4
- data/lib/quorum/version.rb +1 -1
- data/lib/workers/quorum.rb +3 -3
- data/spec/dummy/quorum/blastdb/test.nin +0 -0
- data/spec/dummy/quorum/blastdb/test.pin +0 -0
- data/spec/dummy/quorum/lib/search_tools/blast.rb +7 -19
- data/spec/javascripts/fixtures/quorum_tabs.html +5 -0
- data/spec/javascripts/quorum_spec.js +187 -12
- data/spec/requests/jobs_spec.rb +22 -3
- data/spec/templates/logger_spec.rb +3 -3
- data/vendor/assets/javascripts/underscore-min.js +27 -25
- metadata +6 -5
data/.travis.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.2
|
4
|
+
- 1.9.3
|
5
|
+
gemfile:
|
6
|
+
- gemfiles/Gemfile.rails-3.1.x
|
7
|
+
- gemfiles/Gemfile.rails-3.2.x
|
8
|
+
before_install:
|
9
|
+
- sudo apt-get update
|
10
|
+
- sudo apt-get install ncbi-blast+ emboss
|
11
|
+
before_script:
|
12
|
+
- "export DISPLAY=:99.0"
|
13
|
+
- "sh -e /etc/init.d/xvfb start"
|
14
|
+
- bundle install
|
15
|
+
- mysql -e "create database quorum_test;"
|
16
|
+
- "rake travis:create_db_config"
|
17
|
+
- "rake app:db:schema:load"
|
18
|
+
script: "rake travis:spec"
|
19
|
+
notifications:
|
20
|
+
email:
|
21
|
+
- "kas@ncgr.org"
|
data/Gemfile
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
# Declare your gem's dependencies in quorum.gemspec.
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
5
|
-
# development dependencies will be added by default to the :development group.
|
6
3
|
gemspec
|
7
4
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
# your gem to rubygems.org.
|
12
|
-
|
13
|
-
# To use debugger
|
14
|
-
# gem 'ruby-debug19', :require => 'ruby-debug'
|
15
|
-
|
5
|
+
group :test do
|
6
|
+
gem 'rake', '~> 0.9.2'
|
7
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
quorum (0.3.
|
4
|
+
quorum (0.3.2)
|
5
5
|
bio-blastxmlparser (~> 1.0.1)
|
6
6
|
jquery-rails
|
7
7
|
net-ssh (~> 2.3.0)
|
@@ -12,38 +12,39 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
-
actionmailer (3.2.
|
16
|
-
actionpack (= 3.2.
|
17
|
-
mail (~> 2.4.
|
18
|
-
actionpack (3.2.
|
19
|
-
activemodel (= 3.2.
|
20
|
-
activesupport (= 3.2.
|
15
|
+
actionmailer (3.2.6)
|
16
|
+
actionpack (= 3.2.6)
|
17
|
+
mail (~> 2.4.4)
|
18
|
+
actionpack (3.2.6)
|
19
|
+
activemodel (= 3.2.6)
|
20
|
+
activesupport (= 3.2.6)
|
21
21
|
builder (~> 3.0.0)
|
22
22
|
erubis (~> 2.7.0)
|
23
23
|
journey (~> 1.0.1)
|
24
24
|
rack (~> 1.4.0)
|
25
|
-
rack-cache (~> 1.
|
25
|
+
rack-cache (~> 1.2)
|
26
26
|
rack-test (~> 0.6.1)
|
27
|
-
sprockets (~> 2.1.
|
28
|
-
activemodel (3.2.
|
29
|
-
activesupport (= 3.2.
|
27
|
+
sprockets (~> 2.1.3)
|
28
|
+
activemodel (3.2.6)
|
29
|
+
activesupport (= 3.2.6)
|
30
30
|
builder (~> 3.0.0)
|
31
|
-
activerecord (3.2.
|
32
|
-
activemodel (= 3.2.
|
33
|
-
activesupport (= 3.2.
|
31
|
+
activerecord (3.2.6)
|
32
|
+
activemodel (= 3.2.6)
|
33
|
+
activesupport (= 3.2.6)
|
34
34
|
arel (~> 3.0.2)
|
35
35
|
tzinfo (~> 0.3.29)
|
36
|
-
activeresource (3.2.
|
37
|
-
activemodel (= 3.2.
|
38
|
-
activesupport (= 3.2.
|
39
|
-
activesupport (3.2.
|
36
|
+
activeresource (3.2.6)
|
37
|
+
activemodel (= 3.2.6)
|
38
|
+
activesupport (= 3.2.6)
|
39
|
+
activesupport (3.2.6)
|
40
40
|
i18n (~> 0.6)
|
41
41
|
multi_json (~> 1.0)
|
42
|
+
addressable (2.2.8)
|
42
43
|
arel (3.0.2)
|
43
44
|
bio-blastxmlparser (1.0.1)
|
44
45
|
bio-logger (>= 1.0.0)
|
45
46
|
nokogiri (>= 1.5.0)
|
46
|
-
bio-logger (1.0.
|
47
|
+
bio-logger (1.0.1)
|
47
48
|
log4r (>= 1.1.9)
|
48
49
|
builder (3.0.0)
|
49
50
|
capybara (1.1.2)
|
@@ -53,9 +54,9 @@ GEM
|
|
53
54
|
rack-test (>= 0.5.4)
|
54
55
|
selenium-webdriver (~> 2.0)
|
55
56
|
xpath (~> 0.1.4)
|
56
|
-
childprocess (0.3.
|
57
|
+
childprocess (0.3.2)
|
57
58
|
ffi (~> 1.0.6)
|
58
|
-
database_cleaner (0.
|
59
|
+
database_cleaner (0.8.0)
|
59
60
|
diff-lcs (1.1.3)
|
60
61
|
erubis (2.7.0)
|
61
62
|
factory_girl (2.6.4)
|
@@ -66,27 +67,29 @@ GEM
|
|
66
67
|
ffi (1.0.11)
|
67
68
|
hike (1.2.1)
|
68
69
|
i18n (0.6.0)
|
69
|
-
jasmine (1.
|
70
|
-
jasmine-core (>= 1.
|
71
|
-
rack (
|
70
|
+
jasmine (1.2.0)
|
71
|
+
jasmine-core (>= 1.2.0)
|
72
|
+
rack (~> 1.0)
|
72
73
|
rspec (>= 1.3.1)
|
73
74
|
selenium-webdriver (>= 0.1.3)
|
74
|
-
jasmine-core (1.
|
75
|
-
journey (1.0.
|
76
|
-
jquery-rails (2.0.
|
75
|
+
jasmine-core (1.2.0)
|
76
|
+
journey (1.0.4)
|
77
|
+
jquery-rails (2.0.2)
|
77
78
|
railties (>= 3.2.0, < 5.0)
|
78
79
|
thor (~> 0.14)
|
79
|
-
json (1.
|
80
|
+
json (1.7.3)
|
81
|
+
libwebsocket (0.1.3)
|
82
|
+
addressable
|
80
83
|
log4r (1.1.10)
|
81
84
|
mail (2.4.4)
|
82
85
|
i18n (>= 0.4.0)
|
83
86
|
mime-types (~> 1.16)
|
84
87
|
treetop (~> 1.4.8)
|
85
|
-
mime-types (1.
|
86
|
-
multi_json (1.
|
88
|
+
mime-types (1.19)
|
89
|
+
multi_json (1.3.6)
|
87
90
|
mysql2 (0.3.11)
|
88
91
|
net-ssh (2.3.0)
|
89
|
-
nokogiri (1.5.
|
92
|
+
nokogiri (1.5.4)
|
90
93
|
polyglot (0.3.3)
|
91
94
|
rack (1.4.1)
|
92
95
|
rack-cache (1.2)
|
@@ -97,21 +100,21 @@ GEM
|
|
97
100
|
rack
|
98
101
|
rack-test (0.6.1)
|
99
102
|
rack (>= 1.0)
|
100
|
-
rails (3.2.
|
101
|
-
actionmailer (= 3.2.
|
102
|
-
actionpack (= 3.2.
|
103
|
-
activerecord (= 3.2.
|
104
|
-
activeresource (= 3.2.
|
105
|
-
activesupport (= 3.2.
|
103
|
+
rails (3.2.6)
|
104
|
+
actionmailer (= 3.2.6)
|
105
|
+
actionpack (= 3.2.6)
|
106
|
+
activerecord (= 3.2.6)
|
107
|
+
activeresource (= 3.2.6)
|
108
|
+
activesupport (= 3.2.6)
|
106
109
|
bundler (~> 1.0)
|
107
|
-
railties (= 3.2.
|
108
|
-
railties (3.2.
|
109
|
-
actionpack (= 3.2.
|
110
|
-
activesupport (= 3.2.
|
110
|
+
railties (= 3.2.6)
|
111
|
+
railties (3.2.6)
|
112
|
+
actionpack (= 3.2.6)
|
113
|
+
activesupport (= 3.2.6)
|
111
114
|
rack-ssl (~> 1.3.2)
|
112
115
|
rake (>= 0.8.7)
|
113
116
|
rdoc (~> 3.4)
|
114
|
-
thor (
|
117
|
+
thor (>= 0.14.6, < 2.0)
|
115
118
|
rake (0.9.2.2)
|
116
119
|
rdoc (3.12)
|
117
120
|
json (~> 1.4)
|
@@ -128,42 +131,42 @@ GEM
|
|
128
131
|
resque-result (1.0.1)
|
129
132
|
resque (~> 1.9)
|
130
133
|
resque-meta (~> 1.0)
|
131
|
-
resque_spec (0.
|
134
|
+
resque_spec (0.12.2)
|
132
135
|
resque (>= 1.19.0)
|
133
136
|
rspec (>= 2.5.0)
|
134
|
-
rspec (2.
|
135
|
-
rspec-core (~> 2.
|
136
|
-
rspec-expectations (~> 2.
|
137
|
-
rspec-mocks (~> 2.
|
138
|
-
rspec-core (2.
|
139
|
-
rspec-expectations (2.
|
137
|
+
rspec (2.10.0)
|
138
|
+
rspec-core (~> 2.10.0)
|
139
|
+
rspec-expectations (~> 2.10.0)
|
140
|
+
rspec-mocks (~> 2.10.0)
|
141
|
+
rspec-core (2.10.1)
|
142
|
+
rspec-expectations (2.10.0)
|
140
143
|
diff-lcs (~> 1.1.3)
|
141
|
-
rspec-mocks (2.
|
142
|
-
rspec-rails (2.
|
144
|
+
rspec-mocks (2.10.1)
|
145
|
+
rspec-rails (2.10.1)
|
143
146
|
actionpack (>= 3.0)
|
144
147
|
activesupport (>= 3.0)
|
145
148
|
railties (>= 3.0)
|
146
|
-
rspec (~> 2.
|
147
|
-
rubyzip (0.9.
|
148
|
-
selenium-webdriver (2.
|
149
|
+
rspec (~> 2.10.0)
|
150
|
+
rubyzip (0.9.9)
|
151
|
+
selenium-webdriver (2.24.0)
|
149
152
|
childprocess (>= 0.2.5)
|
150
|
-
|
153
|
+
libwebsocket (~> 0.1.3)
|
151
154
|
multi_json (~> 1.0)
|
152
155
|
rubyzip
|
153
156
|
sinatra (1.3.2)
|
154
157
|
rack (~> 1.3, >= 1.3.6)
|
155
158
|
rack-protection (~> 1.2)
|
156
159
|
tilt (~> 1.3, >= 1.3.3)
|
157
|
-
sprockets (2.1.
|
160
|
+
sprockets (2.1.3)
|
158
161
|
hike (~> 1.2)
|
159
162
|
rack (~> 1.0)
|
160
163
|
tilt (~> 1.1, != 1.3.0)
|
161
|
-
thor (0.
|
164
|
+
thor (0.15.3)
|
162
165
|
tilt (1.3.3)
|
163
166
|
treetop (1.4.10)
|
164
167
|
polyglot
|
165
168
|
polyglot (>= 0.3.1)
|
166
|
-
tzinfo (0.3.
|
169
|
+
tzinfo (0.3.33)
|
167
170
|
vegas (0.1.11)
|
168
171
|
rack (>= 1.0.0)
|
169
172
|
xpath (0.1.4)
|
@@ -179,5 +182,6 @@ DEPENDENCIES
|
|
179
182
|
jasmine (~> 1.1)
|
180
183
|
mysql2 (~> 0.3.11)
|
181
184
|
quorum!
|
185
|
+
rake (~> 0.9.2)
|
182
186
|
resque_spec (~> 0.8)
|
183
187
|
rspec-rails (~> 2.6)
|
data/HISTORY.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 0.3.2 (2012-06--22)
|
2
|
+
|
3
|
+
* Added support for user defined callback in QUORUM.pollResults().
|
4
|
+
Useful if user chooses to define their own view template(s).
|
5
|
+
See app/assets/javascripts/quorum/quorum.js and
|
6
|
+
app/views/quorum/jobs/show.html.erb for more information.
|
7
|
+
* JS bug fixes.
|
8
|
+
* Added specs and updated gems.
|
9
|
+
|
1
10
|
## 0.3.1 (2012-04-02)
|
2
11
|
|
3
12
|
* Added quorum layouts to quorum:views generator.
|
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= Quorum
|
1
|
+
= Quorum {<img src="https://secure.travis-ci.org/ncgr/quorum.png?branch=master"alt="Build Status" />}[http://travis-ci.org/ncgr/quorum]
|
2
2
|
|
3
3
|
A flexible bioinformatics search tool.
|
4
4
|
|
@@ -9,6 +9,7 @@ bioinformatics search tools.
|
|
9
9
|
|
10
10
|
Dependencies:
|
11
11
|
|
12
|
+
* Ruby >= 1.9.2
|
12
13
|
* Rails >= 3.1.0
|
13
14
|
* Redis >= 0.900 for Resque (https://github.com/defunkt/resque)
|
14
15
|
* NCBI Blast+ (ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST)
|
@@ -162,9 +163,10 @@ Follow the steps below to execute Quorum remotely via Net::SSH.
|
|
162
163
|
* Ensure you have supplied the necessary information in
|
163
164
|
"config/quorum_settings.yml" to execute Quorum remotely.
|
164
165
|
|
165
|
-
|
166
|
-
|
167
|
-
|
166
|
+
blast:
|
167
|
+
remote: true
|
168
|
+
ssh_host: remote.machine.org
|
169
|
+
ssh_user: remote_user
|
168
170
|
|
169
171
|
Net::SSH.start() optional params (http://net-ssh.github.com/ssh/v2/api/index.html)
|
170
172
|
|
@@ -224,7 +226,7 @@ To override Quorum's default images, run the generator.
|
|
224
226
|
A copy of Quorum's images can be found in your application under
|
225
227
|
"app/assets/images/quorum/".
|
226
228
|
|
227
|
-
|
229
|
+
==== jQuery UI
|
228
230
|
|
229
231
|
Don't like Quorum's jQuery UI theme? Override it!
|
230
232
|
|
@@ -233,34 +235,36 @@ Don't like Quorum's jQuery UI theme? Override it!
|
|
233
235
|
* Replace Quorum's theme in "app/assets/{stylesheets:images}/quorum" with
|
234
236
|
your own.
|
235
237
|
|
236
|
-
Don't plan on supporting all of Quorum's alogrithms?
|
237
|
-
|
238
|
-
and
|
238
|
+
==== Don't plan on supporting all of Quorum's alogrithms?
|
239
|
+
|
240
|
+
Override Quorum's views and comment out any unwanted algorithms in
|
241
|
+
"app/views/quorum/jobs/new.html.erb" and
|
242
|
+
"app/views/quorum/jobs/show.html.erb".
|
239
243
|
|
240
244
|
For example:
|
241
245
|
|
242
246
|
Remove Blastp in "app/views/quorum/jobs/new.html.erb"
|
243
247
|
|
244
|
-
|
245
|
-
|
248
|
+
<%# Search Algorithms %>
|
249
|
+
<%# Comment out an algorithm below to remove it from the form. %>
|
246
250
|
|
247
|
-
|
251
|
+
<%# blastn %>
|
248
252
|
<%= render :partial => "quorum/jobs/form/blastn_form", :locals => {
|
249
253
|
:f => f, :blast_dbs => @blast_dbs } %>
|
250
254
|
|
251
|
-
|
255
|
+
<%# blastx %>
|
252
256
|
<%= render :partial => "quorum/jobs/form/blastx_form", :locals => {
|
253
257
|
:f => f, :blast_dbs => @blast_dbs } %>
|
254
258
|
|
255
|
-
|
259
|
+
<%# tblastn %>
|
256
260
|
<%= render :partial => "quorum/jobs/form/tblastn_form", :locals => {
|
257
261
|
:f => f, :blast_dbs => @blast_dbs } %>
|
258
262
|
|
259
|
-
|
263
|
+
<%# blastp %>
|
260
264
|
<% render :partial => "quorum/jobs/form/blastp_form", :locals => {
|
261
265
|
:f => f, :blast_dbs => @blast_dbs } %>
|
262
266
|
|
263
|
-
|
267
|
+
<%# End Search Algorithms %>
|
264
268
|
|
265
269
|
Remove Blastp in "app/views/quorum/jobs/show.html.erb"
|
266
270
|
|
@@ -269,12 +273,12 @@ Remove Blastp in "app/views/quorum/jobs/show.html.erb"
|
|
269
273
|
<li><a href="#tabs-1">Blastn</a></li>
|
270
274
|
<li><a href="#tabs-2">Blastx</a></li>
|
271
275
|
<li><a href="#tabs-3">Tblastn</a></li>
|
272
|
-
|
276
|
+
<%#
|
273
277
|
<li><a href="#tabs-4">Blastp</a></li>
|
274
|
-
|
278
|
+
%>
|
275
279
|
</ul>
|
276
280
|
|
277
|
-
|
281
|
+
<%# Search results per algorithm %>
|
278
282
|
<div id="tabs-1">
|
279
283
|
<h2>Blastn</h2>
|
280
284
|
<div id="blastn-results">
|
@@ -306,6 +310,12 @@ Remove Blastp in "app/views/quorum/jobs/show.html.erb"
|
|
306
310
|
-->
|
307
311
|
</div>
|
308
312
|
|
313
|
+
==== Don't like Quorum's default show template?
|
314
|
+
|
315
|
+
Override Quorum's views and specify your own JavaScript callback function!
|
316
|
+
|
317
|
+
See "app/views/quorum/show.html.erb" for more details.
|
318
|
+
|
309
319
|
=== Redis
|
310
320
|
|
311
321
|
For detailed Redis installation instructions, follow the links below.
|
@@ -321,7 +331,7 @@ the link below.
|
|
321
331
|
|
322
332
|
* Resque (https://github.com/defunkt/resque)
|
323
333
|
|
324
|
-
|
334
|
+
==== Resque Web Interface
|
325
335
|
|
326
336
|
Quorum mounts Resque's web interface by default via
|
327
337
|
|
data/Rakefile
CHANGED
@@ -29,3 +29,54 @@ task :default => :spec
|
|
29
29
|
|
30
30
|
Bundler::GemHelper.install_tasks
|
31
31
|
|
32
|
+
# Travis Tasks
|
33
|
+
namespace :travis do
|
34
|
+
# Specs
|
35
|
+
task :spec do
|
36
|
+
Rake::Task["travis:create_dirs"].execute
|
37
|
+
["rake spec", "rake app:jasmine:ci JASMINE_PORT=53331"].each do |cmd|
|
38
|
+
puts "Starting to run #{cmd}..."
|
39
|
+
system("export DISPLAY=:99.0 && bundle exec #{cmd}")
|
40
|
+
raise "#{cmd} failed!" unless $?.exitstatus == 0
|
41
|
+
end
|
42
|
+
Rake::Task["travis:remove_db_config"].execute
|
43
|
+
end
|
44
|
+
|
45
|
+
# Create spec/dummy/config/database.yml for Travis.
|
46
|
+
task :create_db_config do
|
47
|
+
config = File.expand_path("../spec/dummy/config", __FILE__)
|
48
|
+
File.open(File.join(config, "database.yml"), "w+") do |file|
|
49
|
+
file.puts "test:\n adapter: mysql2\n database: quorum_test\n" <<
|
50
|
+
" username: root\n password:\n host: localhost\n encoding: utf8"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Remove spec/dummy/config/database.yml after Travis.
|
55
|
+
task :remove_db_config do
|
56
|
+
config = File.expand_path("../spec/dummy/config", __FILE__)
|
57
|
+
File.delete(File.join(config, "database.yml"))
|
58
|
+
end
|
59
|
+
|
60
|
+
# Create necessary directories for test. Mimic a real app install
|
61
|
+
# via rails g quorum:install.
|
62
|
+
#
|
63
|
+
# The directories below are not in the git repo.
|
64
|
+
task :create_dirs do
|
65
|
+
app = File.expand_path("../spec/dummy", __FILE__)
|
66
|
+
quorum = File.expand_path("../spec/dummy/quorum", __FILE__)
|
67
|
+
|
68
|
+
app_tmp = File.join(app, "tmp")
|
69
|
+
app_pids = File.join(app_tmp, "pids")
|
70
|
+
app_cache = File.join(app_tmp, "cache")
|
71
|
+
|
72
|
+
Dir.mkdir(app_tmp) unless File.directory?(app_tmp)
|
73
|
+
Dir.mkdir(app_pids) unless File.directory?(app_pids)
|
74
|
+
Dir.mkdir(app_cache) unless File.directory?(app_cache)
|
75
|
+
|
76
|
+
quorum_log = File.join(quorum, "log")
|
77
|
+
quorum_tmp = File.join(quorum, "tmp")
|
78
|
+
|
79
|
+
Dir.mkdir(quorum_log) unless File.directory?(quorum_log)
|
80
|
+
Dir.mkdir(quorum_tmp) unless File.directory?(quorum_tmp)
|
81
|
+
end
|
82
|
+
end
|
@@ -59,6 +59,10 @@ $(function() {
|
|
59
59
|
form.autoHint('removeHints');
|
60
60
|
});
|
61
61
|
|
62
|
+
$(window).unload(function() {
|
63
|
+
$('input[type=submit]', 'form').val('Submit').removeAttr('disabled');
|
64
|
+
});
|
65
|
+
|
62
66
|
// Reset form.
|
63
67
|
$('#quorum_job_reset').click(function() {
|
64
68
|
$('textarea').val('');
|