Class: EventTimeline::ValueInspector
- Inherits:
-
Object
- Object
- EventTimeline::ValueInspector
- Defined in:
- lib/event_timeline/value_inspector.rb
Class Method Summary collapse
- .activemodel_model?(value) ⇒ Boolean
- .activerecord_model?(value) ⇒ Boolean
- .inspect(value) ⇒ Object
- .inspect_activerecord(record) ⇒ Object
Class Method Details
.activemodel_model?(value) ⇒ Boolean
34 35 36 37 38 |
# File 'lib/event_timeline/value_inspector.rb', line 34 def activemodel_model?(value) return false unless defined?(ActiveModel::Model) value.class.included_modules.include?(ActiveModel::Model) end |
.activerecord_model?(value) ⇒ Boolean
30 31 32 |
# File 'lib/event_timeline/value_inspector.rb', line 30 def activerecord_model?(value) defined?(ActiveRecord::Base) && value.is_a?(ActiveRecord::Base) end |
.inspect(value) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/event_timeline/value_inspector.rb', line 6 def inspect(value) return inspect_string(value) if value.is_a?(String) return inspect_collection(value) if value.is_a?(Hash) || value.is_a?(Array) return inspect_activerecord(value) if activerecord_model?(value) return inspect_activemodel(value) if activemodel_model?(value) return value.name if value.is_a?(Class) || value.is_a?(Module) inspect_generic(value) rescue StandardError '<inspect failed>' end |
.inspect_activerecord(record) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/event_timeline/value_inspector.rb', line 18 def inspect_activerecord(record) if record.persisted? id_attr = record.class.primary_key id_value = record.send(id_attr) if id_attr "#{record.class.name}(#{id_attr}: #{id_value})" else "#{record.class.name}(new_record)" end rescue StandardError "#{record.class.name}(<inspection failed>)" end |