universalid 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/lib/universal_id/contrib/active_record.rb +4 -0
  4. data/lib/universal_id/contrib/active_support.rb +3 -0
  5. data/lib/universal_id/contrib/global_id.rb +3 -0
  6. data/lib/universal_id/contrib/rails.rb +6 -0
  7. data/lib/universal_id/contrib/signed_global_id.rb +3 -0
  8. data/lib/universal_id/message_pack_factory.rb +20 -6
  9. data/lib/universal_id/message_pack_types/ruby/scalars/complex.rb +1 -1
  10. data/lib/universal_id/message_pack_types/ruby/scalars/date.rb +1 -1
  11. data/lib/universal_id/message_pack_types/ruby/scalars/date_time.rb +1 -1
  12. data/lib/universal_id/message_pack_types/ruby/scalars/range.rb +1 -1
  13. data/lib/universal_id/message_pack_types/ruby/scalars/rational.rb +1 -1
  14. data/lib/universal_id/message_pack_types/ruby/scalars/regexp.rb +1 -1
  15. data/lib/universal_id/message_pack_types.rb +17 -19
  16. data/lib/universal_id/version.rb +1 -1
  17. data/lib/universal_id.rb +2 -0
  18. metadata +17 -18
  19. data/contrib/active_record.rb +0 -8
  20. data/contrib/active_support.rb +0 -7
  21. data/contrib/global_id.rb +0 -7
  22. data/contrib/signed_global_id.rb +0 -7
  23. data/contrib/tags +0 -75
  24. data/lib/universal_id/contrib.rb +0 -14
  25. /data/{contrib → lib/universal_id/contrib}/active_record/base_message_pack_type.rb +0 -0
  26. /data/{contrib → lib/universal_id/contrib}/active_record/base_packer.rb +0 -0
  27. /data/{contrib → lib/universal_id/contrib}/active_record/base_unpacker.rb +0 -0
  28. /data/{contrib → lib/universal_id/contrib}/active_record/relation_message_pack_type.rb +0 -0
  29. /data/{contrib → lib/universal_id/contrib}/active_support/time_with_zone_message_pack_type.rb +0 -0
  30. /data/{contrib → lib/universal_id/contrib}/global_id/global_id_model.rb +0 -0
  31. /data/{contrib → lib/universal_id/contrib}/global_id/global_id_uid_extension.rb +0 -0
  32. /data/{contrib → lib/universal_id/contrib}/global_id/message_pack_type.rb +0 -0
  33. /data/{contrib → lib/universal_id/contrib}/signed_global_id/message_pack_type.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea53203a7628a0d38447dabfa1fd8a4511fd07b4a02764245c28ef3e5c8550f0
4
- data.tar.gz: 3b72055e784386686c81302d348ad25875694e5943f9b812c19f56e09344883f
3
+ metadata.gz: e55004b7c0b0346e1186784b7962857ae5a010dc85011093703c8e616359c7a9
4
+ data.tar.gz: c3ed66a1d494c536851cb642c7b8d538092792ec2e4b78d6b3b4db9f3628d666
5
5
  SHA512:
6
- metadata.gz: 4203c29b99f7beb2cf31db1f3ca982ecd9295e25cf21ea55425dd23102eb579077513213bb44054ec628714ec17c24b13944a581f583c8e9086ce160e91fcd3b
7
- data.tar.gz: e666af53d6431f8dc5399ad92831a9bf2d6db9cd352fd231e510328897a64fe3aa864610a7a35d438099bd9daf80ed15610e78eacb1fd8c03a2977ce8fc075bc
6
+ metadata.gz: 8bad79ee6a4b23619b894846e9499493d37d59ee88772a86327ba5d822bbc2436df05c16b5dfbdc39e276002f0703476365a45b79590af95cd2ef7558531cbd5
7
+ data.tar.gz: d4a48f15ea08f0cb2f0291f74ff20202c8fd2af431f0e73ba701af178c18f3219d73bc10d8269c9360d6b2f4ffe4a1a521bcbe92ca7688bd7f208acd827ec1a8
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <h1 align="center">Universal ID</h1>
3
3
  <p align="center">
