Class: Inspectable::Builder

Inherits:
Module
  • Object
show all
Defined in:
lib/inspectable/builder.rb

Overview

Provides custom object inspection behavior.

Instance Method Summary collapse

Constructor Details

#initialize(*excludes, container: CONTAINER, **transformers) ⇒ Builder

Returns a new instance of Builder.



6
7
8
9
10
11
12
13
14
15
# File 'lib/inspectable/builder.rb', line 6

def initialize *excludes, container: CONTAINER, **transformers
  super()
  @excludes = excludes
  @container = container
  @transformers = resolve transformers

  validate
  define_inspect
  freeze
end

Instance Method Details

#included(descendant) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/inspectable/builder.rb', line 17

def included descendant
  descendant.define_singleton_method :method_added do |name|
    return super(name) unless name == :instance_variables_to_inspect

    fail NoMethodError, "Defining method :instance_variables_to_inspect is disabled."
  end

  case descendant
    when Class, Struct, Data then super
    else fail TypeError, "Use Class, Struct, or Data."
  end
end