Sha256: 31685e70897fcd863f0a6df59fdc98d9785e90dcbbcc3e659aa0c9ac14fb4ad1

Contents?: true

Size: 737 Bytes

Versions: 2

Compression:

Stored size: 737 Bytes

Contents

module Euston
  class Command
    include ActiveModel::Validations

    def initialize body, dispatch_at = nil
      @headers = { :id => Uuid.generate,
                   :type => self.class.to_s.split('::').pop.underscore.to_sym }

      @body = body
      @headers[:dispatch_at] = dispatch_at unless dispatch_at.nil?
    end

    def headers
      @headers.merge :version => version
    end

    def id
      @headers[:id]
    end

    def id= value
      @headers[:id] = value
    end

    def read_attribute_for_validation key
      @body[key]
    end

    def type
      @headers[:type]
    end

    def to_hash
      { :headers => headers, :body => @body }
    end

    def version
      1
    end

    attr_reader :body
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
euston-1.2.2 lib/euston/command.rb
euston-1.2.2-java lib/euston/command.rb