rbbt-rest 1.3.24 → 1.3.25

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: 538af22c9217f13765f18be78f68df4bc21f89c0
4
- data.tar.gz: f09cfbd38cd36048a974916d2bd048ad47914500
3
+ metadata.gz: ff57d6c10b5e72c5c364001762523ac37fd71bee
4
+ data.tar.gz: b2aa30882aa2b5f97dfc1302f6c2c73d92a9cf86
5
5
  SHA512:
6
- metadata.gz: 9400cc1bac0e511d8047ef33c23f86f217d039ee0c170f149c65daabf28f2f61f076bcb3f54b972fb5509077a49c0063dc41c0eb07c9300efb5e6c059b6463de
7
- data.tar.gz: f433926fff630aff9824f1e30c73fe07d4a1c084b8318876009897bd039933d64cc6c9e04122df56d2418febda1721b74e318691d46cda30fd8b8e067c25eb8f
6
+ metadata.gz: 7a747a879a08a4eb86bd2985f877344938b1ea8bb53ca02b4c51843436ae0fcb325ac7851191f415c6924aeb9e3ff58fee3d4084f7f207b81402e76ebf5f58a4
7
+ data.tar.gz: 9e0e7b4989f2542c7cef4ed99220857d3104f3ae4af3d1a4f6c0f61e258be60ae7afcb0dead43be946baabe266325cb52c159f14e553890d8951087f214a81d8
@@ -82,6 +82,8 @@ module RbbtRESTHelpers
82
82
  end
83
83
  end
84
84
 
85
+ @array_separator = consume_parameter(:_array_separator) || ','
86
+
85
87
  @permalink = consume_parameter :_permalink
86
88
 
87
89
  @clean_params = params.dup
@@ -11,6 +11,105 @@ module Sinatra
11
11
  base.module_eval do
12
12
  helpers KnowledgeBaseRESTHelpers
13
13
 
14
+ get '/knowledge_base/:name/:database/children/:entity' do
15
+ name = consume_parameter :name
16
+ database = consume_parameter :database
17
+ entity = consume_parameter :entity
18
+
19
+ kb = get_knowledge_base name
20
+ matches = kb.children(database, entity)
21
+ case @format
22
+ when :tsv
23
+ content_type "text/tab-separated-values"
24
+ halt 200, matches.tsv.to_s
25
+ when :html
26
+ template_render('knowledge_base_partials/matches', {:matches => matches}, "Children: #{ [name, database, entity] }")
27
+ when :json
28
+ content_type :json
29
+ halt 200, matches.target.to_json
30
+ else
31
+ content_type :text
32
+ halt 200, matches.target * "\n"
33
+ end
34
+ end
35
+
36
+ get '/knowledge_base/:name/:database/parents/:entity' do
37
+ name = consume_parameter :name
38
+ database = consume_parameter :database
39
+ entity = consume_parameter :entity
40
+
41
+ kb = get_knowledge_base name
42
+ matches = kb.parents(database, entity)
43
+ case @format
44
+ when :tsv
45
+ content_type "text/tab-separated-values"
46
+ halt 200, matches.tsv.to_s
47
+ when :html
48
+ template_render('knowledge_base_partials/matches', {:matches => matches}, "Parents: #{ [name, database, entity] }")
49
+ when :json
50
+ content_type :json
51
+ halt 200, matches.source.to_json
52
+ else
53
+ content_type :text
54
+ halt 200, matches.source * "\n"
55
+ end
56
+ end
57
+
58
+ get '/knowledge_base/:name/:database/neighbours/:entity' do
59
+ name = consume_parameter :name
60
+ database = consume_parameter :database
61
+ entity = consume_parameter :entity
62
+
63
+ kb = get_knowledge_base name
64
+ neighbours = kb.neighbours(database, entity)
65
+ case @format
66
+ when :tsv
67
+ content_type "text/tab-separated-values"
68
+ halt 200, neighbours.values.collect{|m| m.tsv.to_s } * "\n\n"
69
+ when :html
70
+ template_render('knowledge_base_partials/matches', {:matches => neighbours}, "Neighbours: #{ [name, database, entity] }")
71
+ when :json
72
+ content_type :json
73
+ neighs = {}
74
+ neighs[:parents] = neighbours[:parents].source if neighbours[:parents]
75
+ neighs[:children] = neighbours[:children].target
76
+ halt 200, neighs.to_json
77
+ else
78
+ content_type :text
79
+ neighs = []
80
+ neighs.concat neighbours[:parents].source if neighbours[:parents]
81
+ neighs.concat neighbours[:children].target
82
+ halt 200, neighs * "\n"
83
+ end
84
+ end
85
+
86
+ get '/knowledge_base/:name/:database/subset' do
87
+ name = consume_parameter :name
88
+ database = consume_parameter :database
89
+ source = consume_parameter :source
90
+ target = consume_parameter :target
91
+
92
+ source = source == "all" ? :all : source.split(@array_separator) if source
93
+ target = target == "all" ? :all : target.split(@array_separator) if target
94
+ entities = { :source => source, :target => target }
95
+
96
+ kb = get_knowledge_base name
97
+ subset = kb.subset(database, entities)
98
+ case @format
99
+ when :tsv
100
+ content_type "text/tab-separated-values"
101
+ halt 200, subset.tsv.to_s
102
+ when :html
103
+ template_render('knowledge_base_partials/subset', {:subset => subset}, "Subset: #{ [name, database] }")
104
+ when :json
105
+ content_type :json
106
+ halt 200, subset.source.to_json
107
+ else
108
+ content_type :text
109
+ halt 200, subset.source * "\n"
110
+ end
111
+ end
112
+
14
113
  #{{{ Info
