Class: Trax::Model::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/trax/model/registry.rb

Class Method Summary collapse

Class Method Details

.collectionObject



14
15
16
# File 'lib/trax/model/registry.rb', line 14

def self.collection
  models.try(:values)
end

.model_prefixesObject



40
41
42
# File 'lib/trax/model/registry.rb', line 40

def self.model_prefixes
  models.try(:keys)
end

.model_type_for_uuid(str) ⇒ Object



24
25
26
27
28
# File 'lib/trax/model/registry.rb', line 24

def self.model_type_for_uuid(str)
  prefix = str[0..1]

  uuid_map.fetch(prefix)
end

.next_prefixObject



30
31
32
33
34
35
36
37
38
# File 'lib/trax/model/registry.rb', line 30

def self.next_prefix
  current_prefix = models.values
                         .reject!{|model| !model.try(:uuid_prefix) }
                         .map(&:uuid_prefix)
                         .sort
                         .last

  current_prefix.next
end

.previous_prefixObject



44
45
46
47
48
49
50
51
52
# File 'lib/trax/model/registry.rb', line 44

def self.previous_prefix
  current_prefix = models.values
                         .reject!{|model| !model.try(:uuid_prefix) }
                         .map(&:uuid_prefix)
                         .sort
                         .last

  current_prefix.previous
end

.register_trax_model(model) ⇒ Object



18
19
20
21
22
# File 'lib/trax/model/registry.rb', line 18

def self.register_trax_model(model)
  unless models.key?(model.trax_registry_key)
    models[model.trax_registry_key] = model
  end
end

.uuid_mapObject



54
55
56
57
58
59
# File 'lib/trax/model/registry.rb', line 54

def self.uuid_map
  models.values.reject{|model| model.try(:unique_id_config).try(:uuid_prefix) == nil }.inject(::Hashie::Mash.new) do |result, model|
    result[model.unique_id_config.uuid_prefix] = model
    result
  end
end