rbbt-views 2.0.0 → 2.0.1
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/lib/rbbt/workflow/rest/client.rb +14 -16
- data/test/rbbt/workflow/rest/test_client.rb +11 -2
- metadata +4 -5
- data/share/views/public/tmp/foo +0 -0
@@ -27,6 +27,10 @@ class RbbtRestClient
|
|
27
27
|
attr_accessor :remote_name
|
28
28
|
attr_accessor :original_name
|
29
29
|
attr_accessor :remote_export
|
30
|
+
|
31
|
+
def remote_name
|
32
|
+
URI.escape(@remote_name)
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
step.original_name = name || "RestClient"
|
@@ -49,13 +53,13 @@ class RbbtRestClient
|
|
49
53
|
def load
|
50
54
|
case task.result_type.to_sym
|
51
55
|
when :string
|
52
|
-
RestClient.get(File.join(task.url, task.name.to_s,
|
56
|
+
RestClient.get(File.join(task.url, task.name.to_s, remote_name) + "?_format=raw")
|
53
57
|
when :tsv
|
54
|
-
TSV.open(StringIO.new(RestClient.get(File.join(task.url, task.name.to_s,
|
58
|
+
TSV.open(StringIO.new(RestClient.get(File.join(task.url, task.name.to_s, remote_name) + "?_format=raw")))
|
55
59
|
when :annotations
|
56
|
-
Annotated.load_tsv(TSV.open(StringIO.new(RestClient.get(File.join(task.url, task.name.to_s,
|
60
|
+
Annotated.load_tsv(TSV.open(StringIO.new(RestClient.get(File.join(task.url, task.name.to_s, remote_name) + "?_format=raw"))))
|
57
61
|
else
|
58
|
-
res = JSON.parse(RestClient.get(File.join(task.url, task.name.to_s,
|
62
|
+
res = JSON.parse(RestClient.get(File.join(task.url, task.name.to_s, remote_name) + "?_format=json"))
|
59
63
|
res = TSV.setup(res) if task.result_type.to_sym == :tsv
|
60
64
|
res
|
61
65
|
end
|
@@ -63,27 +67,22 @@ class RbbtRestClient
|
|
63
67
|
|
64
68
|
def exec
|
65
69
|
input_hash = Misc.zip2hash(task.inputs, @inputs)
|
66
|
-
input_str = input_hash.collect{|k,v|
|
67
|
-
[k,
|
68
|
-
Array === v ? v.dup.collect{|vv| CGI.escape(vv.to_s)} * "," : CGI.escape(v.to_s)
|
69
|
-
] * "="
|
70
|
-
} * "&"
|
71
70
|
|
72
71
|
case remote_export.to_s
|
73
72
|
when "exec"
|
74
73
|
url = File.join(task.url, task.name.to_s)
|
75
74
|
if task.result_type.to_sym == :string
|
76
|
-
res = RestClient.post(url, input_hash.merge(:_format => :raw))
|
75
|
+
res = RestClient.post(url, Misc.hash2GET_params(input_hash.merge(:_format => :raw)))
|
77
76
|
res
|
78
77
|
else
|
79
|
-
res = RestClient.post(url, input_hash.merge(:_format => :json))
|
78
|
+
res = RestClient.post(url, Misc.hash2GET_params(input_hash.merge(:_format => :json)))
|
80
79
|
JSON.parse(res)
|
81
80
|
end
|
82
81
|
when "synchronous"
|
83
|
-
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), input_hash.merge(:_format => :json, :jobname => original_name))
|
82
|
+
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), Misc.hash2GET_params(input_hash.merge(:_format => :json, :jobname => original_name)))
|
84
83
|
self.load
|
85
84
|
when "asynchronous"
|
86
|
-
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), input_hash.merge(:_format => :json, :jobname => original_name))
|
85
|
+
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), Misc.hash2GET_params(input_hash.merge(:_format => :json, :jobname => original_name)))
|
87
86
|
while not done?
|
88
87
|
sleep 10
|
89
88
|
end
|
@@ -97,16 +96,15 @@ class RbbtRestClient
|
|
97
96
|
|
98
97
|
def fork
|
99
98
|
input_hash = Misc.zip2hash(task.inputs, @inputs)
|
100
|
-
input_str = input_hash.collect{|p| p * "="} * "&"
|
101
99
|
|
102
100
|
case remote_export.to_s
|
103
101
|
when "exec"
|
104
102
|
raise "Cannot export a remote function exported as 'exec'"
|
105
103
|
when "synchronous"
|
106
|
-
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), input_hash.merge(:_format => :json, :jobname => original_name))
|
104
|
+
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), Misc.hash2GET_params(input_hash.merge(:_format => :json, :jobname => original_name)))
|
107
105
|
self
|
108
106
|
when "asynchronous"
|
109
|
-
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), input_hash.merge(:_format => :json, :jobname => original_name))
|
107
|
+
@remote_name = RestClient.post(File.join(task.url, task.name.to_s), Misc.hash2GET_params(input_hash.merge(:_format => :json, :jobname => original_name)))
|
110
108
|
self
|
111
109
|
end
|
112
110
|
end
|
@@ -3,8 +3,17 @@ require 'rbbt/workflow/rest/client'
|
|
3
3
|
|
4
4
|
class TestRestClient < Test::Unit::TestCase
|
5
5
|
|
6
|
+
def test_name_escape
|
7
|
+
driver = RbbtRestClient.new 'http://studyexplorer.bioinfo.cnio.es/Sequence', "Sequence"
|
8
|
+
job = driver.job(:genes_at_genomic_positions, "Default (escape)", :organism => "Hsa", :positions => %w(1:123123:A))
|
9
|
+
assert_equal %w(ENSG00000238009), job.exec.values.flatten
|
10
|
+
assert_equal %w(ENSG00000238009), job.run.values.flatten
|
11
|
+
job.clean
|
12
|
+
end
|
13
|
+
|
14
|
+
|
6
15
|
def test_client_exec
|
7
|
-
driver = RbbtRestClient.new 'http://
|
16
|
+
driver = RbbtRestClient.new 'http://studyexplorer.bioinfo.cnio.es/Sequence', "Sequence"
|
8
17
|
job = driver.job(:genes_at_genomic_positions, "Default", :organism => "Hsa", :positions => %w(1:123123:A))
|
9
18
|
assert_equal %w(ENSG00000238009), job.exec.values.flatten
|
10
19
|
assert_equal %w(ENSG00000238009), job.run.values.flatten
|
@@ -12,7 +21,7 @@ class TestRestClient < Test::Unit::TestCase
|
|
12
21
|
end
|
13
22
|
|
14
23
|
def test_client_synchronous
|
15
|
-
driver = RbbtRestClient.new 'http://
|
24
|
+
driver = RbbtRestClient.new 'http://studyexplorer.bioinfo.cnio.es/Sequence', "Sequence"
|
16
25
|
job = driver.job(:mutated_isoforms_for_genomic_mutations, "Default", :organism => "Hsa", :mutations => %w(9:140051238:G))
|
17
26
|
assert job.exec.values.flatten.include? "ENSP00000316915:P263P"
|
18
27
|
job.clean
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-views
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -995,15 +995,14 @@ files:
|
|
995
995
|
- share/views/public/plugins/tablesorter/themes/green/green.zip
|
996
996
|
- share/views/public/plugins/tablesorter/themes/green/style.css
|
997
997
|
- share/views/public/plugins/wz_jsgraphics.js
|
998
|
-
- share/views/public/tmp/foo
|
999
998
|
- share/views/result.haml
|
1000
999
|
- share/views/step_error.haml
|
1001
1000
|
- share/views/task_list.haml
|
1002
1001
|
- share/views/user_lists.haml
|
1003
1002
|
- share/views/wait.haml
|
1004
1003
|
- LICENSE
|
1005
|
-
- test/test_helper.rb
|
1006
1004
|
- test/rbbt/workflow/rest/test_client.rb
|
1005
|
+
- test/test_helper.rb
|
1007
1006
|
homepage: http://github.com/mikisvaz/rbbt-views
|
1008
1007
|
licenses: []
|
1009
1008
|
post_install_message:
|
@@ -1029,5 +1028,5 @@ signing_key:
|
|
1029
1028
|
specification_version: 3
|
1030
1029
|
summary: Rest and HTML interface
|
1031
1030
|
test_files:
|
1032
|
-
- test/test_helper.rb
|
1033
1031
|
- test/rbbt/workflow/rest/test_client.rb
|
1032
|
+
- test/test_helper.rb
|
data/share/views/public/tmp/foo
DELETED
File without changes
|