paper_trail_diff 0.2.0 → 0.3.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +62 -0
  3. data/QUICKSTART.md +44 -2
  4. data/README.md +188 -14
  5. data/lib/paper_trail_diff/activity_belongs_to_event_applier.rb +126 -0
  6. data/lib/paper_trail_diff/activity_child_candidate_loader.rb +73 -0
  7. data/lib/paper_trail_diff/activity_collection_event_applier.rb +137 -0
  8. data/lib/paper_trail_diff/activity_collection_record_updater.rb +67 -0
  9. data/lib/paper_trail_diff/activity_collection_route_change.rb +21 -0
  10. data/lib/paper_trail_diff/activity_collection_route_updater.rb +128 -0
  11. data/lib/paper_trail_diff/activity_event_record_normalizer.rb +42 -0
  12. data/lib/paper_trail_diff/activity_event_record_resolver.rb +120 -0
  13. data/lib/paper_trail_diff/activity_event_route_finder.rb +112 -0
  14. data/lib/paper_trail_diff/activity_event_snapshot_refresher.rb +59 -437
  15. data/lib/paper_trail_diff/activity_history.rb +136 -0
  16. data/lib/paper_trail_diff/activity_range.rb +28 -12
  17. data/lib/paper_trail_diff/activity_relationship.rb +55 -0
  18. data/lib/paper_trail_diff/activity_snapshot_delta.rb +64 -0
  19. data/lib/paper_trail_diff/activity_snapshot_sequence.rb +3 -3
  20. data/lib/paper_trail_diff/activity_timeline_builder.rb +54 -45
  21. data/lib/paper_trail_diff/activity_version_collector.rb +14 -17
  22. data/lib/paper_trail_diff/branch_snapshot_refresher.rb +7 -3
  23. data/lib/paper_trail_diff/collection_comparator.rb +155 -0
  24. data/lib/paper_trail_diff/collection_identity_index.rb +53 -0
  25. data/lib/paper_trail_diff/collection_transition.rb +25 -0
  26. data/lib/paper_trail_diff/comparison_batch.rb +151 -0
  27. data/lib/paper_trail_diff/engine.rb +5 -45
  28. data/lib/paper_trail_diff/errors.rb +9 -0
  29. data/lib/paper_trail_diff/historical_snapshot_store.rb +55 -3
  30. data/lib/paper_trail_diff/instrumentation.rb +30 -0
  31. data/lib/paper_trail_diff/live_endpoint_batch_loader.rb +133 -0
  32. data/lib/paper_trail_diff/live_endpoint_provider.rb +48 -0
  33. data/lib/paper_trail_diff/live_graph_collector.rb +52 -0
  34. data/lib/paper_trail_diff/paper_trail_adapter.rb +61 -34
  35. data/lib/paper_trail_diff/preloaded_endpoint_batch_loader.rb +48 -0
  36. data/lib/paper_trail_diff/prepared_edge_loader.rb +54 -17
  37. data/lib/paper_trail_diff/prepared_history.rb +14 -4
  38. data/lib/paper_trail_diff/prepared_history_loader.rb +17 -9
  39. data/lib/paper_trail_diff/prepared_record_index.rb +138 -10
  40. data/lib/paper_trail_diff/snapshot.rb +66 -3
  41. data/lib/paper_trail_diff/support.rb +18 -0
  42. data/lib/paper_trail_diff/time_activity_timeline_builder.rb +111 -0
  43. data/lib/paper_trail_diff/time_range.rb +85 -0
  44. data/lib/paper_trail_diff/time_version_range.rb +53 -0
  45. data/lib/paper_trail_diff/timeline_builder.rb +13 -7
  46. data/lib/paper_trail_diff/timeline_range.rb +72 -0
  47. data/lib/paper_trail_diff/version.rb +1 -1
  48. data/lib/paper_trail_diff/version_association_candidate_scope.rb +73 -0
  49. data/lib/paper_trail_diff.rb +83 -12
  50. data/sig/generated/paper_trail_diff/activity_belongs_to_event_applier.rbs +41 -0
  51. data/sig/generated/paper_trail_diff/activity_child_candidate_loader.rbs +40 -0
  52. data/sig/generated/paper_trail_diff/activity_collection_event_applier.rbs +46 -0
  53. data/sig/generated/paper_trail_diff/activity_collection_record_updater.rbs +25 -0
  54. data/sig/generated/paper_trail_diff/activity_collection_route_change.rbs +17 -0
  55. data/sig/generated/paper_trail_diff/activity_collection_route_updater.rbs +44 -0
  56. data/sig/generated/paper_trail_diff/activity_event_record_normalizer.rbs +19 -0
  57. data/sig/generated/paper_trail_diff/activity_event_record_resolver.rbs +44 -0
  58. data/sig/generated/paper_trail_diff/activity_event_route_finder.rbs +54 -0
  59. data/sig/generated/paper_trail_diff/activity_event_snapshot_refresher.rbs +20 -71
  60. data/sig/generated/paper_trail_diff/activity_history.rbs +79 -0
  61. data/sig/generated/paper_trail_diff/activity_range.rbs +14 -5
  62. data/sig/generated/paper_trail_diff/activity_relationship.rbs +23 -0
  63. data/sig/generated/paper_trail_diff/activity_snapshot_delta.rbs +33 -0
  64. data/sig/generated/paper_trail_diff/activity_snapshot_sequence.rbs +2 -2
  65. data/sig/generated/paper_trail_diff/activity_timeline_builder.rbs +15 -10
  66. data/sig/generated/paper_trail_diff/activity_version_collector.rbs +2 -5
  67. data/sig/generated/paper_trail_diff/branch_snapshot_refresher.rbs +2 -2
  68. data/sig/generated/paper_trail_diff/collection_comparator.rbs +59 -0
  69. data/sig/generated/paper_trail_diff/collection_identity_index.rbs +29 -0
  70. data/sig/generated/paper_trail_diff/collection_transition.rbs +18 -0
  71. data/sig/generated/paper_trail_diff/comparison_batch.rbs +65 -0
  72. data/sig/generated/paper_trail_diff/engine.rbs +0 -12
  73. data/sig/generated/paper_trail_diff/errors.rbs +12 -0
  74. data/sig/generated/paper_trail_diff/historical_snapshot_store.rbs +22 -2
  75. data/sig/generated/paper_trail_diff/instrumentation.rbs +12 -0
  76. data/sig/generated/paper_trail_diff/live_endpoint_batch_loader.rbs +52 -0
  77. data/sig/generated/paper_trail_diff/live_endpoint_provider.rbs +23 -0
  78. data/sig/generated/paper_trail_diff/live_graph_collector.rbs +27 -0
  79. data/sig/generated/paper_trail_diff/paper_trail_adapter.rbs +21 -10
  80. data/sig/generated/paper_trail_diff/preloaded_endpoint_batch_loader.rbs +24 -0
  81. data/sig/generated/paper_trail_diff/prepared_edge_loader.rbs +22 -8
  82. data/sig/generated/paper_trail_diff/prepared_history.rbs +6 -0
  83. data/sig/generated/paper_trail_diff/prepared_history_loader.rbs +4 -2
  84. data/sig/generated/paper_trail_diff/prepared_record_index.rbs +61 -6
  85. data/sig/generated/paper_trail_diff/snapshot.rbs +37 -2
  86. data/sig/generated/paper_trail_diff/support.rbs +6 -0
  87. data/sig/generated/paper_trail_diff/time_activity_timeline_builder.rbs +46 -0
  88. data/sig/generated/paper_trail_diff/time_range.rbs +41 -0
  89. data/sig/generated/paper_trail_diff/time_version_range.rbs +27 -0
  90. data/sig/generated/paper_trail_diff/timeline_builder.rbs +6 -5
  91. data/sig/generated/paper_trail_diff/timeline_range.rbs +41 -0
  92. data/sig/generated/paper_trail_diff/version_association_candidate_scope.rbs +32 -0
  93. data/sig/generated/paper_trail_diff.rbs +16 -8
  94. metadata +56 -4
