Module: SpaceCadetActiveRecordUuid
- Included in:
- SpaceCadetUuid
- Defined in:
- lib/space_cadet_active_record_uuid.rb
Constant Summary collapse
- ID_RETRY_COUNT =
10
Instance Method Summary collapse
- #add_uuid(uuid_class, source_name, id, uuid) ⇒ Object
- #id_add_uuid(uuid_class, source_name, id_bit_count) ⇒ Object
- #prepare_create(uuid_class, source_name, id_bit_count) ⇒ Object
Instance Method Details
#add_uuid(uuid_class, source_name, id, uuid) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/space_cadet_active_record_uuid.rb', line 10 def add_uuid uuid_class, source_name, id, uuid conn = uuid_class.connection table_name = uuid_class.table_name set_auto_increment conn, table_name, id uuid_class.create! do |u| u.source_name = source_name u.uuid = uuid end end |
#id_add_uuid(uuid_class, source_name, id_bit_count) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/space_cadet_active_record_uuid.rb', line 20 def id_add_uuid uuid_class, source_name, id_bit_count conn = uuid_class.connection uuid = new_uuid conn id = id_from_uuid uuid, id_bit_count record = nil begin record = add_uuid uuid_class, source_name, id, uuid rescue record = nil end record end |
#prepare_create(uuid_class, source_name, id_bit_count) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/space_cadet_active_record_uuid.rb', line 35 def prepare_create uuid_class, source_name, id_bit_count record = nil retry_count = 0 while !record && retry_count < ID_RETRY_COUNT do record = id_add_uuid uuid_class, source_name, id_bit_count end conn = record.class.connection set_auto_increment conn, source_name, record.id end |