Module: BELParser::Resource
- Defined in:
- lib/bel_parser/resource.rb,
lib/bel_parser/resource/value.rb,
lib/bel_parser/resource/reader.rb,
lib/bel_parser/resource/concept.rb,
lib/bel_parser/resource/dataset.rb,
lib/bel_parser/resource/lru_cache.rb,
lib/bel_parser/resource/lru_reader.rb,
lib/bel_parser/resource/eager_reader.rb,
lib/bel_parser/resource/file_resource.rb,
lib/bel_parser/resource/sparql_reader.rb,
lib/bel_parser/resource/concept_scheme.rb,
lib/bel_parser/resource/jena_tdb_reader.rb,
lib/bel_parser/resource/eager_sparql_reader.rb,
lib/bel_parser/resource/file_resource_value.rb,
lib/bel_parser/resource/resource_url_reader.rb
Defined Under Namespace
Modules: Dataset, EagerReader, LRUReader, Reader, Value
Classes: Concept, ConceptScheme, EagerSPARQLReader, FileResource, FileResourceValue, JenaTDBReader, LRUCache, ResourceURLReader, SPARQLReader
Constant Summary
collapse
- DEFAULT_SPARQL_ENDPOINT =
'http://resources.openbel.org/sparql'
Class Method Summary
collapse
Class Method Details
.default_uri_reader ⇒ Object
20
21
22
23
24
|
# File 'lib/bel_parser/resource.rb', line 20
def self.default_uri_reader
READER_LOCK.synchronize do
@default_uri_reader
end
end
|
.default_uri_reader=(uri_reader) ⇒ Object
26
27
28
29
30
|
# File 'lib/bel_parser/resource.rb', line 26
def self.default_uri_reader=(uri_reader)
READER_LOCK.synchronize do
@default_uri_reader = uri_reader
end
end
|
.default_url_reader ⇒ Object
32
33
34
35
36
|
# File 'lib/bel_parser/resource.rb', line 32
def self.default_url_reader
READER_LOCK.synchronize do
@default_url_reader
end
end
|
.default_url_reader=(url_reader) ⇒ Object
38
39
40
41
42
|
# File 'lib/bel_parser/resource.rb', line 38
def self.default_url_reader=(url_reader)
READER_LOCK.synchronize do
@default_url_reader = url_reader
end
end
|
.resolve_uri(resource_url) ⇒ String
Resolves the URI String from the annotation or namespace resource.
The resource must contain a _URIString=…_ property.
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/bel_parser/resource.rb', line 50
def self.resolve_uri(resource_url)
resource_url = resource_url.to_s
RESOLVE_URI_LOCK.synchronize do
@uri_hash ||= {}
return @uri_hash[resource_url] if @uri_hash.key?(resource_url)
end
uri = URI(resource_url)
request = Net::HTTP::Get.new(uri)
request['Range'] = 'bytes=0-5000'
resource_uri = nil
http = Net::HTTP.new(uri.hostname, uri.port)
http.request(request) do |response|
response.read_body do |chunk|
uristring = chunk.lines.detect { |l| l =~ URISTRING_PATTERN }
if uristring
resource_uri = uristring.match(URISTRING_PATTERN)[1]
break
end
end
end
RESOLVE_URI_LOCK.synchronize do
@uri_hash ||= {}
@uri_hash[resource_url] = resource_uri
end
resource_uri
end
|