class Soda::Client
Constants
- DEFAULTS
Public Class Methods
middleware()
click to toggle source
# File lib/soda/client.rb, line 13 def middleware Soda.client_middleware end
push(*args)
click to toggle source
# File lib/soda/client.rb, line 9 def push(*args) new.push(*args) end
Public Instance Methods
push(item)
click to toggle source
# File lib/soda/client.rb, line 18 def push(item) copy = normalize!(item) self.class.middleware.use(item["klass"], copy, copy["queue"]) do jid = copy["id"] jid.tap do queue = Soda.queue(copy["queue"]) queue.push_in(copy["delay"], Soda.dump_json(copy)) end end end
Private Instance Methods
normalize!(item)
click to toggle source
# File lib/soda/client.rb, line 32 def normalize!(item) item = DEFAULTS.merge(item) item.tap do item.keys.each do |key| item.merge!(String(key) => item.delete(key)) end id = SecureRandom.base64(10) klass = item["klass"].to_s delay = item["delay"].to_i queue = item["queue"] || Soda.default_queue!.name # TODO: add validation # item.merge!( "id" => id, "klass" => klass, "delay" => delay, "queue" => queue, ) end end