Class: ObjectInspector::Inspector
- Inherits:
-
Object
- Object
- ObjectInspector::Inspector
- Defined in:
- lib/object_inspector/inspector.rb
Overview
ObjectInspector::Inspector organizes inspection of the associated #object via the passed in options and via a BaseFormatter instance.
Instance Attribute Summary collapse
-
#formatter ⇒ ObjectInspector::BaseFormatter
writeonly
(ObjectInspector.configuration.formatter) the formatter object type to use for formatting the inspect String.
-
#formatter_klass ⇒ Object
readonly
Returns the value of attribute formatter_klass.
-
#kargs ⇒ Hash
options to be sent to #object via the ObjectInterrogator when calling the ‘inspect_*` methods.
-
#object ⇒ Object
the object being inspected.
-
#scope ⇒ Symbol
Object inspection type.
Class Method Summary collapse
-
.inspect(object, **kargs) ⇒ String
Shortcuts the instantiation -> #to_s flow that would normally be required to use ObjectInspector::Inspector.
Instance Method Summary collapse
-
#flags ⇒ String, NilClass
Boolean flags/states applicable to #object.
-
#identification ⇒ String
Core object identification details, such as the #object class name and any core-level attributes.
-
#info ⇒ String, NilClass
Informational details applicable to #object.
-
#initialize(object, scope: :self, formatter: ObjectInspector.configuration.formatter_class, **kargs) ⇒ Inspector
constructor
A new instance of Inspector.
-
#name ⇒ String, NilClass
The generally human-friendly unique identifier for #object.
-
#to_s ⇒ String
Generate the formatted inspect String.
-
#wrapped_object_inspection ⇒ String, NilClass
Generate the inspect String for the wrapped object, if present.
Constructor Details
#initialize(object, scope: :self, formatter: ObjectInspector.configuration.formatter_class, **kargs) ⇒ Inspector
Returns a new instance of Inspector.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/object_inspector/inspector.rb', line 29 def initialize( object, scope: :self, formatter: ObjectInspector.configuration.formatter_class, **kargs) @object = object @scope = Conversions.Scope(scope) @formatter_klass = formatter @kargs = kargs end |
Instance Attribute Details
#formatter=(value) ⇒ ObjectInspector::BaseFormatter
(ObjectInspector.configuration.formatter) the formatter object type to use for formatting the inspect String
15 16 17 |
# File 'lib/object_inspector/inspector.rb', line 15 def formatter=(value) @formatter = value end |
#formatter_klass ⇒ Object (readonly)
Returns the value of attribute formatter_klass.
16 17 18 |
# File 'lib/object_inspector/inspector.rb', line 16 def formatter_klass @formatter_klass end |
#kargs ⇒ Hash
options to be sent to #object via the ObjectInterrogator when calling the ‘inspect_*` methods
15 16 17 |
# File 'lib/object_inspector/inspector.rb', line 15 def kargs @kargs end |
#object ⇒ Object
the object being inspected
15 16 17 |
# File 'lib/object_inspector/inspector.rb', line 15 def object @object end |
#scope ⇒ Symbol
Object inspection type. For example: :self (default) – Means: Only interrogate self. Don’t visit neighbors. <custom> – Anything else that makes sense for #object to key on
15 16 17 |
# File 'lib/object_inspector/inspector.rb', line 15 def scope @scope end |
Class Method Details
.inspect(object, **kargs) ⇒ String
Shortcuts the instantiation -> #to_s flow that would normally be required to use ObjectInspector::Inspector.
25 26 27 |
# File 'lib/object_inspector/inspector.rb', line 25 def self.inspect(object, **kargs) new(object, **kargs).to_s end |
Instance Method Details
#flags ⇒ String, NilClass
Boolean flags/states applicable to #object.
72 73 74 |
# File 'lib/object_inspector/inspector.rb', line 72 def flags value(key: :flags) end |
#identification ⇒ String
Core object identification details, such as the #object class name and any core-level attributes.
64 65 66 |
# File 'lib/object_inspector/inspector.rb', line 64 def identification (value(key: :identification) || object.class).to_s end |
#info ⇒ String, NilClass
Informational details applicable to #object.
80 81 82 |
# File 'lib/object_inspector/inspector.rb', line 80 def info value(key: :info) end |
#name ⇒ String, NilClass
The generally human-friendly unique identifier for #object.
88 89 90 91 92 |
# File 'lib/object_inspector/inspector.rb', line 88 def name value(key: :name) || interrogate_object(method_name: :display_name, kargs: object_method_keyword_arguments) end |
#to_s ⇒ String
Generate the formatted inspect String.
43 44 45 |
# File 'lib/object_inspector/inspector.rb', line 43 def to_s formatter.call end |
#wrapped_object_inspection ⇒ String, NilClass
Generate the inspect String for the wrapped object, if present.
51 52 53 54 55 56 57 58 |
# File 'lib/object_inspector/inspector.rb', line 51 def wrapped_object_inspection if object_is_a_wrapper? self.class.inspect( extract_wrapped_object, scope: scope, formatter: formatter_klass) end end |