15
114
 
16
115
  get '/knowledge_base/info/:name/:database/:pair' do
@@ -56,7 +56,12 @@ module KnowledgeBaseRESTHelpers
56
56
  def get_knowledge_base(name, namespace = nil)
57
57
  @@knowledge_bases ||= IndiferentHash.setup({})
58
58
  @@knowledge_bases[name] ||= begin
59
- kb = case
59
+ begin
60
+ mod = Kernel.const_get name
61
+ return mod.knowledge_base if mod.respond_to? :knowledge_base
62
+ rescue Exception
63
+ end
64
+ kb = case
60
65
  when [:genomics, "genomics"].include?(name)
61
66
  Genomics.knowledge_base
62
67
  when (Misc.path_relative_to(settings.cache_dir, name) and File.exists?(name))
@@ -40,6 +40,7 @@ module WorkflowRESTHelpers
40
40
 
41
41
  def execution_type(workflow, task)
42
42
  export = type_of_export(workflow, task)
43
+ return :sync if export == :exec and format == :html
43
44
  return export if export == :exec or cache_type.nil?
44
45
  return cache_type if cache_type
45
46
  end
@@ -0,0 +1,14 @@
1
+ - if Hash === matches and matches.keys.length == 2 and matches.values.select{|v| v.any?}.length > 2
2
+ %h3 Parents
3
+ = table do
4
+ - matches = matches[:parents]
5
+ - matches.tsv
6
+
7
+ %h3 Children
8
+ = table do
9
+ - matches = matches[:children]
10
+ - matches.tsv
11
+ - else
12
+ = table do
13
+ - matches = matches.values.sort{|v| v.length}.last if Hash === matches
14
+ - matches.tsv
@@ -0,0 +1,7 @@
1
+ = table do
2
+ - fields = subset.info_fields
3
+ - type = [subset.source_type, subset.target_type] * "~"
4
+ - tsv = TSV.setup({}, :key_field => type, :fields => fields, :type => :list, :namespace => subset.namespace)
5
+ - subset.each do |match|
6
+ - tsv[match] = match.info.values_at *fields
7
+ - tsv
@@ -59,7 +59,6 @@ function parse_parameters(params){
59
59
  function require_js(url, success){
60
60
  var async = false;
61
61
  var cache = production;
62
- console.log("Require js: " + url)
63
62
  if (undefined === success){
64
63
  async = false;
65
64
  }else{
@@ -68,9 +67,6 @@ function require_js(url, success){
68
67
 
69
68
  url = url.replace('/js/', '/js-find/')
70
69
  $.ajax({url: url, cache:cache, dataType:'script', async: async, success: success} ).fail(function(jqxhr, settings, exception){
71
- console.log('Exception loading: ' + url)
72
- console.log(exception)
73
- console.log(jqxhr)
74
70
  })
75
71
  }
76
72
 
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.24
4
+ version: 1.3.25
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-07-15 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -277,6 +277,8 @@ files:
277
277
  - share/views/job_result/tsv.haml
278
278
  - share/views/job_result/yaml.haml
279
279
  - share/views/knowledge_base_partials/association.haml
280
+ - share/views/knowledge_base_partials/matches.haml
281
+ - share/views/knowledge_base_partials/subset.haml
280
282
  - share/views/layout.haml
281
283
  - share/views/layout/top_menu.haml
282
284
  - share/views/layout/top_menu/favourites.haml