module ActivejobArguments::ClassAndMethodArguments

Public Instance Methods

deserialize_argument(argument) click to toggle source
Calls superclass method
# File lib/activejob_arguments.rb, line 33
def deserialize_argument(argument)
  if argument.is_a? Hash
    return super unless argument['_aj_type'].present?
    case argument['_aj_type']
    when 'Class'
      argument['value'].constantize
    when 'Symbol'
      argument['value'].to_sym
    when 'Time'
      DateTime.iso8601(argument['value'])
    when 'DateTime'
      DateTime.iso8601(argument['value'])
    else
      super
    end
  else
    super
  end
end
serialize_argument(argument) click to toggle source
Calls superclass method
# File lib/activejob_arguments.rb, line 5
def serialize_argument(argument)
  case argument
  when Class, Module
    {
      '_aj_type' => 'Class',
      'value' => argument.name
    }
  when Symbol
    {
      '_aj_type' => 'Symbol',
      'value' => argument.to_s
    }
  when Time # https://github.com/rails/rails/blob/11581afc01927565d57dd0e0156e983f92f8c2e0/activejob/lib/active_job/serializers/time_serializer.rb
    {
      '_aj_type' => 'Time',
      'value' => argument.iso8601(6)
    }
  when DateTime # https://github.com/rails/rails/blob/11581afc01927565d57dd0e0156e983f92f8c2e0/activejob/lib/active_job/serializers/date_time_serializer.rb
    {
      '_aj_type' => 'DateTime',
      'value' => argument.iso8601(6)
    }
  else
    super
  end
end