Sha256: a46e26574436549137dc643d4498ead476459cbe513ee2980effa2c4cc140413
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
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 match = /^__(.*)/.match(key.to_s) if match.nil? @body[key] else headers[match[1].to_sym] end end def type @headers[:type] end def to_hash { :headers => headers, :body => @body } end def version 1 end attr_reader :body validates :__id, :presence => true, :format => { :with => /^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$/ } validates :__type, :presence => true validates :__version, :presence => true, :numericality => { :greater_than => 0, :only_integer => true } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
euston-1.2.3 | lib/euston/command.rb |
euston-1.2.3-java | lib/euston/command.rb |