Class: Inspectable::Sanitizers::Type

Inherits:
Object
  • Object
show all
Defined in:
lib/inspectable/sanitizers/type.rb

Overview

Excludes and transforms object types.

Instance Method Summary collapse

Constructor Details

#initialize(pattern: "#<%<class>s:%<id>#018x %<body>s>", inspector: INSPECTOR) ⇒ Type

Returns a new instance of Type.



7
8
9
10
11
# File 'lib/inspectable/sanitizers/type.rb', line 7

def initialize pattern: "#<%<class>s:%<id>#018x %<body>s>", inspector: INSPECTOR
  @pattern = pattern
  @inspector = inspector
  freeze
end

Instance Method Details

#call(instance, *excludes, **transformers) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/inspectable/sanitizers/type.rb', line 13

def call instance, *excludes, **transformers
  variables = instance.instance_variables - excludes.map { :"@#{it}" }

  format pattern,
         class: instance.class,
         id: object_id << 1,
         body: exclude_and_transform(instance, variables, transformers).chomp(", ")
end