Sha256: fe5b8c443621c30666f21006363b871e9d35df8f44424d25f319e155135b7863

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

class Object
  # Standard #inspect for any object that doesn't override this method. This
  # method is meant to make an object's type inherently obvious when used in
  # logging methods, etc.
  #
  # @return [String] a string representation of this object
  def inspect_lit
    inspect
  end

  # Instance method for constructing a self-identifying string for any given
  # object or list of objects.
  #
  # @overload identify(*args)
  #   @param args [*] (optional) a list of arguments to identify for this object
  #     or for each object in this collection
  # @overload identify(*args, options)
  #   @param args [*] (optional) (default: :id) a list of arguments to identify
  #     for this object
  #   @param [Hash] options the options for building a customized
  #     self-identifier
  #   @option options [String, nil] :klass object class name override
  #   @option options [Fixnum] :limit maximum number of objects to display from
  #     a collection
  #
  # @return [String] a self-identifying string like `Class[id:1, name:'temp']`
  #
  # @example
  #   OpenStruct.new(a: 1, b: '2', c: :"3").identify(:a, :b, :c)
  #   # => "OpenStruct[a:1, b:\"2\", c::\"3\"]"
  #
  #   1.identify(:to_s) # => "Fixnum[to_s:\"1\"]"
  #   nil.identify      # => "[no objects]"
  #
  #   %w(1 2 3).identify(:to_i, :to_f)
  #   # => "String[to_i:1, to_f:1.0], String[to_i:2, to_f:2.0], String[to_i:3, to_f:3.0]"
  #
  #   (1..10).to_a.identify(:to_f, limit: 2)
  #   # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
  def identify(*args)
    ObjectIdentifier::Identifier.identify(self, *args)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
object_identifier-0.0.6 lib/object_identifier/core_ext/object.rb
object_identifier-0.0.5 lib/object_identifier/core_ext/object.rb