rbbt-rest 1.6.19 → 1.6.20
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 +4 -4
- data/lib/rbbt/rest/entity.rb +7 -19
- data/lib/rbbt/rest/entity/finder.rb +21 -0
- data/lib/rbbt/rest/entity/rest.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5cd34f1db85993bd78544fa98040b17aaf58a64
|
4
|
+
data.tar.gz: d3c0a8fa349101d98e99652ecdb6d774318702e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f16c7d46b03b38fac0d484cc5f09c2edc4da16fde42bd9af1e79536025039a2de49291933d60c09d58864b04636bd3706839e78973001b5ed07261ce8c3089b0
|
7
|
+
data.tar.gz: 9763b5f89fce2f6ed684b76486f5d13febc6d16bc918e9f2ede89592abe5a36eeda5e31f53c1626e8fecc670a42add97c34b0da28ce97285e472b2179fb9ea47
|
data/lib/rbbt/rest/entity.rb
CHANGED
@@ -42,39 +42,27 @@ module Sinatra
|
|
42
42
|
#{{{ Finder
|
43
43
|
|
44
44
|
get '/find' do
|
45
|
+
raise "No finder defined" unless settings.respond_to? :finder and not settings.finder.nil?
|
45
46
|
halt 200 if params[:term].nil? or params[:term].empty?
|
46
|
-
|
47
47
|
term = params[:term]
|
48
|
-
sorted_results = finder_find(term)
|
49
|
-
|
50
|
-
raise "No finder defined" unless settings.respond_to? :finder and not settings.finder.nil?
|
51
48
|
if request.xhr?
|
49
|
+
sorted_results = finder_find(term)
|
52
50
|
content_type "application/json"
|
53
51
|
halt 200, sorted_results.to_json
|
54
52
|
else
|
55
|
-
|
56
|
-
|
57
|
-
redirect to(Entity::REST.entity_url(i[:code], i[:format], i[:namespace]))
|
53
|
+
url = find_entity_url(term)
|
54
|
+
redirect to(url)
|
58
55
|
end
|
59
56
|
end
|
60
57
|
|
61
58
|
post '/find' do
|
62
59
|
term = consume_parameter :term
|
63
|
-
|
64
|
-
|
65
|
-
namespace, format = $2.split(":")
|
66
|
-
format, namespace = namespace, nil if format.nil?
|
67
|
-
|
68
|
-
redirect to(Entity::REST.entity_url(term, format, :organism => namespace))
|
69
|
-
else
|
70
|
-
sorted_results = finder_find(term)
|
71
|
-
i = sorted_results.first
|
72
|
-
halt 404, "Term not recognized: #{ term }" if i.nil?
|
73
|
-
redirect to(Entity::REST.entity_url(i[:code], i[:format], :organism => i[:namespace]))
|
74
|
-
end
|
60
|
+
url = find_entity_url(term)
|
61
|
+
redirect to(url)
|
75
62
|
end
|
76
63
|
|
77
64
|
|
65
|
+
|
78
66
|
#{{{ Entities
|
79
67
|
|
80
68
|
get '/entity/:entity_type/:entity' do
|
@@ -24,7 +24,28 @@ module EntityRESTHelpers
|
|
24
24
|
info[:best] = score[1]
|
25
25
|
end
|
26
26
|
|
27
|
+
info[:format] ||= info[:type]
|
28
|
+
|
27
29
|
info
|
28
30
|
}.sort_by{|i| i[:score] || 0}.reverse
|
29
31
|
end
|
32
|
+
|
33
|
+
def find_entity_url(term)
|
34
|
+
if term =~ /(.*) \[(.*)\]$/
|
35
|
+
term = $1
|
36
|
+
namespace, format = $2.split(":")
|
37
|
+
format, namespace = namespace, nil if format.nil?
|
38
|
+
|
39
|
+
Entity::REST.entity_url(term, format, :organism => namespace)
|
40
|
+
else
|
41
|
+
sorted_results = finder_find(term)
|
42
|
+
organism = sorted_results.select{|r| r[:type] == 'organism' }.first
|
43
|
+
sorted_results = sorted_results.reject{|r| r[:type] == 'organism' }
|
44
|
+
i = sorted_results.first
|
45
|
+
halt 404, "Term not recognized: #{ term }" if i.nil?
|
46
|
+
organism_code = i[:namespace]
|
47
|
+
organism_code = organism[:code] unless organism.nil? or organism[:code].nil?
|
48
|
+
Entity::REST.entity_url(i[:code], i[:format], :organism => organism_code)
|
49
|
+
end
|
50
|
+
end
|
30
51
|
end
|
@@ -66,7 +66,7 @@ module Entity
|
|
66
66
|
def self.entity_url(entity, type = nil, params = nil)
|
67
67
|
if type.nil?
|
68
68
|
type = entity.annotation_types.last.to_s
|
69
|
-
type << ":" << entity.format if entity.respond_to? :format
|
69
|
+
type << ":" << entity.format if entity.respond_to? :format and entity.format
|
70
70
|
end
|
71
71
|
|
72
72
|
if params.nil?
|
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.6.
|
4
|
+
version: 1.6.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|