Sha256: 725f0486613a1667ef11638370aa649cb039ee1dac1b8c0af754be809cb5ebe3

Contents?: true

Size: 1.43 KB

Versions: 21

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

module Mongoid

  # Contains the bahvior around inspecting documents via inspect.
  #
  # @since 4.0.0
  module Inspectable

    # Returns the class name plus its attributes. If using dynamic fields will
    # include those as well.
    #
    # @example Inspect the document.
    #   person.inspect
    #
    # @return [ String ] A nice pretty string to look at.
    #
    # @since 1.0.0
    def inspect
      inspection = []
      inspection.concat(inspect_fields).concat(inspect_dynamic_fields)
      "#<#{self.class.name} _id: #{id}, #{inspection * ', '}>"
    end

    private

    # Get an array of inspected fields for the document.
    #
    # @api private
    #
    # @example Inspect the defined fields.
    #   document.inspect_fields
    #
    # @return [ String ] An array of pretty printed field values.
    #
    # @since 1.0.0
    def inspect_fields
      fields.map do |name, field|
        unless name == "_id"
          as = field.options[:as]
          "#{name}#{as ? "(#{as})" : nil}: #{@attributes[name].inspect}"
        end
      end.compact
    end

    # Get an array of inspected dynamic fields for the document.
    #
    # @api private
    #
    # @example Inspect the dynamic fields.
    #   document.inspect_dynamic_fields
    #
    # @return [ String ] An array of pretty printed dynamic field values.
    #
    # @since 1.0.0
    def inspect_dynamic_fields
      []
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
mongoid-7.1.11 lib/mongoid/inspectable.rb
mongoid-7.2.6 lib/mongoid/inspectable.rb
mongoid-7.2.5 lib/mongoid/inspectable.rb
mongoid-7.1.10 lib/mongoid/inspectable.rb
mongoid-7.1.9 lib/mongoid/inspectable.rb
mongoid-7.2.4 lib/mongoid/inspectable.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/lib/mongoid/inspectable.rb
mongoid-7.2.3 lib/mongoid/inspectable.rb
mongoid-7.1.8 lib/mongoid/inspectable.rb
mongoid-7.2.2 lib/mongoid/inspectable.rb
mongoid-7.2.1 lib/mongoid/inspectable.rb
mongoid-7.1.7 lib/mongoid/inspectable.rb
mongoid-7.2.0 lib/mongoid/inspectable.rb
mongoid-7.1.6 lib/mongoid/inspectable.rb
mongoid-7.1.5 lib/mongoid/inspectable.rb
mongoid-7.2.0.rc1 lib/mongoid/inspectable.rb
mongoid-7.1.4 lib/mongoid/inspectable.rb
mongoid-7.1.2 lib/mongoid/inspectable.rb
mongoid-7.1.1 lib/mongoid/inspectable.rb
mongoid-7.1.0 lib/mongoid/inspectable.rb