class MagicPipe::Loaders::SimpleActiveRecord
Attributes
record[R]
Public Class Methods
load(decomposed_data)
click to toggle source
# 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
new(record, wrapper=nil)
click to toggle source
# File lib/magic_pipe/loaders/simple_active_record.rb, line 4 def initialize(record, wrapper=nil) @record = record @wrapper = wrapper end
Private Class Methods
load_constant!(name, context)
click to toggle source
# File lib/magic_pipe/loaders/simple_active_record.rb, line 40 def load_constant!(name, context) Object.const_get(name) rescue NameError raise MagicPipe::LoaderError.new(name, context) end
symbolize_keys(hash)
click to toggle source
# File lib/magic_pipe/loaders/simple_active_record.rb, line 46 def symbolize_keys(hash) hash.map do |k, v| [k.to_sym, v] end.to_h end
Public Instance Methods
decompose()
click to toggle source
# 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