Код, который вы написали, должен нормально работать, при условии, что оба класса JSON
и YAML
имеют метод класса, называемый serialize
. Но я думаю, что метод, который на самом деле существует, это #dump
.
Итак, вы бы получили:
require 'json'
require 'yaml'
FORMATS = {
:json => JSON,
:yaml => YAML,
}
def serialize(data, format)
FORMATS[format].dump(data)
end
hash = {:a => 2}
puts serialize hash, :json
#=> {"a":2}
puts serialize hash, :yaml
#=> ---
#=> :a: 2