class Recorder::Tape

Attributes

data[R]
item[R]

Public Class Methods

new(item) click to toggle source
# File lib/recorder/tape.rb, line 12
def initialize(item)
  @item = item
  @data = Data.new(item)

  item.instance_variable_set(:@recorder_dirty, true)
end

Public Instance Methods

record_create() click to toggle source
# File lib/recorder/tape.rb, line 19
def record_create
  data = data_for(:create, recorder_options)

  record(event: :create, data: data) if data.any?
end
record_destroy() click to toggle source
# File lib/recorder/tape.rb, line 31
def record_destroy
  data = data_for(:destroy, recorder_options)

  record(event: :destroy, data: data) if data.any?
end
record_update() click to toggle source
# File lib/recorder/tape.rb, line 25
def record_update
  data = data_for(:update, recorder_options)

  record(event: :update, data: data) if data.any?
end

Protected Instance Methods

data_for(event, options) click to toggle source
# File lib/recorder/tape.rb, line 43
def data_for(event, options)
  data.data_for(event, options)
end
record(params) click to toggle source
# File lib/recorder/tape.rb, line 47
def record(params)
  Recorder::Tape.record(
    {
      item_type: item.class.to_s,
      item_id: item.id,
      **params
    },
    item.recorder_options
  )
end
recorder_options() click to toggle source
# File lib/recorder/tape.rb, line 39
def recorder_options
  item.respond_to?(:recorder_options) ? item.recorder_options : {}
end