Module: V2::Features::RelatableObject::ClassMethods

Included in:
V2::Features::RelatableObject
Defined in:
lib/familia/features/relatable_objects.rb

Instance Method Summary collapse

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_extidObject

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_objidObject



110
111
112
# File 'lib/familia/features/relatable_objects.rb', line 110

def generate_objid
  SecureRandom.uuid_v7
end

#relatable?(obj) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (err_klass)


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