rbbt-rest 1.3.31 → 1.3.32

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.
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