Class: MagicPipe::Loaders::SimpleActiveRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/magic_pipe/loaders/simple_active_record.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(record, wrapper = nil) ⇒ SimpleActiveRecord

Returns a new instance of SimpleActiveRecord.



4
5
6
7
# File 'lib/magic_pipe/loaders/simple_active_record.rb', line 4

def initialize(record, wrapper=nil)
  @record = record
  @wrapper = wrapper
end

Instance Attribute Details

#recordObject (readonly)

Returns the value of attribute record.



9
10
11
# File 'lib/magic_pipe/loaders/simple_active_record.rb', line 9

def record
  @record
end

Class Method Details

.load(decomposed_data) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/magic_pipe/loaders/simple_active_record.rb', line 21

def load(decomposed_data)
  input = symbolize_keys(decomposed_data)
  record_klass_name = input[:klass]
  record_id = input[:id]
  wrapper_klass_name = input[:wrapper]

  record_klass = load_constant!(record_klass_name, "ActiveRecord model")
  record = record_klass.find(record_id) # let it raise ActiveRecord::RecordNotFound

  if wrapper_klass_name
    wrapper_klass = load_constant!(wrapper_klass_name, "object serializer")
    wrapper_klass.new(record)
  else
    record
  end
end

Instance Method Details

#decomposeObject



11
12
13
14
15
16
17
# File 'lib/magic_pipe/loaders/simple_active_record.rb', line 11

def decompose
  {
    klass: @record.class.to_s,
    id: @record.id,
    wrapper: (@wrapper && @wrapper.to_s),
  }
end