Module: BELParser::Resource::LRUReader

Included in:
JenaTDBReader, SPARQLReader
Defined in:
lib/bel_parser/resource/lru_reader.rb

Instance Method Summary collapse

Instance Method Details

#retrieve_resource(resource_identifier) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/bel_parser/resource/lru_reader.rb', line 10

def retrieve_resource(resource_identifier)
  @resources ||= Hash.new { |hash, key| hash[key] = {} }
  cached_dataset = @resources[resource_identifier][:dataset]
  return cached_dataset if cached_dataset

  resolved_dataset = super
  @resources[resource_identifier][:dataset] = resolved_dataset
  @resources[resource_identifier][:values]  = LRUCache.new(LRU_MAX_SIZE)
  resolved_dataset
end

#retrieve_value_from_resource(resource_identifier, value) ⇒ Object



21
22
23
24
25
26
# File 'lib/bel_parser/resource/lru_reader.rb', line 21

def retrieve_value_from_resource(resource_identifier, value)
  retrieve_resource(resource_identifier)
  @resources[resource_identifier][:values].getset(value) {
    super
  }
end

#retrieve_values_from_resource(resource_identifier) ⇒ Object



28
29
30
31
# File 'lib/bel_parser/resource/lru_reader.rb', line 28

def retrieve_values_from_resource(resource_identifier)
  retrieve_resource(resource_identifier)
  super
end