rbbt-rest 1.3.31 → 1.3.32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0208f7fc3e2046cb4ddd0124670584543dddf184
4
- data.tar.gz: feb9543f611a596b3dc4ffef0d0148b7184640aa
3
+ metadata.gz: baafff671bbb97e58be46dfcaaee6a3c64b103b4
4
+ data.tar.gz: d7106534d2b1b70944e2bc875b7cbeadef8c26a6
5
5
  SHA512:
6
- metadata.gz: 18c475e2ff1394fe4e3fb36619e546ab28be15db6d2581286381217e3201e0353e905997f51f3afc9c757fa1aaa9e5b28df322a4dabacaf08bde3d1a389388e5
7
- data.tar.gz: 0e7ebfce95a3c73df346d73e3969c885c1ec6bff560a2c6c5d676945788adc0526cf2778f7426bd58b9d87fb89cc4524b12adbe74ae0218e833fd79a3ba837be
6
+ metadata.gz: 098f9a74ed00d545f866e0d397a131191c2d14c8078ba09156a7694d253320ebae52268a80808969410cd05b694725af8a08e45bc665b3569876ea19806d5a0a
7
+ data.tar.gz: d36a5bc597de18f4214be7d0179030e3354080c6b6834132cecd0ed2e2314c4701c8f4650082da8c0ac30a5ca7a3f8157e4ccfc157db9c60d8652c639d6dfb5d
@@ -26,13 +26,20 @@ class WorkflowRESTClient
26
26
  def job(task, name, inputs)
27
27
  task_info = task_info(task)
28
28
  fixed_inputs = {}
29
+ input_types = task_info[:input_types]
30
+
29
31
  inputs.each do |k,v|
30
- fixed_inputs[k] = case v
31
- when TSV
32
- v.to_s
33
- else
34
- v
35
- end
32
+ k = k.to_sym
33
+ if TSV === v
34
+ fixed_inputs[k] = v.to_s
35
+ else
36
+ case input_types[k].to_sym
37
+ when :tsv, :array, :file, :text
38
+ fixed_inputs[k] = (String === v and Open.exists?(v)) ? Open.open(v) : v
39
+ else
40
+ fixed_inputs[k] = v
41
+ end
42
+ end
36
43
  end
37
44
 
38
45
  RemoteStep.new(url, task, name, fixed_inputs, task_info[:result_type], task_info[:result_description], @exec_exports.include?(task))
@@ -118,11 +118,20 @@ module RbbtRESTHelpers
118
118
  when :boolean
119
119
  param2boolean(value)
120
120
 
121
- when :text
121
+ when :text, :file
122
122
  if param_file and (value.nil? or (String === value and value.empty?))
123
123
  param_file[:tempfile].read
124
124
  else
125
- value.gsub(/\r\n/, "\n")
125
+ case value
126
+ when String
127
+ value.gsub(/\r\n/, "\n")
128
+ when File, IO
129
+ value
130
+ when Hash
131
+ value[:tempfile]
132
+ else
133
+ raise "Missing class for #{ type }: #{ Misc.fingerprint value }"
134
+ end
126
135
  end
127
136
 
128
137
  when :array
@@ -75,11 +75,11 @@ module Entity
75
75
  if entity.respond_to? :entity_link_params
76
76
  params = entity.entity_link_params
77
77
  else
78
- params = {}
78
+ params = entity.respond_to?(:info) ? entity.info : {}
79
79
  end
80
80
  end
81
81
 
82
- params ||= entity.info if entity.respond_to? :info
82
+
83
83
  url = File.join('/', 'entity', Entity::REST.clean_element(type.to_s), entity)
84
84
  url << "?" << Misc.hash2GET_params(params) if params.any?
85
85
  url
@@ -3,10 +3,19 @@ require 'rbbt/knowledge_base'
3
3
 
4
4
  module KnowledgeBaseRESTHelpers
5
5
  class << self
6
- attr_accessor :knowledge_base_dir, :knowledge_bases
6
+ attr_accessor :knowledge_base_dir, :syndications
7
+
8
+ def add_syndication(name, kb)
9
+ @syndications ||= {}
10
+ @syndications[name] = kb
11
+ end
12
+
13
+ def syndications
14
+ @syndications ||= {}
15
+ end
7
16
  end
8
17
 
9
- self.knowledge_base_dir = "var/knowledge_base"
18
+ self.knowledge_base_dir = Path.setup("var/sinatra/knowledge_bases")
10
19
 
11
20
  def prepare_entities_for_json(entities)
12
21
  case entities
@@ -25,65 +34,90 @@ module KnowledgeBaseRESTHelpers
25
34
  end
26
35
  end
27
36
 
