Sha256: 2fcac59ce8a14ecd9944edaa70961fb2ecc634a292056cde643aa109062b4358
Contents?: true
Size: 1.74 KB
Versions: 2
Compression:
Stored size: 1.74 KB
Contents
class Card class Cache # population-related class methods for Card::Cache module Populate def populate_ids ids # use ids to look up names results = Lexicon.cache.read_multi(ids.map(&:to_s)).values names = [] pairs = [] results.each do |result| result.is_a?(String) ? (names << result) : (pairs << result) end if pairs.any? populate_ids pairs.flatten names += pairs.map(&:cardname) end # use keys to look up populate_names names end def populate_names names keys = names.map { |n| n.to_name.key } Card.cache.read_multi keys end def populate_fields list, *fields name_arrays = list.each_with_object([]) do |item, arrays| fields.flatten.each do |field| arrays << [item, field] end end populate_names name_arrays end private def populate_temp_cache return unless shared_cache populate_ids Codename.ids # Codename.process_codenames if result.blank? Card.cache.read_multi Set.basket[:cache_seed_strings] populate_names Set.basket[:cache_seed_names] end # for testing, stash rules in variable and use that to re-seed cache def seed_from_stash return unless Cardio.config.seed_cache_from_stash stash_to_cache("RULES") { Card::Rule.rule_cache } stash_to_cache("READRULES") { Card::Rule.read_rule_cache } stash_to_cache("PREFERENCES") { Card::Rule.preference_cache } end def stash_to_cache variable @stash ||= {} value = @stash[variable] ||= yield Card.cache.temp.write variable, value.clone end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
card-1.108.1 | lib/card/cache/populate.rb |
card-1.108.0 | lib/card/cache/populate.rb |