Sha256: c6825943df043166b28c203a344cce2e7d21e6636f364847d6e72b77be8e9ed1
Contents?: true
Size: 1.25 KB
Versions: 8
Compression:
Stored size: 1.25 KB
Contents
require 'qs/message' module Qs class Job < Message PAYLOAD_TYPE = 'job' attr_reader :name, :created_at def initialize(name, options = nil) options ||= {} options[:params] ||= {} validate!(name, options[:params]) @name = name @created_at = options[:created_at] || Time.now super(PAYLOAD_TYPE, options) end def route_name self.name end def inspect reference = '0x0%x' % (self.object_id << 1) "#<#{self.class}:#{reference} " \ "@name=#{self.name.inspect} " \ "@params=#{self.params.inspect} " \ "@created_at=#{self.created_at.inspect}>" end def ==(other) if other.kind_of?(self.class) self.payload_type == other.payload_type && self.name == other.name && self.params == other.params && self.created_at == other.created_at else super end end private def validate!(name, params) problem = if name.to_s.empty? "The job doesn't have a name." elsif !params.kind_of?(::Hash) "The job's params are not valid." end raise(InvalidError, problem) if problem end InvalidError = Class.new(ArgumentError) end end
Version data entries
8 entries across 8 versions & 1 rubygems
Version | Path |
---|---|
qs-0.8.1 | lib/qs/job.rb |
qs-0.8.0 | lib/qs/job.rb |
qs-0.7.1 | lib/qs/job.rb |
qs-0.7.0 | lib/qs/job.rb |
qs-0.6.1 | lib/qs/job.rb |
qs-0.6.0 | lib/qs/job.rb |
qs-0.5.0 | lib/qs/job.rb |
qs-0.4.0 | lib/qs/job.rb |