module Estore::Commands::Command
Attributes
uuid[R]
Public Class Methods
included(base)
click to toggle source
# File lib/estore/commands/base.rb, line 6 def self.included(base) base.extend ClassMethods base.singleton_class.class_eval { attr_accessor :handlers } base.handlers = {} end
new(connection)
click to toggle source
# File lib/estore/commands/base.rb, line 12 def initialize(connection) @connection = connection @uuid = SecureRandom.uuid end
Public Instance Methods
handle(message)
click to toggle source
# File lib/estore/commands/base.rb, line 37 def handle(message) handler = self.class.handlers[message.class] if handler send(handler, message) unless handler == :ignore else $stderr.puts "#{message.class} arrived but not handled by "\ "command #{self.class}" end end
promise()
click to toggle source
# File lib/estore/commands/base.rb, line 33 def promise @promise ||= Promise.new(@uuid) end
register!()
click to toggle source
# File lib/estore/commands/base.rb, line 17 def register! @connection.register(self) end
reject!(error)
click to toggle source
# File lib/estore/commands/base.rb, line 25 def reject!(error) @promise.reject(error) if @promise end
remove!()
click to toggle source
# File lib/estore/commands/base.rb, line 21 def remove! @connection.remove(self) end
write(command, message = nil)
click to toggle source
# File lib/estore/commands/base.rb, line 29 def write(command, message = nil) @connection.write(@uuid, command, message) end