draper/lib/draper/compatibility/global_id.rb

23 lines
971 B
Ruby

module Draper
module Compatibility
# [Active Job](http://edgeguides.rubyonrails.org/active_job_basics.html) allows you to pass
# ActiveRecord objects to background tasks directly and performs the necessary serialization
# and deserialization. In order to do this, arguments to a background job must implement
# [Global ID](https://github.com/rails/globalid).
#
# This compatibility patch implements Global ID for decorated objects by delegating to the object
# that is decorated. This means you can pass decorated objects to background jobs, but
# the object won't be decorated when it is deserialized. This patch is meant as an intermediate
# fix until we can find a way to deserialize the decorated object correctly.
module GlobalID
extend ActiveSupport::Concern
included do
include ::GlobalID::Identification
delegate :to_global_id, :to_signed_global_id, to: :object
end
end
end
end