InWork/queue_dispatcher

View on GitHub
lib/queue_dispatcher/serialization/active_record.rb

Summary

Maintainability
A
25 mins
Test Coverage
if defined?(ActiveRecord)
  class ActiveRecord::Base
    yaml_as "tag:ruby.yaml.org,2002:ActiveRecord"

    def self.yaml_new(klass, tag, val)
      if ActiveRecord::VERSION::MAJOR == 3
        klass.unscoped.find(val['attributes'][klass.primary_key])
      else # Rails 2
        klass.with_exclusive_scope { klass.find(val['attributes'][klass.primary_key]) }
      end
    rescue ActiveRecord::RecordNotFound
      #raise QueueDispatcher::DeserializationError, "ActiveRecord::RecordNotFound, class: #{klass} , primary key: #{val['attributes'][klass.primary_key]} "
      '----- QueueDispatcher::DeserializationError -----'
    end

    def to_yaml_properties
      ['@attributes']
    end
  end
end