lib/locabulary.rb in locabulary-0.1.7 vs lib/locabulary.rb in locabulary-0.1.8

- old
+ new

@@ -1,11 +1,11 @@ require 'date' require 'json' # @since 0.1.0 module Locabulary - VERSION='0.1.7'.freeze + VERSION='0.1.8'.freeze DATA_DIRECTORY = File.expand_path("../../data/", __FILE__).freeze class RuntimeError < ::RuntimeError end @@ -50,13 +50,14 @@ def active_items_for(options = {}) predicate_name = options.fetch(:predicate_name) as_of = options.fetch(:as_of) { Date.today } active_cache[predicate_name] ||= begin filename = filename_for_predicate_name(predicate_name: predicate_name) - JSON.parse(File.read(filename)).each_with_object([]) do |item_values, mem| + json = JSON.parse(File.read(filename)) + json.fetch('values').each_with_object([]) do |item_values, mem| activated_on = Date.parse(item_values.fetch('activated_on')) next unless activated_on < as_of - deactivated_on_value = item_values.fetch('deactivated_on') + deactivated_on_value = item_values.fetch('deactivated_on', nil) if deactivated_on_value.nil? mem << Item.new(item_values) else deactivated_on = Date.parse(deactivated_on_value) next unless deactivated_on >= as_of