Skip to content

Commit

Permalink
Restore tolerant cache loading
Browse files Browse the repository at this point in the history
  • Loading branch information
sorentwo committed Sep 24, 2015
1 parent f6a7240 commit 61c969c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 19 deletions.
20 changes: 12 additions & 8 deletions lib/readthis/serializers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ def reset!
#
# @param [Object] Look up a flag by object
# @return [Number] Corresponding flag for the serializer object
# @raise [UnknownSerializerError] Indicates that a serializer was
# specified, but hasn't been configured for usage.
#
# @example
#
Expand All @@ -88,18 +90,20 @@ def assoc(serializer)
# @param [Number] Flag to look up the serializer object by
# @return [Module] The serializer object
#
# @example
#
# serializers.rassoc(1) #=> Marshal
#
def rassoc(flag)
serializer = inverted[flag]

unless serializer
fail UnknownSerializerError, "'#{flag}' doesn't match any serializers"
end

serializer
inverted[flag]
end

private
# @private
def marshals
serializers.keys
end

# @private
def flags
serializers.values
end
Expand Down
14 changes: 3 additions & 11 deletions spec/readthis/serializers_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@

serializers << CustomSerializer

expect(serializers.serializers.keys).to include(CustomSerializer)
expect(serializers.serializers.values).to eq([1, 2, 3, 4])
expect(serializers.marshals).to include(CustomSerializer)
expect(serializers.flags).to eq([1, 2, 3, 4])
end

it 'increments flags' do
serializers = Readthis::Serializers.new
serializers << CustomSerializer
serializers << AnotherSerializer

expect(serializers.serializers.values).to eq((1..5).to_a)
expect(serializers.flags).to eq((1..5).to_a)
end

it 'prevents more than seven serializers' do
Expand Down Expand Up @@ -53,14 +53,6 @@

expect(serializers.rassoc(1)).to eq(Marshal)
end

it 'raises a helpful error when the flag is unknown' do
serializers = Readthis::Serializers.new

expect do
serializers.rassoc(5)
end.to raise_error(Readthis::UnknownSerializerError)
end
end

describe '#freeze!' do
Expand Down

0 comments on commit 61c969c

Please sign in to comment.