module EasyCompliance::Ref
allows identifying records after submission
Public Instance Methods
app_name()
click to toggle source
# File lib/easy_compliance/ref.rb, line 31 def app_name EasyCompliance.app_name or raise Error, 'must set app_name' end
for(record_class:, record_id:)
click to toggle source
@return [ String ]
# File lib/easy_compliance/ref.rb, line 14 def for(record_class:, record_id:) [app_name, record_class, record_id].join('#') end
for_record(record)
click to toggle source
@return [ String ]
# File lib/easy_compliance/ref.rb, line 9 def for_record(record) self.for(record_class: record.class.name, record_id: record.id) end
look_up(ref)
click to toggle source
Converts a previously created Ref
string back into a record.
@return [ ActiveRecord::Base | NilClass ]
# File lib/easy_compliance/ref.rb, line 21 def look_up(ref) app_name, record_class, record_id = ref.split('#') app_name == self.app_name or raise Error, "Ref `#{ref}` is from wrong app" begin record_class.constantize.find_by(id: record_id) rescue NameError, NoMethodError => e raise Error, "Ref `#{ref}` not supported: #{e.message}" end end