rbbt-rest 1.6.19 → 1.6.20

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: 7d08766d3d4b92f104d088d234b6e14b3520dd03
4
- data.tar.gz: 3423b44e0e90dbab4c4b08123b29572197694a45
3
+ metadata.gz: d5cd34f1db85993bd78544fa98040b17aaf58a64
4
+ data.tar.gz: d3c0a8fa349101d98e99652ecdb6d774318702e1
5
5
  SHA512:
6
- metadata.gz: eafefedf6cfaced11c2d9de90f12d85d49a0135317d19374883b544adb8249bb82e19dfb661062ef06113f90e50928fb811b00d81d01cb782bc4819cdf4c165a
7
- data.tar.gz: db75b68e8318690ac638c0f58f16ae690f10bb5504e0750db667591f4051314ffec3b8a45725da5f24948c33aae09d9169d2a3dc23c9494753be4a5f6f8ebf68
6
+ metadata.gz: f16c7d46b03b38fac0d484cc5f09c2edc4da16fde42bd9af1e79536025039a2de49291933d60c09d58864b04636bd3706839e78973001b5ed07261ce8c3089b0
7
+ data.tar.gz: 9763b5f89fce2f6ed684b76486f5d13febc6d16bc918e9f2ede89592abe5a36eeda5e31f53c1626e8fecc670a42add97c34b0da28ce97285e472b2179fb9ea47
@@ -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
- i = sorted_results.first
56
- raise "Term not recognized: #{ term }" if i.nil?
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
- if term =~ /(.*) \[(.*)\]$/
64
- term = $1
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.19
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-14 00:00:00.000000000 Z
11
+ date: 2015-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake