lib/upperkut/util.rb in upperkut-1.0.0.rc vs lib/upperkut/util.rb in upperkut-1.0.2
- old
+ new
@@ -2,11 +2,11 @@
require 'upperkut/item'
module Upperkut
module Util
def to_underscore(object)
- klass_name = object
+ klass_name = object.dup
klass_name.gsub!(/::/, '_')
klass_name.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
klass_name.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
klass_name.tr!('-', '_')
klass_name.downcase!
@@ -25,16 +25,32 @@
items = [items] unless items.is_a?(Array)
items.map do |item|
next item if item.is_a?(Item)
- Item.new(body: item)
+ Item.new(id: SecureRandom.uuid, body: item)
end
end
+ def encode_json_items(items)
+ items = [items] unless items.is_a?(Array)
+
+ items.map do |item|
+ JSON.generate(
+ 'id' => item.id,
+ 'body' => item.body,
+ 'enqueued_at' => item.enqueued_at
+ )
+ end
+ end
+
def decode_json_items(items)
- items.each_with_object([]) do |item, memo|
- memo << Item.from_json(item) if item
+ items.each_with_object([]) do |item_json, memo|
+ next unless item_json
+
+ hash = JSON.parse(item_json)
+ id, body, enqueued_at = hash.values_at('id', 'body', 'enqueued_at')
+ memo << Item.new(id: id, body: body, enqueued_at: enqueued_at)
end
end
def retry_block(retries_limit = 3, base_sleep = 2)
retries = 0