Sha256: 8dfff5683e5696f6504a266e85c6d6b9ca6c01266909e5f4350e87ff3c0764a5
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
require 'perforated' describe Perforated::Cache do after { Perforated.cache.clear } Language = Struct.new(:name) do def as_json { name: name } end def to_json as_json.to_json end def cache_key ['Language', name] end end describe '#as_json' do it 'constructs an automatically cached serialized' do ruby = Language.new('Ruby') elixir = Language.new('Elixir') array = [ruby, elixir] cache = Perforated::Cache.new(array) cache.as_json.should == [{ name: 'Ruby' }, { name: 'Elixir' }] Perforated.cache.read('Language/Ruby/as-json').should == ruby.as_json Perforated.cache.read('Language/Elixir/as-json').should == elixir.as_json end it 'does not overwrite existing key values' do erlang = Language.new('Erlang') Perforated.cache.write('Language/Erlang/as-json', { name: 'Elixir' }) Perforated::Cache.new([erlang]).as_json Perforated.cache.read('Language/Erlang/as-json').should == { name: 'Elixir' } end end describe '#to_json' do it 'constructs a stringified json array of underlying values' do cache = Perforated::Cache.new([Language.new('Ruby'), Language.new('Elixir')]) cache.to_json.should == %([{"name":"Ruby"},{"name":"Elixir"}]) Perforated.cache.exist?('Language/Ruby/to-json').should be_true Perforated.cache.exist?('Language/Elixir/to-json').should be_true end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
perforated-0.6.0 | spec/perforated/cache_spec.rb |
perforated-0.5.0 | spec/perforated/cache_spec.rb |