require 'rom' Batman = Struct.new(:secret_name) Transproc.register(:to_batman, proc { |name| Batman.new(name) }) class GothamCityMapper < ROM::Mapper attribute :superhero, type: :batman end m = GothamCityMapper.build puts m.call [{ superhero: 'Bruce Wayne' }] # => [{:superhero=>#}]