Module: V2::Features::RelatableObject::ClassMethods
- Included in:
- V2::Features::RelatableObject
- Defined in:
- lib/familia/features/relatable_objects.rb
Instance Method Summary collapse
-
#find_by_objid(objid) ⇒ Object
-
#generate_extid ⇒ Object
Guaranteed length of 54.
-
#generate_objid ⇒ Object
-
#relatable?(obj) ⇒ Boolean
Instance Method Details
#find_by_objid(objid) ⇒ Object
99 100 101 102 103 104 105 106 107 108 |
# File 'lib/familia/features/relatable_objects.rb', line 99 def find_by_objid(objid) return nil if objid.to_s.empty? if Familia.debug? reference = caller(1..1).first Familia.trace :FIND_BY_OBJID, Familia.dbclient(uri), objkey, reference end find_by_key objkey end |
#generate_extid ⇒ Object
Guaranteed length of 54
115 116 117 |
# File 'lib/familia/features/relatable_objects.rb', line 115 def generate_extid format('ext_%s', Familia.generate_id) end |
#generate_objid ⇒ Object
110 111 112 |
# File 'lib/familia/features/relatable_objects.rb', line 110 def generate_objid SecureRandom.uuid_v7 end |
#relatable?(obj) ⇒ Boolean
90 91 92 93 94 95 96 97 |
# File 'lib/familia/features/relatable_objects.rb', line 90 def relatable?(obj, &) is_relatable = obj.is_a?(RelatableObject) err_klass = V2::Features::RelatableObjectError raise err_klass, 'Not relatable object' unless is_relatable raise err_klass, 'No self-ownership' if obj.class == self block_given? ? yield : is_relatable end |