class VCR::Cassette::Serializers
Keeps track of the cassette serializers in a hash-like object.
Public Class Methods
new()
click to toggle source
@private
# File lib/vcr/cassette/serializers.rb, line 11 def initialize @serializers = {} end
Public Instance Methods
[](name)
click to toggle source
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
[]=(name, value)
click to toggle source
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