Sha256: 0ecc6e6dc582285dc21438c4e6c2a62dd70a09d39804045c6fc7b74555c95862

Contents?: true

Size: 1.5 KB

Versions: 4

Compression:

Stored size: 1.5 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

4 entries across 4 versions & 1 rubygems

Version Path
object_identifier-0.0.4 lib/object_identifier/core_ext/object.rb
object_identifier-0.0.3 lib/object_identifier/core_ext/object.rb
object_identifier-0.0.2 lib/object_identifier/core_ext/object.rb
object_identifier-0.0.1 lib/object_identifier/core_ext/object.rb