diff --git a/lib/ontologies_api_client/analytics.rb b/lib/ontologies_api_client/analytics.rb index cbb85ac..9eeb60d 100644 --- a/lib/ontologies_api_client/analytics.rb +++ b/lib/ontologies_api_client/analytics.rb @@ -1,25 +1,30 @@ module LinkedData::Client class Analytics HTTP = LinkedData::Client::HTTP + LOGGER = Logger.new($stdout) attr_accessor :onts, :date - def self.all(params = {}) + def self.all(_params = {}) get(:analytics) end def self.last_month - data = self.new + data = new data.date = last_month = DateTime.now - 1.month year_num = last_month.year month_num = last_month.month - analytics = get(:analytics, {year: year_num, month: month_num}).to_h + analytics = get(:analytics, { year: year_num, month: month_num }).to_h analytics.delete(:links) analytics.delete(:context) onts = [] - analytics.keys.each do |ont| - views = analytics[ont][:"#{year_num}"][:"#{month_num}"] - onts << {ont: ont, views: views} + analytics.each_key do |ont| + views = analytics.dig(ont, :"#{year_num}", :"#{month_num}") + if views.nil? + LOGGER.debug("Analytics data missing for ontology: #{ont}, year: #{year_num}, month: #{month_num}") + views = 0 + end + onts << { ont: ont, views: views } end data.onts = onts data @@ -29,9 +34,8 @@ def self.last_month def self.get(path, params = {}) path = path.to_s - path = "/"+path unless path.start_with?("/") + path = "/#{path}" unless path.start_with?('/') HTTP.get(path, params) end - end -end \ No newline at end of file +end diff --git a/test/models/test_class.rb b/test/models/test_class.rb index 5b597df..a763b1d 100644 --- a/test/models/test_class.rb +++ b/test/models/test_class.rb @@ -20,6 +20,8 @@ def test_find # Test PURL generation for a class in an OWL format ontology def test_purl_owl + skip 'Disable until #41 is fixed: https://github.com/ncbo/ontologies_api_ruby_client/issues/41' + cls = LinkedData::Client::Models::Class.find( 'http://bioontology.org/ontologies/Activity.owl#Activity', 'https://data.bioontology.org/ontologies/BRO'