Module: Trailblazer::Developer::Trace::Inspector
- Defined in:
- lib/trailblazer/developer/trace/inspector.rb
Overview
This module does the inspection of given ‘ctx` with deep traversal. It only gets called when focusing is going on (i.e. focus_on API).
Class Method Summary collapse
-
.activerecord_relation_inspector(value) ⇒ Object
To avoid additional query that AR::Relation#inspect makes, we’re calling AR::Relation#to_sql to get plain SQL string instead.
- .array_inspector(value, default_inspector:) ⇒ Object
- .call(value, default_inspector: method(:default_inspector)) ⇒ Object
- .default_inspector(value) ⇒ Object
- .hash_inspector(value, default_inspector:) ⇒ Object
Class Method Details
.activerecord_relation_inspector(value) ⇒ Object
To avoid additional query that AR::Relation#inspect makes, we’re calling AR::Relation#to_sql to get plain SQL string instead.
33 34 35 |
# File 'lib/trailblazer/developer/trace/inspector.rb', line 33 def activerecord_relation_inspector(value) { query: value.to_sql } end |
.array_inspector(value, default_inspector:) ⇒ Object
25 26 27 28 29 |
# File 'lib/trailblazer/developer/trace/inspector.rb', line 25 def array_inspector(value, default_inspector:) value.collect do |nested_value| call(nested_value, default_inspector: default_inspector) end end |
.call(value, default_inspector: method(:default_inspector)) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/trailblazer/developer/trace/inspector.rb', line 10 def call(value, default_inspector: method(:default_inspector), **) return hash_inspector(value, default_inspector: default_inspector) if value.is_a?(Hash) return array_inspector(value, default_inspector: default_inspector) if value.is_a?(Array) default_inspector.(value) end |
.default_inspector(value) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/trailblazer/developer/trace/inspector.rb', line 37 def default_inspector(value) if defined?(ActiveRecord) && value.is_a?(ActiveRecord::Relation) return activerecord_relation_inspector(value) end value.inspect end |
.hash_inspector(value, default_inspector:) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/trailblazer/developer/trace/inspector.rb', line 17 def hash_inspector(value, default_inspector:) Hash[ value.collect do |key, nested_value| [key, call(nested_value, default_inspector: default_inspector)] end ] end |