Не уверен, правильно ли я понял ваш вопрос, но для вашего собственного решения по преобразованию ha sh вы можете использовать Object Marshaling
в Ruby для сериализации любого объекта (например, Ha sh). Это то, что делают некоторые библиотеки, такие как Sidekiq
, и хранят сериализованный объект, например, в Redis
.
class Demo
def initialize(name)
@name = name
end
def to_s
p "Serializing #{@name}"
end
end
obj = Demo.new("something...")
obj_d = Marshal.dump(o)
obj2 = Marshal.load(obj_d)
obj2.to_s
И вы всегда можете использовать eval
для динамической оценки выражения: eval("obj2.to_s")
.