Module: Paraspec::MsgpackHelpers
- Included in:
- MsgpackClient, MsgpackServer
- Defined in:
- lib/paraspec/msgpack_helpers.rb
Instance Method Summary collapse
Instance Method Details
#packer(io) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/paraspec/msgpack_helpers.rb', line 6 def packer(io) pk = MessagePack::Packer.new(io) pk.register_type(1, Time) do |time| time.to_s end pk.register_type(2, RSpec::Core::Example::ExecutionResult) do |er| serialized = {} %w(started_at finished_at run_time status).each do |field| serialized[field] = er.send(field) end %w(exception pending_exception).each do |field| serialized[field] = Marshal.dump(er.send(field)) end Marshal.dump(serialized) end pk end |
#unpacker(io) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/paraspec/msgpack_helpers.rb', line 24 def unpacker(io) uk = MessagePack::Unpacker.new(io) uk.register_type(1) do |serialized| Time.parse(serialized) end uk.register_type(2) do |serialized| serialized = Marshal.load(serialized) er = RSpec::Core::Example::ExecutionResult.new serialized.each do |k, v| if k == 'status' v = v.to_sym end if %w(exception pending_exception).include?(k) v = Marshal.load(v) end er.send("#{k}=", v) end er end uk end |