4
4
  <a href="http://blog.codinghorror.com/the-best-code-is-no-code-at-all/">
5
- <img alt="Lines of Code" src="https://img.shields.io/badge/loc-692-47d299.svg" />
5
+ <img alt="Lines of Code" src="https://img.shields.io/badge/loc-721-47d299.svg" />
6
6
  </a>
7
7
  <a href="https://codeclimate.com/github/hopsoft/universalid/maintainability">
8
8
  <img src="https://api.codeclimate.com/v1/badges/567624cbe733fafc2330/maintainability" />
@@ -33,7 +33,7 @@
33
33
  <img alt="Twitter Follow" src="https://img.shields.io/twitter/url?label=%40hopsoft&style=social&url=https%3A%2F%2Ftwitter.com%2Fhopsoft">
34
34
  </a>
35
35
  </p>
36
- <h2 align="center">URL-Safe Portability for Ruby Objects</h2>
36
+ <h2 align="center">URL-Safe Portability for any Ruby Object</h2>
37
37
  </p>
38
38
 
39
39
  **Universal ID introduces a paradigm shift in Ruby development with powerful recursive serialization.**
@@ -64,6 +64,7 @@ This is just a fraction of what's possible with Universal ID. It's an invaluable
64
64
  - [Supported Data Types](#supported-data-types)
65
65
  - [Scalars](#scalars)
66
66
  - [Composites](#composites)
67
+ - [Contributed Types](#contributed-types)
67
68
  - [ActiveRecord](#activerecord)
68
69
  - [Why Universal ID with ActiveRecord?](#why-universal-id-with-activerecord)
69
70
  - [Custom Datatypes](#custom-datatypes)
@@ -216,6 +217,37 @@ Composite support is where things start to get interesting. All of the composite
216
217
  ```
217
218
  </details>
218
219
 
220
+ ### Contributed Types
221
+
222
+ Universal ID is designed to be highly extensible, allowing for third-party contributions to enhance its capabilities.
223
+ These contributions can introduce support for additional data types, further broadening the scope of Universal ID’s utility.
224
+ The following are some notable contrib extensions:
225
+
226
+ - **ActiveRecord::Base**: Integrates Universal ID with ActiveRecord base models, enabling intelligent serialization of database records
227
+ - **ActiveRecord::Relation**: Supports the serialization of ActiveRecord relations, making it possible to encode complex query structures
228
+ - **ActiveSupport::TimeWithZone**: Adds the ability to serialize ActiveSupport's TimeWithZone objects
229
+ - **GlobalID**: Extends support to include GlobalIDs
230
+ - **SignedGlobalID**: Extends support to include SignedGlobalIDs
231
+
232
+ #### Requiring Contributed Types
233
+
234
+ To utilize the contributed types, you must explicitly require them in your application.
235
+ This ensures the extensions are loaded and available for use.
236
+ Here is an example illustrating how to include contributed types:
237
+
238
+ ```ruby
239
+ # load contrib types
240
+ require "universal_id/contrib/active_record"
241
+ require "universal_id/contrib/active_support"
242
+ require "universal_id/contrib/global_id"
243
+ require "universal_id/contrib/signed_global_id"
244
+
245
+ # or simply
246
+ require "universal_id/contrib/rails"
247
+ ```
248
+
249
+ > :bulb: **Implicit Contribs**: Whenever the `Rails` constant is defined, the related contribs are auto-loaded.
250
+
219
251
  ### ActiveRecord
220
252
 
221
253
  > :information_source: **Broad Compatibility**: Universal ID has built-in support for ActiveRecord, yet it maintains independence from Rails-specific dependencies. This versatile design enables integration into **any Ruby project**.
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "active_record/base_message_pack_type"
4
+ require_relative "active_record/relation_message_pack_type"
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "active_support/time_with_zone_message_pack_type"
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "global_id/message_pack_type"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "active_record" if defined? ActiveRecord
4
+ require_relative "active_support" if defined? ActiveSupport
5
+ require_relative "global_id" if defined? GlobalID
6
+ require_relative "signed_global_id" if defined? SignedGlobalID
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "signed_global_id/message_pack_type"
@@ -11,16 +11,30 @@ UniversalID::MessagePackFactory = MessagePack::Factory.new.tap do |factory|
11
11
  @msgpack_pool = UniversalID::MessagePackFactory.pool([Etc.nprocessors.to_i, 1].max)
12
12
  end
13
13
 
14
- def register(type:, type_id: nil, recreate_pool: true, **options)
15
- id = type_id || next_type_id
14
+ def register_scalar(type:, recreate_pool: true, **options)
15
+ register id: next_type_id(order: :asc), type: type, **options
16
+ end
17
+
18
+ def register(type:, id: nil, recreate_pool: true, **options)
16
19
  options[:recursive] = true unless options.key?(:recursive)
17
- register_type(id, type, options)
20
+ register_type(id || next_type_id(order: :desc), type, options)
18
21
  create_msgpack_pool if recreate_pool
19
22
  end
20
23
 
21
- def next_type_id
22
- max_type_id = registered_types.map { |type| type[:type].to_i }.max
23
- max_type_id.nil? ? 0 : max_type_id + 1
24
+ def next_type_id(order:)
25
+ range = 0..127
26
+
27
+ case order
28
+ when :asc
29
+ id = range.first
30
+ id += 1 while type_registered?(id)
31
+ when :desc
32
+ id = range.last
33
+ id -= 1 while type_registered?(id)
34
+ end
35
+
36
+ id = nil unless range.cover?(id)
37
+ id
24
38
  end
25
39
  end
26
40
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: Complex,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) { packer.write obj.to_s },
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: Date,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) { packer.write obj.iso8601 },
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: DateTime,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) { packer.write obj.iso8601(9) },
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: Range,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: Rational,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) { packer.write obj.to_s },
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- UniversalID::MessagePackFactory.register(
3
+ UniversalID::MessagePackFactory.register_scalar(
4
4
  type: Regexp,
5
5
  recreate_pool: false,
6
6
  packer: ->(obj, packer) do
@@ -1,26 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # A list of all MessagePack types in the preferred registration order
4
- #
5
- # IMPORTANT: More specific types should be registered before more general types
6
- # because MessagePack will use the first registered type that matches
7
- # MessagePack scans registered type in linear order and first match wins
3
+ # NOTE: MessagePack scans registered type in linear order and first match wins
8
4
 
9
- require_relative "contrib"
5
+ # scalars
6
+ require_relative "message_pack_types/ruby/scalars/complex"
7
+ require_relative "message_pack_types/ruby/scalars/rational"
8
+ require_relative "message_pack_types/ruby/scalars/date_time"
9
+ require_relative "message_pack_types/ruby/scalars/date"
10
+ require_relative "message_pack_types/ruby/scalars/range"
11
+ require_relative "message_pack_types/ruby/scalars/regexp"
10
12
 
11
- paths = %w[
12
- message_pack_types/uri/uid/type.rb
13
- message_pack_types/ruby/composites/set.rb
14
- message_pack_types/ruby/composites/open_struct.rb
15
- message_pack_types/ruby/composites/struct.rb
16
- message_pack_types/ruby/scalars/complex.rb
17
- message_pack_types/ruby/scalars/rational.rb
18
- message_pack_types/ruby/scalars/date_time.rb
19
- message_pack_types/ruby/scalars/date.rb
20
- message_pack_types/ruby/scalars/range.rb
21
- message_pack_types/ruby/scalars/regexp.rb
22
- ]
13
+ # composites
14
+ require_relative "message_pack_types/ruby/composites/open_struct"
15
+ require_relative "message_pack_types/ruby/composites/struct"
16
+ require_relative "message_pack_types/ruby/composites/set"
23
17
 
24
- paths.each { |path| require_relative path }
18
+ # uid
19
+ require_relative "message_pack_types/uri/uid/type"
20
+
21
+ # contribs
22
+ require_relative "contrib/rails" if defined? Rails
25
23
 
26
24
  UniversalID::MessagePackFactory.create_msgpack_pool
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UniversalID
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/universal_id.rb CHANGED
@@ -16,6 +16,8 @@ require_relative "universal_id/message_pack_factory"
16
16
  UniversalID::Settings.instance # initialize settings
17
17
 
18
18
  module UniversalID
19
+ module Contrib; end
20
+
19
21
  class << self
20
22
  attr_writer :logger
21
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universalid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nate Hopkins (hopsoft)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-13 00:00:00.000000000 Z
11
+ date: 2023-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: brotli
@@ -263,22 +263,21 @@ files:
263
263
  - Rakefile
264
264
  - config/default.yml
265
265
  - config/example.yml
266
- - contrib/active_record.rb
267
- - contrib/active_record/base_message_pack_type.rb
268
- - contrib/active_record/base_packer.rb
269
- - contrib/active_record/base_unpacker.rb
270
- - contrib/active_record/relation_message_pack_type.rb
271
- - contrib/active_support.rb
272
- - contrib/active_support/time_with_zone_message_pack_type.rb
273
- - contrib/global_id.rb
274
- - contrib/global_id/global_id_model.rb
275
- - contrib/global_id/global_id_uid_extension.rb
276
- - contrib/global_id/message_pack_type.rb
277
- - contrib/signed_global_id.rb
278
- - contrib/signed_global_id/message_pack_type.rb
279
- - contrib/tags
280
266
  - lib/universal_id.rb
281
- - lib/universal_id/contrib.rb
267
+ - lib/universal_id/contrib/active_record.rb
268
+ - lib/universal_id/contrib/active_record/base_message_pack_type.rb
269
+ - lib/universal_id/contrib/active_record/base_packer.rb
270
+ - lib/universal_id/contrib/active_record/base_unpacker.rb
271
+ - lib/universal_id/contrib/active_record/relation_message_pack_type.rb
272
+ - lib/universal_id/contrib/active_support.rb
273
+ - lib/universal_id/contrib/active_support/time_with_zone_message_pack_type.rb
274
+ - lib/universal_id/contrib/global_id.rb
275
+ - lib/universal_id/contrib/global_id/global_id_model.rb
276
+ - lib/universal_id/contrib/global_id/global_id_uid_extension.rb
277
+ - lib/universal_id/contrib/global_id/message_pack_type.rb
278
+ - lib/universal_id/contrib/rails.rb
279
+ - lib/universal_id/contrib/signed_global_id.rb
280
+ - lib/universal_id/contrib/signed_global_id/message_pack_type.rb
282
281
  - lib/universal_id/encoder.rb
283
282
  - lib/universal_id/message_pack_factory.rb
284
283
  - lib/universal_id/message_pack_types.rb
@@ -327,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
327
326
  - !ruby/object:Gem::Version
328
327
  version: '0'
329
328
  requirements: []
330
- rubygems_version: 3.2.32
329
+ rubygems_version: 3.2.33
331
330
  signing_key:
332
331
  specification_version: 4
333
332
  summary: URL-Safe String Serialization for any Ruby Object
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if defined?(ActiveRecord) && defined?(ActiveRecord::Base) && defined?(ActiveRecord::Relation)
4
-
5
- require_relative "active_record/base_message_pack_type"
6
- require_relative "active_record/relation_message_pack_type"
7
-
8
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if defined?(ActiveSupport) && defined?(ActiveSupport::TimeWithZone)
4
-
5
- require_relative "active_support/time_with_zone_message_pack_type"
6
-
7
- end
data/contrib/global_id.rb DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if defined?(GlobalID) && defined?(GlobalID::Identification)
4
-
5
- require_relative "global_id/message_pack_type"
6
-
7
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if defined? SignedGlobalID
4
-
5
- require_relative "signed_global_id/message_pack_type"
6
-
7
- end
data/contrib/tags DELETED
@@ -1,75 +0,0 @@
1
- !_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/
2
- !_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/
3
- !_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
4
- !_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/
5
- !_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/
6
- !_TAG_FIELD_DESCRIPTION file /File-restricted scoping/
7
- !_TAG_FIELD_DESCRIPTION input /input file/
8
- !_TAG_FIELD_DESCRIPTION name /tag name/
9
- !_TAG_FIELD_DESCRIPTION pattern /pattern/
10
- !_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/
11
- !_TAG_FIELD_DESCRIPTION!Ruby mixin /how the class or module is mixed in (mixin:HOW:MODULE)/
12
- !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
13
- !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
14
- !_TAG_KIND_DESCRIPTION!Ruby A,accessor /accessors/
15
- !_TAG_KIND_DESCRIPTION!Ruby C,constant /constants/
16
- !_TAG_KIND_DESCRIPTION!Ruby L,library /libraries/
17
- !_TAG_KIND_DESCRIPTION!Ruby S,singletonMethod /singleton methods/
18
- !_TAG_KIND_DESCRIPTION!Ruby a,alias /aliases/
19
- !_TAG_KIND_DESCRIPTION!Ruby c,class /classes/
20
- !_TAG_KIND_DESCRIPTION!Ruby f,method /methods/
21
- !_TAG_KIND_DESCRIPTION!Ruby m,module /modules/
22
- !_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
23
- !_TAG_OUTPUT_FILESEP slash /slash or backslash/
24
- !_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
25
- !_TAG_OUTPUT_VERSION 0.0 /current.age/
26
- !_TAG_PARSER_VERSION!Ruby 0.0 /current.age/
27
- !_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
28
- !_TAG_PROC_CWD /Users/nathan/work/hopsoft/universalid/contrib/ //
29
- !_TAG_PROGRAM_AUTHOR Universal Ctags Team //
30
- !_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
31
- !_TAG_PROGRAM_URL https://ctags.io/ /official site/
32
- !_TAG_PROGRAM_VERSION 6.0.0 //
33
- !_TAG_ROLE_DESCRIPTION!Ruby!library loaded /loaded by "load" method/
34
- !_TAG_ROLE_DESCRIPTION!Ruby!library required /loaded by "require" method/
35
- !_TAG_ROLE_DESCRIPTION!Ruby!library requiredRel /loaded by "require_relative" method/
36
- ActiveRecordPacker active_record/active_record_packer.rb /^class UniversalID::Contrib::ActiveRecordPacker$/;" c module:UniversalID.Contrib
37
- ActiveRecordUnpacker active_record/active_record_unpacker.rb /^class UniversalID::Contrib::ActiveRecordUnpacker$/;" c module:UniversalID.Contrib
38
- ClassMethods global_id/global_id_uid_extension.rb /^ module ClassMethods$/;" m module:GlobalIDUIDExtension
39
- DESCENDANTS_KEY active_record/active_record_packer.rb /^ DESCENDANTS_KEY = "uid:descendants"$/;" C class:ActiveRecordPacker
40
- GlobalID global_id/message_pack_type.rb /^module UniversalID::Contrib::GlobalID; end$/;" m module:UniversalID.Contrib
41
- GlobalIDModel global_id/global_id_model.rb /^class UniversalID::Contrib::GlobalIDModel$/;" c module:UniversalID.Contrib mixin:include:GlobalID.Identification
42
- GlobalIDUIDExtension global_id/global_id_uid_extension.rb /^module UniversalID::Contrib::GlobalIDUIDExtension$/;" m module:UniversalID.Contrib mixin:extend:Forwardable
43
- HAS_MANY_ASSOCIATIONS active_record/active_record_packer.rb /^ HAS_MANY_ASSOCIATIONS = [$/;" C class:ActiveRecordPacker
44
- add_descendants! active_record/active_record_packer.rb /^ def add_descendants!(hash)$/;" f class:ActiveRecordPacker
45
- assign_attributes active_record/active_record_unpacker.rb /^ def assign_attributes(record, attributes)$/;" S class:ActiveRecordUnpacker
46
- assign_descendants active_record/active_record_unpacker.rb /^ def assign_descendants(record, attributes)$/;" S class:ActiveRecordUnpacker
47
- associations active_record/active_record_packer.rb /^ def associations$/;" f class:ActiveRecordPacker
48
- create_instance active_record/active_record_unpacker.rb /^ def create_instance(class_name, attributes)$/;" S class:ActiveRecordUnpacker
49
- find global_id/global_id_model.rb /^ def self.find(value)$/;" S class:GlobalIDModel
50
- foreign_key_column_names active_record/active_record_packer.rb /^ def foreign_key_column_names$/;" f class:ActiveRecordPacker
51
- from_gid global_id/global_id_uid_extension.rb /^ alias_method :from_gid, :from_global_id$/;" a module:GlobalIDUIDExtension.ClassMethods
52
- from_global_id global_id/global_id_uid_extension.rb /^ def from_global_id(gid, options = {})$/;" f module:GlobalIDUIDExtension.ClassMethods
53
- from_global_id_record global_id/global_id_uid_extension.rb /^ def from_global_id_record(gid_record)$/;" f module:GlobalIDUIDExtension.ClassMethods
54
- from_sgid global_id/global_id_uid_extension.rb /^ alias_method :from_sgid, :from_signed_global_id$/;" a module:GlobalIDUIDExtension.ClassMethods
55
- from_signed_global_id global_id/global_id_uid_extension.rb /^ def from_signed_global_id(sgid, options = {})$/;" f module:GlobalIDUIDExtension.ClassMethods
56
- has_many_associations active_record/active_record_packer.rb /^ def has_many_associations$/;" f class:ActiveRecordPacker
57
- id global_id/global_id_model.rb /^ attr_reader :id, :uid$/;" A class:GlobalIDModel
58
- id_only? active_record/active_record_packer.rb /^ def id_only?(prepack_database_options)$/;" f class:ActiveRecordPacker
59
- include_descendants? active_record/active_record_packer.rb /^ def include_descendants?$/;" f class:ActiveRecordPacker
60
- included global_id/global_id_uid_extension.rb /^ def self.included(mixer)$/;" S module:GlobalIDUIDExtension
61
- initialize active_record/active_record_packer.rb /^ def initialize(record)$/;" f class:ActiveRecordPacker
62
- initialize global_id/global_id_model.rb /^ def initialize(universal_id)$/;" f class:GlobalIDModel
63
- loaded_has_many_relations_by_name active_record/active_record_packer.rb /^ def loaded_has_many_relations_by_name$/;" f class:ActiveRecordPacker
64
- pack_with active_record/active_record_packer.rb /^ def pack_with(packer)$/;" f class:ActiveRecordPacker
65
- packable_attributes active_record/active_record_packer.rb /^ def packable_attributes$/;" f class:ActiveRecordPacker
66
- prepack_database_options active_record/active_record_packer.rb /^ def prepack_database_options$/;" f class:ActiveRecordPacker
67
- prepack_options active_record/active_record_packer.rb /^ def prepack_options$/;" f class:ActiveRecordPacker
68
- record active_record/active_record_packer.rb /^ attr_reader :record$/;" A class:ActiveRecordPacker
69
- reject_keys! active_record/active_record_packer.rb /^ def reject_keys!(hash)$/;" f class:ActiveRecordPacker
70
- reject_timestamps! active_record/active_record_packer.rb /^ def reject_timestamps!(hash)$/;" f class:ActiveRecordPacker
71
- reject_unsaved_changes! active_record/active_record_packer.rb /^ def reject_unsaved_changes!(hash)$/;" f class:ActiveRecordPacker
72
- timestamp_column_names active_record/active_record_packer.rb /^ def timestamp_column_names$/;" f class:ActiveRecordPacker
73
- to_global_id_model global_id/global_id_uid_extension.rb /^ def to_global_id_model$/;" f module:GlobalIDUIDExtension
74
- uid global_id/global_id_model.rb /^ attr_reader :id, :uid$/;" A class:GlobalIDModel
75
- unpack_with active_record/active_record_unpacker.rb /^ def unpack_with(unpacker)$/;" S class:ActiveRecordUnpacker
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module UniversalID::Contrib; end
4
-
5
- # A list of all MessagePack types in the preferred registration order
6
- #
7
- # IMPORTANT: More specific types should be registered before more general types
8
- # because MessagePack will use the first registered type that matches
9
- # MessagePack scans registered type in linear order and first match wins
10
-
11
- require_relative "../../contrib/signed_global_id"
12
- require_relative "../../contrib/global_id"
13
- require_relative "../../contrib/active_support"
14
- require_relative "../../contrib/active_record"