Keeps track of the cassette serializers in a hash-like object.
@private
# File lib/vcr/cassette/serializers.rb, line 11 def initialize @serializers = {} end
Gets the named serializer.
@param name [Symbol] the name of the serializer @return the named serializer @raise [ArgumentError] if there is not a serializer for the given name
# File lib/vcr/cassette/serializers.rb, line 20 def [](name) @serializers.fetch(name) do |_| @serializers[name] = case name when :yaml then YAML when :syck then Syck when :psych then Psych when :json then JSON else raise ArgumentError.new("The requested VCR cassette serializer (#{name.inspect}) is not registered.") end end end
Registers a serializer.
@param name [Symbol] the name of the serializer @param value [#file_extension, serialize, deserialize] the serializer object. It must implement
`file_extension()`, `serialize(Hash)` and `deserialize(String)`.
# File lib/vcr/cassette/serializers.rb, line 37 def []=(name, value) if @serializers.has_key?(name) warn "WARNING: There is already a VCR cassette serializer registered for #{name.inspect}. Overriding it." end @serializers[name] = value end