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