rbbt-rest 1.8.157 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/rest/common/cache.rb +4 -4
- data/lib/rbbt/rest/common/misc.rb +62 -17
- data/lib/rbbt/rest/common/render.rb +5 -4
- data/lib/rbbt/rest/common/resources.rb +2 -2
- data/lib/rbbt/rest/common/table.rb +31 -3
- data/lib/rbbt/rest/common/tabs.rb +3 -2
- data/lib/rbbt/rest/entity/list.rb +6 -6
- data/lib/rbbt/rest/entity/locate.rb +1 -1
- data/lib/rbbt/rest/entity/map.rb +5 -5
- data/lib/rbbt/rest/entity/rest.rb +2 -2
- data/lib/rbbt/rest/entity.rb +14 -14
- data/lib/rbbt/rest/main.rb +5 -1
- data/lib/rbbt/rest/workflow/jobs.rb +1 -1
- data/lib/rbbt/rest/workflow.rb +1 -1
- data/share/views/entity_partials/entity_map_card.haml +1 -1
- data/share/views/form.haml +1 -1
- data/share/views/job_result/tsv.haml +1 -1
- data/share/views/wait.haml +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fdb32cbeb46c68fc69547ead44db23a8a7c429104b5a00ab64b0551cad3018e
|
4
|
+
data.tar.gz: ff6ec603aa45072af8aa5cf99203bac5c63590f657b6f96d38cb172beee4ee09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdc8bbe6d4548759e88e4cf034d6ec757311f3b0c5efb6c8ad656866cd146c5e9d91e83508759a1966bc4a73d588171e7067b7b4f26a0bffc6ba549d1be9c08d
|
7
|
+
data.tar.gz: f2d21a95f95a61838596be12cd95a58ef3f979015be6c53b7137758f47616a4732cbc8b0eae75b9d354c20209f7244be8ad9dd3d31b3a49fb215dd3cfaf1d79c
|
@@ -20,10 +20,10 @@ module RbbtRESTHelpers
|
|
20
20
|
def old_cache(path, check)
|
21
21
|
return false if production?
|
22
22
|
return false if check.nil? or check.empty?
|
23
|
-
return false if not File.
|
23
|
+
return false if not File.exist? path
|
24
24
|
check = [check] unless Array === check
|
25
25
|
check.each do |file|
|
26
|
-
if not File.
|
26
|
+
if not File.exist?(file)
|
27
27
|
return true
|
28
28
|
end
|
29
29
|
if File.mtime(file) > File.mtime(path)
|
@@ -270,7 +270,7 @@ data = NULL
|
|
270
270
|
if mime && mime.to_s.include?("text/html")
|
271
271
|
halt_html txt || Open.read(fragment_file)
|
272
272
|
else
|
273
|
-
if File.
|
273
|
+
if File.exist?(fragment_file)
|
274
274
|
send_file fragment_file
|
275
275
|
else
|
276
276
|
halt 200, Open.read(fragment_file)
|
@@ -325,7 +325,7 @@ data = NULL
|
|
325
325
|
raise RbbtRESTHelpers::Retry
|
326
326
|
end
|
327
327
|
|
328
|
-
#if File.
|
328
|
+
#if File.exist?(step.info_file) and Time.now - File.atime(step.info_file) > 60
|
329
329
|
# Log.debug{ "Checking on #{step.info_file}" }
|
330
330
|
# running = (not step.done?) and step.running?
|
331
331
|
# if FalseClass === running
|
@@ -5,7 +5,7 @@ module RbbtRESTHelpers
|
|
5
5
|
class Retry < Exception; end
|
6
6
|
|
7
7
|
def check_step(step)
|
8
|
-
if File.
|
8
|
+
if File.exist?(step.info_file) and Time.now - File.atime(step.info_file) > 60
|
9
9
|
done = step.done?
|
10
10
|
running = done ? false : step.running?
|
11
11
|
Log.debug{ "Checking on #{step.info_file} (done: #{done}; running: #{running})" }
|
@@ -301,7 +301,7 @@ module RbbtRESTHelpers
|
|
301
301
|
def permalink(path)
|
302
302
|
id = Misc.digest(Time.now.to_s)
|
303
303
|
dest = File.join(settings.permalink_dir, id)
|
304
|
-
FileUtils.mkdir_p settings.permalink_dir unless File.
|
304
|
+
FileUtils.mkdir_p settings.permalink_dir unless File.exist? settings.permalink_dir
|
305
305
|
FileUtils.ln_s(path, dest)
|
306
306
|
"/permalink/#{ id }"
|
307
307
|
end
|
@@ -322,36 +322,81 @@ module RbbtRESTHelpers
|
|
322
322
|
|
323
323
|
end
|
324
324
|
|
325
|
-
|
325
|
+
if $haml_6
|
326
|
+
Haml::Template.options[:escape_html] = false
|
326
327
|
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
328
|
+
class Haml::Filters::DeferJS < Haml::Filters::TiltBase
|
329
|
+
|
330
|
+
def compile(node)
|
331
|
+
text = node.value[:text]
|
332
|
+
step_path = Thread.current["step_path"]
|
333
|
+
text = "" if text.nil?
|
334
|
+
defer_text =<<-EOF
|
331
335
|
%script
|
332
336
|
:plain
|
333
337
|
defer(function(step_path){
|
334
338
|
|
335
339
|
#{text.gsub(/^/," ")}
|
336
340
|
}, '#{step_path}')
|
337
|
-
EOF
|
338
|
-
|
341
|
+
EOF
|
342
|
+
node.value[:text] = defer_text
|
343
|
+
compile_with_tilt(node, 'haml')
|
344
|
+
end
|
339
345
|
end
|
340
|
-
end
|
341
346
|
|
342
|
-
class Haml::Filters::Documentation < Haml::Filters::
|
347
|
+
class Haml::Filters::Documentation < Haml::Filters::TiltBase
|
343
348
|
|
344
|
-
|
345
|
-
|
349
|
+
def compile(node)
|
350
|
+
text = node.value[:text]
|
351
|
+
text = "<br/>" if text.strip.empty?
|
346
352
|
|
347
|
-
|
353
|
+
doc_text =<<-EOF
|
348
354
|
%section.documentation#{ text.gsub(/\s/,'').length < 80 * 10 ? '.short' : ''}
|
349
355
|
:markdown
|
350
356
|
#{text.gsub(/^/," ")}
|
351
|
-
|
357
|
+
EOF
|
352
358
|
|
353
|
-
|
359
|
+
node.value[:text] = doc_text
|
360
|
+
compile_with_tilt(node, 'haml')
|
361
|
+
end
|
354
362
|
end
|
355
363
|
|
356
|
-
|
364
|
+
class Haml::Filters
|
365
|
+
register :deferjs, Haml::Filters::DeferJS
|
366
|
+
register :documentation, Haml::Filters::Documentation
|
367
|
+
end
|
368
|
+
else
|
369
|
+
module Haml::Filters::DeferJS
|
370
|
+
include Haml::Filters::Base
|
371
|
+
|
372
|
+
def render(text)
|
373
|
+
step_path = Thread.current["step_path"]
|
374
|
+
text = "" if text.nil?
|
375
|
+
defer_text =<<-EOF
|
376
|
+
%script
|
377
|
+
:plain
|
378
|
+
defer(function(step_path){
|
379
|
+
#{text.gsub(/^/," ")}
|
380
|
+
}, '#{step_path}')
|
381
|
+
EOF
|
382
|
+
Haml::Engine.new(defer_text).to_html
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
386
|
+
module Haml::Filters::Documentation
|
387
|
+
include Haml::Filters::Base
|
388
|
+
|
389
|
+
def render(text)
|
390
|
+
text = "<br/>" if text.strip.empty?
|
357
391
|
|
392
|
+
doc_text =<<-EOF
|
393
|
+
%section.documentation#{ text.gsub(/\s/,'').length < 80 * 10 ? '.short' : ''}
|
394
|
+
:markdown
|
395
|
+
#{text.gsub(/^/," ")}
|
396
|
+
EOF
|
397
|
+
|
398
|
+
Haml::Engine.new(doc_text).to_html
|
399
|
+
end
|
400
|
+
|
401
|
+
end
|
402
|
+
end
|
@@ -3,7 +3,6 @@ require 'rbbt/rest/common/cache'
|
|
3
3
|
require 'tilt'
|
4
4
|
|
5
5
|
Tilt::SYMBOL_ARRAY_SORTABLE = false
|
6
|
-
|
7
6
|
module RbbtRESTHelpers
|
8
7
|
def error_for(job, layout = nil)
|
9
8
|
if ex = job.info[:exception]
|
@@ -153,7 +152,8 @@ module RbbtRESTHelpers
|
|
153
152
|
end
|
154
153
|
end
|
155
154
|
Log.low("Fragment started: #{ fragment_file } - #{Process.pid}")
|
156
|
-
res = capture_haml fragment_code, &block
|
155
|
+
#res = capture_haml fragment_code, &block
|
156
|
+
res = $haml_6 ? capture(&block) : capture_haml(&block)
|
157
157
|
Log.low("Fragment writing: #{ fragment_file } - #{Process.pid}")
|
158
158
|
Open.write(fragment_file, res)
|
159
159
|
Log.low("Fragment done: #{ fragment_file } - #{Process.pid}")
|
@@ -196,7 +196,7 @@ module RbbtRESTHelpers
|
|
196
196
|
end
|
197
197
|
end
|
198
198
|
else
|
199
|
-
|
199
|
+
$haml_6 ? capture(&block) : capture_haml(&block)
|
200
200
|
end
|
201
201
|
else
|
202
202
|
if link =~ / class=/
|
@@ -294,7 +294,8 @@ module RbbtRESTHelpers
|
|
294
294
|
def reveal(text, id = nil, options = nil, &block)
|
295
295
|
id ||= "rbbt_reveal_" << (rand * 10000).to_i.to_s
|
296
296
|
|
297
|
-
content_html = capture_haml(&block)
|
297
|
+
#content_html = capture_haml(&block)
|
298
|
+
content_html = $haml_6 ? capture(&block) : capture_haml(&block)
|
298
299
|
|
299
300
|
options = {} if options.nil?
|
300
301
|
options = {:href => "#", "data-reveal-id" => 'modal1', 'attr-reveal_id' => id}.merge(options)
|
@@ -40,7 +40,7 @@ module RbbtRESTHelpers
|
|
40
40
|
md5 = Misc.digest(recorded_js_files * ",")
|
41
41
|
filename = settings.file_dir["all_js-#{md5}.js"].find
|
42
42
|
|
43
|
-
if not File.
|
43
|
+
if not File.exist?(filename)
|
44
44
|
Log.debug{ "Regenerating JS Compressed file: #{ filename }" }
|
45
45
|
|
46
46
|
text = recorded_js_files.collect{|file|
|
@@ -53,7 +53,7 @@ module RbbtRESTHelpers
|
|
53
53
|
"//FILE: #{ File.basename(path) }\n" + Open.read(path)
|
54
54
|
} * "\n"
|
55
55
|
|
56
|
-
FileUtils.mkdir_p File.dirname(filename) unless File.
|
56
|
+
FileUtils.mkdir_p File.dirname(filename) unless File.exist? File.dirname(filename)
|
57
57
|
Open.write(filename, Uglifier.compile(text))
|
58
58
|
end
|
59
59
|
|
@@ -146,6 +146,32 @@ Quality
|
|
146
146
|
end
|
147
147
|
|
148
148
|
module RbbtRESTHelpers
|
149
|
+
|
150
|
+
def capture(*args, &block)
|
151
|
+
|
152
|
+
variables = block.binding.local_variables
|
153
|
+
#variables.each do |v|
|
154
|
+
# iif [v, block.binding.local_variable_get(v)]
|
155
|
+
#end
|
156
|
+
buff_var = variables.select{|v| v.to_s =~ /^_module\d+$/}.sort_by{|v| v.to_s.scan(/\d+/).first.to_i}.last
|
157
|
+
buff_was = block.binding.local_variable_get(buff_var) if variables.include? buff_var
|
158
|
+
block.binding.local_variable_set(buff_var,'') if buff_var
|
159
|
+
begin
|
160
|
+
raw = block.call(*args)
|
161
|
+
#variables = block.binding.local_variables
|
162
|
+
#iii variables
|
163
|
+
#variables.each do |v|
|
164
|
+
# iif [v, block.binding.local_variable_get(v)]
|
165
|
+
#end
|
166
|
+
captured = block.binding.local_variable_get(buff_var) if block.binding.local_variables.include?(buff_var)
|
167
|
+
captured = "" if captured.nil?
|
168
|
+
captured = raw if captured.empty?
|
169
|
+
captured
|
170
|
+
ensure
|
171
|
+
block.binding.local_variable_set(buff_var, buff_was) if buff_was
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
149
175
|
def tsv_rows_full(tsv)
|
150
176
|
case tsv.type
|
151
177
|
when :single
|
@@ -390,7 +416,7 @@ module RbbtRESTHelpers
|
|
390
416
|
tsv = TSV.open(Open.open(file))
|
391
417
|
end
|
392
418
|
|
393
|
-
table_options = File.
|
419
|
+
table_options = File.exist?(file + '.table_options') ? YAML.load_file(file + '.table_options') : {}
|
394
420
|
tsv.entity_options = table_options[:tsv_entity_options]
|
395
421
|
headers = table_options[:headers]
|
396
422
|
headers.each{|field,p| tsv.entity_templates[field] = Misc.prepare_entity("TEMPLATE", p.first, (tsv.entity_options || {}).merge(p.last)) } unless headers.nil?
|
@@ -402,10 +428,12 @@ module RbbtRESTHelpers
|
|
402
428
|
RbbtRESTHelpers.load_tsv(*args)
|
403
429
|
end
|
404
430
|
|
405
|
-
def table(options = {})
|
431
|
+
def table(options = {},&block)
|
406
432
|
options = {} if options.nil?
|
407
433
|
|
408
|
-
tsv =
|
434
|
+
tsv = $haml_6 ? capture(&block) : block.call
|
435
|
+
|
436
|
+
raise "Use next to return the table" if String === tsv
|
409
437
|
|
410
438
|
table_code = options[:table_id] || (rand * 100000).to_i.to_s
|
411
439
|
table_code = Entity::REST.clean_element(table_code)
|
@@ -1,6 +1,7 @@
|
|
1
|
-
|
2
1
|
module RbbtRESTHelpers
|
3
2
|
class Tabs
|
3
|
+
include RbbtRESTHelpers
|
4
|
+
|
4
5
|
attr_accessor :headers, :codes, :content, :classes, :tab_classes
|
5
6
|
def initialize(page)
|
6
7
|
@page = page
|
@@ -13,7 +14,7 @@ module RbbtRESTHelpers
|
|
13
14
|
@content ||= {}
|
14
15
|
|
15
16
|
if block_given?
|
16
|
-
html = @page.capture_haml
|
17
|
+
html = $haml_6 ? capture(&block) : @page.capture_haml(&block)
|
17
18
|
else
|
18
19
|
html = nil
|
19
20
|
end
|
@@ -57,10 +57,10 @@ module Entity
|
|
57
57
|
|
58
58
|
def self.load_list(entity_type, id, user = nil)
|
59
59
|
path = list_file(entity_type, id, user)
|
60
|
-
path = list_file(entity_type, id, :public) unless path != nil and File.
|
61
|
-
path = list_file(entity_type, id) unless path != nil and File.
|
60
|
+
path = list_file(entity_type, id, :public) unless path != nil and File.exist? path
|
61
|
+
path = list_file(entity_type, id) unless path != nil and File.exist? path
|
62
62
|
|
63
|
-
raise "List not found: #{ id }" if path.nil? or not File.
|
63
|
+
raise "List not found: #{ id }" if path.nil? or not File.exist? path
|
64
64
|
|
65
65
|
begin
|
66
66
|
list = Annotated.load_tsv TSV.open(path)
|
@@ -79,7 +79,7 @@ module Entity
|
|
79
79
|
begin
|
80
80
|
Open.write(path, Annotated.tsv(list, :all).to_s)
|
81
81
|
rescue
|
82
|
-
FileUtils.rm path if File.
|
82
|
+
FileUtils.rm path if File.exist? path
|
83
83
|
raise $!
|
84
84
|
end
|
85
85
|
end
|
@@ -88,11 +88,11 @@ module Entity
|
|
88
88
|
def self.delete_list(entity_type, id, user)
|
89
89
|
path = list_file(entity_type, id, user)
|
90
90
|
|
91
|
-
"This list does not belong to #{ user }: #{[entity_type, id] * ": "}" unless File.
|
91
|
+
"This list does not belong to #{ user }: #{[entity_type, id] * ": "}" unless File.exist? path
|
92
92
|
|
93
93
|
Misc.lock path do
|
94
94
|
begin
|
95
|
-
FileUtils.rm path if File.
|
95
|
+
FileUtils.rm path if File.exist? path
|
96
96
|
rescue
|
97
97
|
raise $!
|
98
98
|
end
|
data/lib/rbbt/rest/entity/map.rb
CHANGED
@@ -57,8 +57,8 @@ module Entity
|
|
57
57
|
|
58
58
|
def self.load_map(entity_type, column, id, user = nil)
|
59
59
|
path = map_file(entity_type, column, id, user)
|
60
|
-
path = map_file(entity_type, column, id, :public) unless path != nil and File.
|
61
|
-
path = map_file(entity_type, column, id) unless path != nil and File.
|
60
|
+
path = map_file(entity_type, column, id, :public) unless path != nil and File.exist? path
|
61
|
+
path = map_file(entity_type, column, id) unless path != nil and File.exist? path
|
62
62
|
|
63
63
|
begin
|
64
64
|
RbbtRESTHelpers.load_tsv(path).first
|
@@ -75,7 +75,7 @@ module Entity
|
|
75
75
|
begin
|
76
76
|
RbbtRESTHelpers.save_tsv(map, path)
|
77
77
|
rescue
|
78
|
-
FileUtils.rm path if path and File.
|
78
|
+
FileUtils.rm path if path and File.exist? path
|
79
79
|
raise $!
|
80
80
|
end
|
81
81
|
end
|
@@ -84,11 +84,11 @@ module Entity
|
|
84
84
|
def self.delete_map(entity_type, column, id, user)
|
85
85
|
path = map_file(entity_type, column, id, user)
|
86
86
|
|
87
|
-
"This map does not belong to #{ user }: #{[entity_type, column, id] * ": "}" unless File.
|
87
|
+
"This map does not belong to #{ user }: #{[entity_type, column, id] * ": "}" unless File.exist? path
|
88
88
|
|
89
89
|
Misc.lock path do
|
90
90
|
begin
|
91
|
-
FileUtils.rm path if File.
|
91
|
+
FileUtils.rm path if File.exist? path
|
92
92
|
rescue
|
93
93
|
raise $!
|
94
94
|
end
|
@@ -189,7 +189,7 @@ module Entity
|
|
189
189
|
reuse = options.delete("reuse") if reuse.nil?
|
190
190
|
reuse = true if reuse.nil?
|
191
191
|
|
192
|
-
Entity::List.save_list(entity_type.to_s, id, self) unless reuse and File.
|
192
|
+
Entity::List.save_list(entity_type.to_s, id, self) unless reuse and File.exist?(Entity::List.list_file(entity_type.to_s, id))
|
193
193
|
|
194
194
|
klasses = self.klasses
|
195
195
|
klasses << 'entity_list'
|
@@ -212,7 +212,7 @@ module Entity
|
|
212
212
|
reuse = options.delete("reuse") if reuse.nil?
|
213
213
|
reuse = true if reuse.nil?
|
214
214
|
|
215
|
-
Entity::List.save_list(entity_type.to_s, id, self) unless reuse and File.
|
215
|
+
Entity::List.save_list(entity_type.to_s, id, self) unless reuse and File.exist? Entity::List.list_file(entity_type.to_s, id, self)
|
216
216
|
|
217
217
|
klasses = self.klasses
|
218
218
|
klasses << 'entity_list_action'
|
data/lib/rbbt/rest/entity.rb
CHANGED
@@ -134,10 +134,10 @@ module Sinatra
|
|
134
134
|
when :raw, :literal
|
135
135
|
content_type "text/tab-separated-values"
|
136
136
|
user_file = Entity::List.list_file(entity_type.split(":").first, list_id, user)
|
137
|
-
send_file user_file if File.
|
137
|
+
send_file user_file if File.exist? user_file
|
138
138
|
|
139
139
|
global_file = Entity::List.list_file(entity_type.split(":").first, list_id, nil)
|
140
|
-
send_file global_file if File.
|
140
|
+
send_file global_file if File.exist? global_file
|
141
141
|
|
142
142
|
raise "List file not found: #{ list_id }"
|
143
143
|
when :json
|
@@ -296,21 +296,21 @@ module Sinatra
|
|
296
296
|
case @format
|
297
297
|
when :name
|
298
298
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
299
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
299
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
300
300
|
new = TSV.open(file).change_key "Associated Gene Name"
|
301
301
|
new_id = map_id << " [Names]"
|
302
302
|
Entity::Map.save_map(entity_type, column, new_id, new, user)
|
303
303
|
redirect to(Entity::REST.entity_map_url(new_id, entity_type, column))
|
304
304
|
when :ensembl
|
305
305
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
306
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
306
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
307
307
|
new = TSV.open(file).change_key "Ensembl Gene ID"
|
308
308
|
new_id = map_id << " [Ensembl]"
|
309
309
|
Entity::Map.save_map(entity_type, column, new_id, new, user)
|
310
310
|
redirect to(Entity::REST.entity_map_url(new_id, entity_type, column))
|
311
311
|
when :pvalue_score
|
312
312
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
313
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
313
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
314
314
|
tsv = TSV.open(file)
|
315
315
|
tsv.process tsv.fields.first do |value|
|
316
316
|
value = value.flatten.first if Array === value
|
@@ -325,7 +325,7 @@ module Sinatra
|
|
325
325
|
redirect to(Entity::REST.entity_map_url(new_id, entity_type, column))
|
326
326
|
when :ranks
|
327
327
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
328
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
328
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
329
329
|
tsv = TSV.open(file, :cast => :to_f)
|
330
330
|
new = tsv.ranks_for(tsv.fields.first)
|
331
331
|
new_id = map_id << " [Ranks]"
|
@@ -334,7 +334,7 @@ module Sinatra
|
|
334
334
|
redirect to(Entity::REST.entity_map_url(new_id, entity_type, column))
|
335
335
|
when :invert_ranks
|
336
336
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
337
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
337
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
338
338
|
tsv = TSV.open(file)
|
339
339
|
size = tsv.size
|
340
340
|
tsv.process "Rank" do |v|
|
@@ -351,15 +351,15 @@ module Sinatra
|
|
351
351
|
when :raw, :literal
|
352
352
|
content_type "text/tab-separated-values"
|
353
353
|
user_file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
354
|
-
send_file user_file if File.
|
354
|
+
send_file user_file if File.exist? user_file
|
355
355
|
|
356
356
|
global_file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil)
|
357
|
-
send_file global_file if File.
|
357
|
+
send_file global_file if File.exist? global_file
|
358
358
|
|
359
359
|
raise "Map file not found: #{ map_id }"
|
360
360
|
when :json
|
361
361
|
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, user)
|
362
|
-
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.
|
362
|
+
file = Entity::Map.map_file(entity_type.split(":").first, column, map_id, nil) unless File.exist? file
|
363
363
|
|
364
364
|
content_type "application/json"
|
365
365
|
tsv = TSV.open(file)
|
@@ -413,13 +413,13 @@ module Sinatra
|
|
413
413
|
column = Entity::REST.restore_element(column)
|
414
414
|
|
415
415
|
file1 = Entity::Map.map_file(entity_type.split(":").first, column, map1, user)
|
416
|
-
file1 = Entity::Map.map_file(entity_type.split(":").first, column, map1, nil) unless File.
|
417
|
-
raise "Map not found: #{ map1 }" unless File.
|
416
|
+
file1 = Entity::Map.map_file(entity_type.split(":").first, column, map1, nil) unless File.exist? file1
|
417
|
+
raise "Map not found: #{ map1 }" unless File.exist? file1
|
418
418
|
tsv1 = TSV.open(file1, :cast => :to_f)
|
419
419
|
|
420
420
|
file2 = Entity::Map.map_file(entity_type.split(":").first, column2, map2, user)
|
421
|
-
file2 = Entity::Map.map_file(entity_type.split(":").first, column2, map2, nil) unless File.
|
422
|
-
raise "Map not found: #{ map2 } - #{ file2 }" unless File.
|
421
|
+
file2 = Entity::Map.map_file(entity_type.split(":").first, column2, map2, nil) unless File.exist? file2
|
422
|
+
raise "Map not found: #{ map2 } - #{ file2 }" unless File.exist? file2
|
423
423
|
tsv2 = TSV.open(file2, :cast => :to_f)
|
424
424
|
|
425
425
|
tsv1 = tsv1.select :key => tsv2.keys
|
data/lib/rbbt/rest/main.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'haml'
|
2
|
+
$haml_6 = Gem::Version.new(Haml::VERSION) >= Gem::Version.new("6.0.0")
|
3
|
+
|
1
4
|
require 'rbbt/rest/common/locate'
|
2
5
|
require 'rbbt/rest/common/resources'
|
3
6
|
require 'rbbt/rest/common/users'
|
@@ -14,6 +17,7 @@ require 'json'
|
|
14
17
|
require 'nakayoshi_fork'
|
15
18
|
|
16
19
|
Rbbt.add_version(__FILE__)
|
20
|
+
|
17
21
|
module Sinatra
|
18
22
|
module RbbtRESTMain
|
19
23
|
|
@@ -121,7 +125,7 @@ module Sinatra
|
|
121
125
|
printer = RubyProf::MultiPrinter.new(result)
|
122
126
|
dir = TmpFile.tmp_file
|
123
127
|
dir = settings.file_dir
|
124
|
-
FileUtils.mkdir_p dir unless File.
|
128
|
+
FileUtils.mkdir_p dir unless File.exist? dir
|
125
129
|
printer.print(:path => dir, :profile => 'profile')
|
126
130
|
Log.info{ "Profile saved at #{ dir }: #{@uri}" }
|
127
131
|
end
|
@@ -151,7 +151,7 @@ module WorkflowRESTHelpers
|
|
151
151
|
if job.path
|
152
152
|
if Open.remote? job.path
|
153
153
|
Open.open(job.path, :nocache => true)
|
154
|
-
elsif File.
|
154
|
+
elsif File.exist? job.path
|
155
155
|
send_file(job.path, :filename => (params[:filename] || File.basename(job.path)))
|
156
156
|
else
|
157
157
|
halt 200, job.load
|
data/lib/rbbt/rest/workflow.rb
CHANGED
@@ -41,7 +41,7 @@ module Sinatra
|
|
41
41
|
workflow.export *workflow.tasks.keys
|
42
42
|
end
|
43
43
|
|
44
|
-
self.instance_eval workflow.libdir.lib['sinatra.rb'].read, workflow.libdir.lib['sinatra.rb'].find if workflow.respond_to?(:libdir) and File.
|
44
|
+
self.instance_eval workflow.libdir.lib['sinatra.rb'].read, workflow.libdir.lib['sinatra.rb'].find if workflow.respond_to?(:libdir) and File.exist? workflow.libdir.lib['sinatra.rb']
|
45
45
|
|
46
46
|
get "/#{workflow.to_s}" do
|
47
47
|
case format
|
@@ -30,7 +30,7 @@
|
|
30
30
|
- pvalue = pvalue.collect{|p| p == 0 ? 0.000000000000000000001 : p }
|
31
31
|
= resource map_id + '.qqplot.png', nil, :image do |file|
|
32
32
|
= fragment do
|
33
|
-
- FileUtils.mkdir_p File.dirname(file) unless File.
|
33
|
+
- FileUtils.mkdir_p File.dirname(file) unless File.exist? File.dirname(file)
|
34
34
|
:ruby
|
35
35
|
script =<<-EOF
|
36
36
|
library(ggplot2)
|
data/share/views/form.haml
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
- name = File.basename(example_dir)
|
32
32
|
- task_info = workflow.task_info task
|
33
33
|
- inputs = Workflow.load_inputs(example_dir, task_info[:inputs], task_info[:input_types])
|
34
|
-
- inputs.each{|k,v| v.replace Open.read(v) if String === v and File.
|
34
|
+
- inputs.each{|k,v| v.replace Open.read(v) if String === v and File.exist? v }
|
35
35
|
- new = {}
|
36
36
|
- inputs.each{|k,v| v.filename = nil if TSV === v ; v = v * "\n" if Array === v; new[k] = v.to_s }
|
37
37
|
- inputs = new
|
data/share/views/wait.haml
CHANGED
@@ -66,7 +66,7 @@
|
|
66
66
|
$('.step.progress').progress({label: 'ratio',text:{ratio: '{value}'}})
|
67
67
|
|
68
68
|
%hr
|
69
|
-
- if defined? job.info_file and File.
|
69
|
+
- if defined? job.info_file and File.exist? job.info_file and @uri.include? job.name
|
70
70
|
- abort_url = add_GET_param(remove_GET_param(@uri, "_layout"), "_update", "abort")
|
71
71
|
%a.ui.button.red.abort(href=abort_url) Abort
|
72
72
|
-#- clean_url = add_GET_param(remove_GET_param(@uri, "_layout"), "_update", "clean")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: modular-scale
|
@@ -1853,7 +1853,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1853
1853
|
- !ruby/object:Gem::Version
|
1854
1854
|
version: '0'
|
1855
1855
|
requirements: []
|
1856
|
-
rubygems_version: 3.
|
1856
|
+
rubygems_version: 3.4.8
|
1857
1857
|
signing_key:
|
1858
1858
|
specification_version: 4
|
1859
1859
|
summary: Rbbt Web and REST interfaces
|