Module: ReactiveRecord::BackingRecordInspector

Included in:
Base
Defined in:
lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb

Overview

inspection_details is used by client side ActiveRecord::Base runs down the possible states of a backing record and returns the appropriate string. The order of execution is important!

Instance Method Summary collapse

Instance Method Details

#destroyed_detailsObject



24
25
26
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 24

def destroyed_details
  "[destroyed id: #{id}]"
end

#dirty_detailsObject



32
33
34
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 32

def dirty_details
  "[changed id: #{id} #{changes}]"
end

#error_detailsObject



15
16
17
18
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 15

def error_details
  id_str = "id: #{id} " unless new?
  "[errors #{id_str}#{errors.messages}]"
end

#inspection_detailsObject



6
7
8
9
10
11
12
13
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 6

def inspection_details
  return error_details    unless errors.empty?
  return new_details      if new?
  return destroyed_details if destroyed
  return loading_details  unless @attributes.key? primary_key
  return dirty_details    unless changed_attributes.empty?
  "[loaded id: #{id}]"
end

#loading_detailsObject



28
29
30
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 28

def loading_details
  "[loading #{vector}]"
end

#new_detailsObject



20
21
22
# File 'lib/reactive_record/active_record/reactive_record/backing_record_inspector.rb', line 20

def new_details
  "[new #{attributes.select { |attr| column_type(attr) }}]"
end