28
- def get_kb(name)
29
- @@knowledge_bases ||= IndiferentHash.setup({})
30
- case name
31
- when :genomics, "genomics"
32
- @@knowledge_bases[name] ||= Genomics.knowledge_base
33
- else
34
- @@knowledge_bases[name] ||= KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name)
35
- end
36
- end
37
+ #def get_kb(name)
38
+ # @@knowledge_bases ||= IndiferentHash.setup({})
39
+ # case name
40
+ # when :genomics, "genomics"
41
+ # @@knowledge_bases[name] ||= Genomics.knowledge_base
42
+ # else
43
+ # @@knowledge_bases[name] ||= KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name)
44
+ # end
45
+ #end
46
+
47
+ #def user_kb(user)
48
+ # user = "guest" if user.nil?
49
+ # @@user_knowledge_bases ||= IndiferentHash.setup({})
50
+ # @@user_knowledge_bases[user] ||= begin
51
+ # kb = KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, File.join('user', user)), Organism.default_code("Hsa")
52
+ # kb.format["Gene"] = "Ensembl Gene ID"
53
+
54
+ # kb.syndicate Genomics.knowledge_base, :genomics
55
+
56
+ # if defined? user_studies
57
+ # TSV.traverse user_studies[user], :cpus => 10 do |study|
58
+ # Study.setup(study)
59
+ # study.sample_genes if study.has_genotypes?
60
+ # end
61
+
62
+ # user_studies[user].each do |study|
63
+ # Study.setup(study)
64
+ # kb.syndicate study.knowledge_base, study
65
+ # end
66
+ # end
67
+
68
+ # kb
69
+ # end
70
+ #end
71
+
72
+ #def get_knowledge_base(name, namespace = nil)
73
+ # @@knowledge_bases ||= IndiferentHash.setup({})
74
+ # @@knowledge_bases[name] ||= begin
75
+ # begin
76
+ # mod = Kernel.const_get name
77
+ # return mod.knowledge_base if mod.respond_to? :knowledge_base
78
+ # rescue Exception
79
+ # end
80
+ # kb = case
81
+ # when [:genomics, "genomics"].include?(name)
82
+ # Genomics.knowledge_base
83
+ # when (Misc.path_relative_to(settings.cache_dir, name) and File.exists?(name))
84
+ # KnowledgeBase.new name
85
+ # when KnowledgeBase.registry.include?(name)
86
+ # KnowledgeBase.registry[name]
87
+ # when (defined? Study and Study.studies.include?(name))
88
+ # Study.setup(name).knowledge_base
89
+ # when name.to_s == "user"
90
+ # user_kb(user)
91
+ # else
92
+ # KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name)
93
+ # end
94
+
95
+ # namespace ? kb.version(namespace) : kb
96
+ # end
97
+ #end
37
98
 
38
99
  def user_kb(user)
39
- user = "guest" if user.nil?
40
- @@user_knowledge_bases ||= IndiferentHash.setup({})
41
- @@user_knowledge_bases[user] ||= begin
42
- kb = KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, File.join('user', user)), Organism.default_code("Hsa")
43
- kb.format["Gene"] = "Ensembl Gene ID"
44
-
45
- kb.syndicate Genomics.knowledge_base, :genomics
46
-
47
- if defined? user_studies
48
- TSV.traverse user_studies[user], :cpus => 10 do |study|
49
- Study.setup(study)
50
- study.sample_genes if study.has_genotypes?
51
- end
52
-
53
- user_studies[user].each do |study|
54
- Study.setup(study)
55
- kb.syndicate study.knowledge_base, study
56
- end
57
- end
58
-
59
- kb
60
- end
100
+ @@user_kbs ||= {}
101
+ @@user_kbs[user] ||= begin
102
+ kb = KnowledgeBase.new(KnowledgeBaseRESTHelpers.knowledge_base_dir.users[user], Organism.default_code("Hsa"))
103
+
104
+ KnowledgeBaseRESTHelpers.syndications.each do |name, new|
105
+ Log.low "Syndicating database #{ name } for user #{user}"
106
+ kb.syndicate name, new
107
+ end if KnowledgeBaseRESTHelpers.syndications.any?
108
+
109
+ kb
110
+ end
61
111
  end
62
112
 
63
- def get_knowledge_base(name, namespace = nil)
64
- @@knowledge_bases ||= IndiferentHash.setup({})
65
- @@knowledge_bases[name] ||= begin
66
- begin
67
- mod = Kernel.const_get name
68
- return mod.knowledge_base if mod.respond_to? :knowledge_base
69
- rescue Exception
70
- end
71
- kb = case
72
- when [:genomics, "genomics"].include?(name)
73
- Genomics.knowledge_base
74
- when (Misc.path_relative_to(settings.cache_dir, name) and File.exists?(name))
75
- KnowledgeBase.new name
76
- when KnowledgeBase.registry.include?(name)
77
- KnowledgeBase.registry[name]
78
- when (defined? Study and Study.studies.include?(name))
79
- Study.setup(name).knowledge_base
80
- when name.to_s == "user"
81
- user_kb(user)
82
- else
83
- KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name)
84
- end
85
-
86
- namespace ? kb.version(namespace) : kb
87
- end
113
+ def get_knowledge_base(name=:user, namespace = nil)
114
+ kb = case name.to_s
115
+ when "user"
116
+ user_kb(user)
117
+ else
118
+ Genomics.knowledge_base
119
+ end
120
+
121
+ (namespace and namespace != kb.namespace) ? kb.version(namespace) : kb
88
122
  end
89
123
  end
@@ -270,7 +270,7 @@ module Sinatra
270
270
  database = consume_parameter :database
271
271
  pair = consume_parameter :pair
272
272
 
273
- kb = get_knowledge_base name
273
+ kb = get_knowledge_base
274
274
  index = kb.get_index(database)
275
275
 
276
276
  AssociationItem.setup(pair, kb, database, false)
@@ -100,7 +100,7 @@ module Sinatra
100
100
  end
101
101
 
102
102
  get "/#{workflow.to_s}/description" do
103
- halt 200, workflow.workflow_description
103
+ halt 200, workflow.documentation[:description] || ""
104
104
  end
105
105
 
106
106
 
@@ -3,6 +3,8 @@ $margin_table_actions: 7px
3
3
  $padding_table: 5px 7px
4
4
  $color_table_border: darken($table_color, 45)
5
5
  =rbbt_table()
6
+ min-width: 300px
7
+
6
8
  caption
7
9
  text-align: left
8
10
  margin-bottom: $vindent / 2
@@ -1,2 +1,3 @@
1
1
  .menu_item
2
2
  +_rbbt_menu_item
3
+
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.3.31
4
+ version: 1.3.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-28 00:00:00.000000000 Z
11
+ date: 2014-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake