method

serialize_argument

serialize_argument(argument)
private

No documentation available.

# File activejob/lib/active_job/arguments.rb, line 71
      def serialize_argument(argument)
        case argument
        when nil, true, false, Integer, Float # Types that can hardly be subclassed
          argument
        when String
          if argument.class == String
            argument
          else
            begin
              Serializers.serialize(argument)
            rescue SerializationError
              argument
            end
          end
        when GlobalID::Identification
          convert_to_global_id_hash(argument)
        when Array
          argument.map { |arg| serialize_argument(arg) }
        when ActiveSupport::HashWithIndifferentAccess
          serialize_indifferent_hash(argument)
        when Hash
          symbol_keys = argument.each_key.grep(Symbol).map!(&:to_s)
          aj_hash_key = if Hash.ruby2_keywords_hash?(argument)
            RUBY2_KEYWORDS_KEY
          else
            SYMBOL_KEYS_KEY
          end
          result = serialize_hash(argument)
          result[aj_hash_key] = symbol_keys
          result
        else
          if argument.respond_to?(:permitted?) && argument.respond_to?(:to_h)
            serialize_indifferent_hash(argument.to_h)
          else
            Serializers.serialize(argument)
          end
        end
      end