77408de13c243044ffc215787d9b1455126c2ecbTim Reddehaseclass StatusOntologyViewhelper < ViewhelperBase
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase include WrappingRedis
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase STATE = 'processing'
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def processing_ontologies_count
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase processing_ontology_query.size
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def processing_ontology_data
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase @data ||= procure_processing_ontology_data
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase end
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase def procure_processing_ontology_data
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase ov_data = processing_ontology_query.reduce({}) do |data, ov|
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase # usually iri, second part is just for uniqueness
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase key = ov.ontology.iri || "#{ov.ontology.name}#{ov.ontology.path}"
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase data[key] = OpenStruct.new({
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ontology: ov.ontology,
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ontology_version: ov,
ecc1c5f9e6d6c3ec89fe2298ba933a82bca5bfa0Tim Reddehase running_for: view.time_ago_in_words(ov.state_updated_at),
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase processing_iri: nil
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase })
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase data
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase processing_iris.reduce(ov_data) do |data, iri|
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase if data[iri]
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase data[iri].processing_iri = iri
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase else
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase data[iri] = OpenStruct.new({processing_iri: iri})
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase end
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase data
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase end.values
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def any_processing_ontologies?
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase processing_ontology_query.any?
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase def processing_iris
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase redis.smembers ConcurrencyBalancer::REDIS_KEY
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase end
baa1df9159a311a367ffc80b3fb543482e88a7dbTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase private
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def processing_ontology_query
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase OntologyVersion.where(state: STATE).order('state_updated_at ASC')
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehaseend