Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
messaging / lib / messaging / message / transformer.rb
Size: Mime:
module Messaging
  module Message
    module Transformer
      def self.event_data
        EventData
      end

      def self.raw_data(message)
        message
      end

      def self.instance(event_data_data, cls)
        cls.build(event_data_data[:data], event_data_data[:metadata])
      end

      module EventData
        def self.write(message)
          event_data = EventSource::EventData::Write.build

          event_data.type = message.message_type

          event_data.data = message.to_h

          metadata = message.metadata.to_h
          metadata.delete_if { |k, v| v.nil? || k == :source_event_stream_name || k == :source_event_position}

          event_data.metadata = metadata

          event_data
        end

        def self.read(event_data)
          data = event_data.to_h

          unless data.has_key?(:metadata)
            data[:metadata] = {}
          end

          metadata = data[:metadata]

          metadata[:source]

          metadata[:source_event_stream_name] = data[:stream_name]
          metadata[:source_event_position] = data[:position]

          metadata[:global_position] = data[:global_position]
          metadata[:time] = data[:time]

          data
        end
      end
    end
  end
end