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