@@ -7,20 +7,24 @@ module PaperTrailDiff
7
7
  SUPPORTED_ASSOCIATION_MACROS: untyped
8
8
 
9
9
  # Compares net state between explicit PaperTrail-version or current-record endpoints.
10
- # : (untyped, untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Diff
11
- def self.compare: (untyped, untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Diff
10
+ # : (untyped, untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?reload_live_endpoints: bool) -> Diff
11
+ def self.compare: (untyped, untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?reload_live_endpoints: bool) -> Diff
12
+
13
+ # Compares many independent endpoint pairs while batching current-record loading.
14
+ # : (Array[comparison_input], ?associations: Array[String | Symbol], ?ignore: ignore_option, ?reload_live_endpoints: bool) -> comparison_results
15
+ def self.compare_many: (Array[comparison_input], ?associations: Array[String | Symbol], ?ignore: ignore_option, ?reload_live_endpoints: bool) -> comparison_results
12
16
 
13
17
  # Compares every adjacent reconstructed state in an inclusive version range.
14
- # : (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[Step]
15
- def self.timeline: (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[Step]
18
+ # : (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[Step]
19
+ def self.timeline: (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[Step]
16
20
 
17
21
  # Compares adjacent root and selected-descendant activity boundaries.
18
- # : (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[ActivityStep]
19
- def self.activity_timeline: (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[ActivityStep]
22
+ # : (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[ActivityStep]
23
+ def self.activity_timeline: (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option) -> Array[ActivityStep]
20
24
 
21
25
  # Builds an endpoint diff and root-checkpoint timeline while normalizing each version once.
22
- # : (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?activity: bool) -> Analysis
23
- def self.analyze: (untyped, from: untyped, to: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?activity: bool) -> Analysis
26
+ # : (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?activity: bool) -> Analysis
27
+ def self.analyze: (untyped, ?from: untyped, ?to: untyped, ?within: untyped, ?associations: Array[String | Symbol], ?ignore: ignore_option, ?activity: bool) -> Analysis
24
28
 
25
29
  # Returns the association macros this release can normalize.
26
30
  # : () -> Array[Symbol]
@@ -50,6 +54,10 @@ module PaperTrailDiff
50
54
 
51
55
  type identity = Array[untyped]
52
56
 
57
+ type comparison_input = Hash[String | Symbol, untyped]
58
+
59
+ type comparison_results = Hash[identity, Diff]
60
+
53
61
  type ignore_option = Array[String | Symbol] | Hash[String | Symbol, untyped]
54
62
 
55
63
  type reference_key = :type | :id | "type" | "id"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Williams
@@ -43,11 +43,23 @@ files:
43
43
  - QUICKSTART.md
44
44
  - README.md
45
45
  - lib/paper_trail_diff.rb
46
+ - lib/paper_trail_diff/activity_belongs_to_event_applier.rb
46
47
  - lib/paper_trail_diff/activity_boundary.rb
48
+ - lib/paper_trail_diff/activity_child_candidate_loader.rb
49
+ - lib/paper_trail_diff/activity_collection_event_applier.rb
50
+ - lib/paper_trail_diff/activity_collection_record_updater.rb
51
+ - lib/paper_trail_diff/activity_collection_route_change.rb
52
+ - lib/paper_trail_diff/activity_collection_route_updater.rb
47
53
  - lib/paper_trail_diff/activity_event.rb
54
+ - lib/paper_trail_diff/activity_event_record_normalizer.rb
55
+ - lib/paper_trail_diff/activity_event_record_resolver.rb
56
+ - lib/paper_trail_diff/activity_event_route_finder.rb
48
57
  - lib/paper_trail_diff/activity_event_snapshot_refresher.rb
58
+ - lib/paper_trail_diff/activity_history.rb
49
59
  - lib/paper_trail_diff/activity_range.rb
60
+ - lib/paper_trail_diff/activity_relationship.rb
50
61
  - lib/paper_trail_diff/activity_root_snapshot_refresher.rb
62
+ - lib/paper_trail_diff/activity_snapshot_delta.rb
51
63
  - lib/paper_trail_diff/activity_snapshot_sequence.rb
52
64
  - lib/paper_trail_diff/activity_timeline_builder.rb
53
65
  - lib/paper_trail_diff/activity_version_collector.rb
@@ -56,6 +68,10 @@ files:
56
68
  - lib/paper_trail_diff/association_discovery.rb
57
69
  - lib/paper_trail_diff/association_traversal.rb
58
70
  - lib/paper_trail_diff/branch_snapshot_refresher.rb
71
+ - lib/paper_trail_diff/collection_comparator.rb
72
+ - lib/paper_trail_diff/collection_identity_index.rb
73
+ - lib/paper_trail_diff/collection_transition.rb
74
+ - lib/paper_trail_diff/comparison_batch.rb
59
75
  - lib/paper_trail_diff/configuration.rb
60
76
  - lib/paper_trail_diff/diagnostics.rb
61
77
  - lib/paper_trail_diff/endpoint.rb
@@ -63,8 +79,13 @@ files:
63
79
  - lib/paper_trail_diff/errors.rb
64
80
  - lib/paper_trail_diff/historical_association_reifier.rb
65
81
  - lib/paper_trail_diff/historical_snapshot_store.rb
82
+ - lib/paper_trail_diff/instrumentation.rb
66
83
  - lib/paper_trail_diff/live_association_reader.rb
84
+ - lib/paper_trail_diff/live_endpoint_batch_loader.rb
85
+ - lib/paper_trail_diff/live_endpoint_provider.rb
86
+ - lib/paper_trail_diff/live_graph_collector.rb
67
87
  - lib/paper_trail_diff/paper_trail_adapter.rb
88
+ - lib/paper_trail_diff/preloaded_endpoint_batch_loader.rb
68
89
  - lib/paper_trail_diff/prepared_association_reifier.rb
69
90
  - lib/paper_trail_diff/prepared_edge_loader.rb
70
91
  - lib/paper_trail_diff/prepared_history.rb
@@ -75,20 +96,37 @@ files:
75
96
  - lib/paper_trail_diff/snapshot_traversal.rb
76
97
  - lib/paper_trail_diff/step.rb
77
98
  - lib/paper_trail_diff/support.rb
99
+ - lib/paper_trail_diff/time_activity_timeline_builder.rb
100
+ - lib/paper_trail_diff/time_range.rb
101
+ - lib/paper_trail_diff/time_version_range.rb
78
102
  - lib/paper_trail_diff/timeline_builder.rb
103
+ - lib/paper_trail_diff/timeline_range.rb
79
104
  - lib/paper_trail_diff/timeline_snapshot_provider.rb
80
105
  - lib/paper_trail_diff/traversal.rb
81
106
  - lib/paper_trail_diff/traversal_emitter.rb
82
107
  - lib/paper_trail_diff/traversal_entry.rb
83
108
  - lib/paper_trail_diff/value_objects.rb
84
109
  - lib/paper_trail_diff/version.rb
110
+ - lib/paper_trail_diff/version_association_candidate_scope.rb
85
111
  - lib/paper_trail_diff/version_range.rb
86
112
  - sig/generated/paper_trail_diff.rbs
113
+ - sig/generated/paper_trail_diff/activity_belongs_to_event_applier.rbs
87
114
  - sig/generated/paper_trail_diff/activity_boundary.rbs
115
+ - sig/generated/paper_trail_diff/activity_child_candidate_loader.rbs
116
+ - sig/generated/paper_trail_diff/activity_collection_event_applier.rbs
117
+ - sig/generated/paper_trail_diff/activity_collection_record_updater.rbs
118
+ - sig/generated/paper_trail_diff/activity_collection_route_change.rbs
119
+ - sig/generated/paper_trail_diff/activity_collection_route_updater.rbs
88
120
  - sig/generated/paper_trail_diff/activity_event.rbs
121
+ - sig/generated/paper_trail_diff/activity_event_record_normalizer.rbs
122
+ - sig/generated/paper_trail_diff/activity_event_record_resolver.rbs
123
+ - sig/generated/paper_trail_diff/activity_event_route_finder.rbs
89
124
  - sig/generated/paper_trail_diff/activity_event_snapshot_refresher.rbs
125
+ - sig/generated/paper_trail_diff/activity_history.rbs
90
126
  - sig/generated/paper_trail_diff/activity_range.rbs
127
+ - sig/generated/paper_trail_diff/activity_relationship.rbs
91
128
  - sig/generated/paper_trail_diff/activity_root_snapshot_refresher.rbs
129
+ - sig/generated/paper_trail_diff/activity_snapshot_delta.rbs
92
130
  - sig/generated/paper_trail_diff/activity_snapshot_sequence.rbs
93
131
  - sig/generated/paper_trail_diff/activity_timeline_builder.rbs
94
132
  - sig/generated/paper_trail_diff/activity_version_collector.rbs
@@ -97,6 +135,10 @@ files:
97
135
  - sig/generated/paper_trail_diff/association_discovery.rbs
98
136
  - sig/generated/paper_trail_diff/association_traversal.rbs
99
137
  - sig/generated/paper_trail_diff/branch_snapshot_refresher.rbs
138
+ - sig/generated/paper_trail_diff/collection_comparator.rbs
139
+ - sig/generated/paper_trail_diff/collection_identity_index.rbs
140
+ - sig/generated/paper_trail_diff/collection_transition.rbs
141
+ - sig/generated/paper_trail_diff/comparison_batch.rbs
100
142
  - sig/generated/paper_trail_diff/configuration.rbs
101
143
  - sig/generated/paper_trail_diff/diagnostics.rbs
102
144
  - sig/generated/paper_trail_diff/endpoint.rbs
@@ -104,8 +146,13 @@ files:
104
146
  - sig/generated/paper_trail_diff/errors.rbs
105
147
  - sig/generated/paper_trail_diff/historical_association_reifier.rbs
106
148
  - sig/generated/paper_trail_diff/historical_snapshot_store.rbs
149
+ - sig/generated/paper_trail_diff/instrumentation.rbs
107
150
  - sig/generated/paper_trail_diff/live_association_reader.rbs
151
+ - sig/generated/paper_trail_diff/live_endpoint_batch_loader.rbs
152
+ - sig/generated/paper_trail_diff/live_endpoint_provider.rbs
153
+ - sig/generated/paper_trail_diff/live_graph_collector.rbs
108
154
  - sig/generated/paper_trail_diff/paper_trail_adapter.rbs
155
+ - sig/generated/paper_trail_diff/preloaded_endpoint_batch_loader.rbs
109
156
  - sig/generated/paper_trail_diff/prepared_association_reifier.rbs
110
157
  - sig/generated/paper_trail_diff/prepared_edge_loader.rbs
111
158
  - sig/generated/paper_trail_diff/prepared_history.rbs
@@ -116,13 +163,18 @@ files:
116
163
  - sig/generated/paper_trail_diff/snapshot_traversal.rbs
117
164
  - sig/generated/paper_trail_diff/step.rbs
118
165
  - sig/generated/paper_trail_diff/support.rbs
166
+ - sig/generated/paper_trail_diff/time_activity_timeline_builder.rbs
167
+ - sig/generated/paper_trail_diff/time_range.rbs
168
+ - sig/generated/paper_trail_diff/time_version_range.rbs
119
169
  - sig/generated/paper_trail_diff/timeline_builder.rbs
170
+ - sig/generated/paper_trail_diff/timeline_range.rbs
120
171
  - sig/generated/paper_trail_diff/timeline_snapshot_provider.rbs
121
172
  - sig/generated/paper_trail_diff/traversal.rbs
122
173
  - sig/generated/paper_trail_diff/traversal_emitter.rbs
123
174
  - sig/generated/paper_trail_diff/traversal_entry.rbs
124
175
  - sig/generated/paper_trail_diff/value_objects.rbs
125
176
  - sig/generated/paper_trail_diff/version.rbs
177
+ - sig/generated/paper_trail_diff/version_association_candidate_scope.rbs
126
178
  - sig/generated/paper_trail_diff/version_range.rbs
127
179
  homepage: https://github.com/aheathwilliams/paper_trail_diff
128
180
  licenses:
@@ -130,11 +182,11 @@ licenses:
130
182
  metadata:
131
183
  allowed_push_host: https://rubygems.org
132
184
  bug_tracker_uri: https://github.com/aheathwilliams/paper_trail_diff/issues
133
- changelog_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.2.0/CHANGELOG.md
134
- documentation_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.2.0/README.md
185
+ changelog_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.3.1/CHANGELOG.md
186
+ documentation_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.3.1/README.md
135
187
  homepage_uri: https://github.com/aheathwilliams/paper_trail_diff
136
188
  rubygems_mfa_required: 'true'
137
- source_code_uri: https://github.com/aheathwilliams/paper_trail_diff/tree/v0.2.0
189
+ source_code_uri: https://github.com/aheathwilliams/paper_trail_diff/tree/v0.3.1
138
190
  rdoc_options: []
139
191
  require_paths:
140
192
  - lib