class Grenache::GrapeMessage
Store a single request information
Attributes
_ts[RW]
opts[RW]
payload[RW]
type[RW]
Public Class Methods
new(type, payload, opts={}, &block)
click to toggle source
# File lib/grenache/grape_message.rb, line 7 def initialize(type, payload, opts={}, &block) @payload = payload @type = type @opts = opts @rid = opts[:rid] if opts[:rid] @_ts = Time.now @block = block end
parse(json)
click to toggle source
# File lib/grenache/grape_message.rb, line 16 def self.parse(json) rid,type,payload = Oj.load(json) if payload.nil? payload = type type = 'res' end new(type,payload, {rid:rid}) end
req(type,payload)
click to toggle source
# File lib/grenache/grape_message.rb, line 25 def self.req(type,payload) new(type,payload) end
response_to(req,payload)
click to toggle source
# File lib/grenache/grape_message.rb, line 29 def self.response_to(req,payload) new('res',payload,{rid: req.rid}) end
Public Instance Methods
block_given?()
click to toggle source
# File lib/grenache/grape_message.rb, line 41 def block_given? !!@block end
dump_payload()
click to toggle source
# File lib/grenache/grape_message.rb, line 57 def dump_payload @dump_payload ||= Oj.dump(payload) end
qhash()
click to toggle source
# File lib/grenache/grape_message.rb, line 53 def qhash "#{type}#{dump_payload}" end
request?()
click to toggle source
# File lib/grenache/grape_message.rb, line 33 def request? @type != 'res' end
response?()
click to toggle source
# File lib/grenache/grape_message.rb, line 37 def response? @type == 'res' end
rid()
click to toggle source
# File lib/grenache/grape_message.rb, line 49 def rid @rid ||= SecureRandom.uuid end
to_json()
click to toggle source
# File lib/grenache/grape_message.rb, line 61 def to_json if response? Oj.dump([rid,payload]) else Oj.dump([rid,type,payload]) end end
yield(params={})
click to toggle source
# File lib/grenache/grape_message.rb, line 45 def yield(params={}) @block.call(params) end