paper_trail_diff 0.1.0

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 (77) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +45 -0
  3. data/LICENSE +22 -0
  4. data/README.md +473 -0
  5. data/lib/paper_trail_diff/activity_boundary.rb +82 -0
  6. data/lib/paper_trail_diff/activity_event.rb +128 -0
  7. data/lib/paper_trail_diff/activity_event_snapshot_refresher.rb +493 -0
  8. data/lib/paper_trail_diff/activity_range.rb +58 -0
  9. data/lib/paper_trail_diff/activity_root_snapshot_refresher.rb +156 -0
  10. data/lib/paper_trail_diff/activity_snapshot_sequence.rb +161 -0
  11. data/lib/paper_trail_diff/activity_timeline_builder.rb +177 -0
  12. data/lib/paper_trail_diff/activity_version_collector.rb +196 -0
  13. data/lib/paper_trail_diff/analysis.rb +26 -0
  14. data/lib/paper_trail_diff/association_discovery.rb +132 -0
  15. data/lib/paper_trail_diff/association_traversal.rb +131 -0
  16. data/lib/paper_trail_diff/branch_snapshot_refresher.rb +191 -0
  17. data/lib/paper_trail_diff/configuration.rb +170 -0
  18. data/lib/paper_trail_diff/diagnostics.rb +242 -0
  19. data/lib/paper_trail_diff/endpoint.rb +87 -0
  20. data/lib/paper_trail_diff/engine.rb +180 -0
  21. data/lib/paper_trail_diff/errors.rb +34 -0
  22. data/lib/paper_trail_diff/historical_association_reifier.rb +103 -0
  23. data/lib/paper_trail_diff/historical_snapshot_store.rb +144 -0
  24. data/lib/paper_trail_diff/live_association_reader.rb +10 -0
  25. data/lib/paper_trail_diff/paper_trail_adapter.rb +182 -0
  26. data/lib/paper_trail_diff/prepared_association_reifier.rb +48 -0
  27. data/lib/paper_trail_diff/prepared_edge_loader.rb +155 -0
  28. data/lib/paper_trail_diff/prepared_history.rb +217 -0
  29. data/lib/paper_trail_diff/prepared_history_loader.rb +136 -0
  30. data/lib/paper_trail_diff/prepared_record_index.rb +154 -0
  31. data/lib/paper_trail_diff/snapshot.rb +120 -0
  32. data/lib/paper_trail_diff/snapshot_normalizer.rb +182 -0
  33. data/lib/paper_trail_diff/step.rb +28 -0
  34. data/lib/paper_trail_diff/support.rb +80 -0
  35. data/lib/paper_trail_diff/timeline_builder.rb +60 -0
  36. data/lib/paper_trail_diff/timeline_snapshot_provider.rb +24 -0
  37. data/lib/paper_trail_diff/value_objects.rb +134 -0
  38. data/lib/paper_trail_diff/version.rb +6 -0
  39. data/lib/paper_trail_diff/version_range.rb +81 -0
  40. data/lib/paper_trail_diff.rb +131 -0
  41. data/sig/generated/paper_trail_diff/activity_boundary.rbs +43 -0
  42. data/sig/generated/paper_trail_diff/activity_event.rbs +64 -0
  43. data/sig/generated/paper_trail_diff/activity_event_snapshot_refresher.rbs +98 -0
  44. data/sig/generated/paper_trail_diff/activity_range.rbs +36 -0
  45. data/sig/generated/paper_trail_diff/activity_root_snapshot_refresher.rbs +54 -0
  46. data/sig/generated/paper_trail_diff/activity_snapshot_sequence.rbs +71 -0
  47. data/sig/generated/paper_trail_diff/activity_timeline_builder.rbs +61 -0
  48. data/sig/generated/paper_trail_diff/activity_version_collector.rbs +71 -0
  49. data/sig/generated/paper_trail_diff/analysis.rbs +18 -0
  50. data/sig/generated/paper_trail_diff/association_discovery.rbs +63 -0
  51. data/sig/generated/paper_trail_diff/association_traversal.rbs +54 -0
  52. data/sig/generated/paper_trail_diff/branch_snapshot_refresher.rbs +56 -0
  53. data/sig/generated/paper_trail_diff/configuration.rbs +67 -0
  54. data/sig/generated/paper_trail_diff/diagnostics.rbs +109 -0
  55. data/sig/generated/paper_trail_diff/endpoint.rbs +30 -0
  56. data/sig/generated/paper_trail_diff/engine.rbs +54 -0
  57. data/sig/generated/paper_trail_diff/errors.rbs +43 -0
  58. data/sig/generated/paper_trail_diff/historical_association_reifier.rbs +37 -0
  59. data/sig/generated/paper_trail_diff/historical_snapshot_store.rbs +50 -0
  60. data/sig/generated/paper_trail_diff/live_association_reader.rbs +9 -0
  61. data/sig/generated/paper_trail_diff/paper_trail_adapter.rbs +72 -0
  62. data/sig/generated/paper_trail_diff/prepared_association_reifier.rbs +27 -0
  63. data/sig/generated/paper_trail_diff/prepared_edge_loader.rbs +65 -0
  64. data/sig/generated/paper_trail_diff/prepared_history.rbs +93 -0
  65. data/sig/generated/paper_trail_diff/prepared_history_loader.rbs +67 -0
  66. data/sig/generated/paper_trail_diff/prepared_record_index.rbs +84 -0
  67. data/sig/generated/paper_trail_diff/snapshot.rbs +69 -0
  68. data/sig/generated/paper_trail_diff/snapshot_normalizer.rbs +76 -0
  69. data/sig/generated/paper_trail_diff/step.rbs +18 -0
  70. data/sig/generated/paper_trail_diff/support.rbs +30 -0
  71. data/sig/generated/paper_trail_diff/timeline_builder.rbs +31 -0
  72. data/sig/generated/paper_trail_diff/timeline_snapshot_provider.rbs +17 -0
  73. data/sig/generated/paper_trail_diff/value_objects.rbs +87 -0
  74. data/sig/generated/paper_trail_diff/version.rbs +5 -0
  75. data/sig/generated/paper_trail_diff/version_range.rbs +35 -0
  76. data/sig/generated/paper_trail_diff.rbs +56 -0
  77. metadata +144 -0
@@ -0,0 +1,56 @@
1
+ # Generated from lib/paper_trail_diff.rb with RBS::Inline
2
+
3
+ # Structured version comparison for PaperTrail.
4
+ module PaperTrailDiff
5
+ DEFAULT_IGNORED_ATTRIBUTES: untyped
6
+
7
+ SUPPORTED_ASSOCIATION_MACROS: untyped
8
+
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
12
+
13
+ # 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]
16
+
17
+ # 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]
20
+
21
+ # 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
24
+
25
+ # Returns the association macros this release can normalize.
26
+ # : () -> Array[Symbol]
27
+ def self.supported_association_macros: () -> Array[Symbol]
28
+
29
+ # Discovers supported, finite association paths for a model or record.
30
+ # : (untyped, ?max_depth: Integer) -> Array[AssociationDescriptor]
31
+ def self.association_paths: (untyped, ?max_depth: Integer) -> Array[AssociationDescriptor]
32
+
33
+ # Reports known reconstruction hazards without mutating application state.
34
+ # : (untyped, untyped, ?associations: Array[String | Symbol]) -> DiagnosticReport
35
+ def self.diagnose: (untyped, untyped, ?associations: Array[String | Symbol]) -> DiagnosticReport
36
+ end
37
+
38
+ module PaperTrailDiff
39
+ type snapshot_attributes = Hash[untyped, untyped]
40
+
41
+ type snapshot_associations = Hash[untyped, AssociationSnapshot]
42
+
43
+ type attribute_changes = Hash[String, ValueChange]
44
+
45
+ type association_diff = ToOneAssociationDiff | CollectionAssociationDiff
46
+
47
+ type association_diffs = Hash[String, association_diff]
48
+
49
+ type association_snapshots = Hash[String, AssociationSnapshot]
50
+
51
+ type identity = Array[untyped]
52
+
53
+ type ignore_option = Array[String | Symbol] | Hash[String | Symbol, untyped]
54
+
55
+ type reference_key = :type | :id | "type" | "id"
56
+ end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: paper_trail_diff
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Williams
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: paper_trail
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '16'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '18'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '16'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '18'
32
+ description: |
33
+ paper_trail_diff compares reified PaperTrail histories and returns structured
34
+ attribute and explicitly selected association changes.
35
+ email:
36
+ - alex.williams.dev@gmail.com
37
+ executables: []
38
+ extensions: []
39
+ extra_rdoc_files: []
40
+ files:
41
+ - CHANGELOG.md
42
+ - LICENSE
43
+ - README.md
44
+ - lib/paper_trail_diff.rb
45
+ - lib/paper_trail_diff/activity_boundary.rb
46
+ - lib/paper_trail_diff/activity_event.rb
47
+ - lib/paper_trail_diff/activity_event_snapshot_refresher.rb
48
+ - lib/paper_trail_diff/activity_range.rb
49
+ - lib/paper_trail_diff/activity_root_snapshot_refresher.rb
50
+ - lib/paper_trail_diff/activity_snapshot_sequence.rb
51
+ - lib/paper_trail_diff/activity_timeline_builder.rb
52
+ - lib/paper_trail_diff/activity_version_collector.rb
53
+ - lib/paper_trail_diff/analysis.rb
54
+ - lib/paper_trail_diff/association_discovery.rb
55
+ - lib/paper_trail_diff/association_traversal.rb
56
+ - lib/paper_trail_diff/branch_snapshot_refresher.rb
57
+ - lib/paper_trail_diff/configuration.rb
58
+ - lib/paper_trail_diff/diagnostics.rb
59
+ - lib/paper_trail_diff/endpoint.rb
60
+ - lib/paper_trail_diff/engine.rb
61
+ - lib/paper_trail_diff/errors.rb
62
+ - lib/paper_trail_diff/historical_association_reifier.rb
63
+ - lib/paper_trail_diff/historical_snapshot_store.rb
64
+ - lib/paper_trail_diff/live_association_reader.rb
65
+ - lib/paper_trail_diff/paper_trail_adapter.rb
66
+ - lib/paper_trail_diff/prepared_association_reifier.rb
67
+ - lib/paper_trail_diff/prepared_edge_loader.rb
68
+ - lib/paper_trail_diff/prepared_history.rb
69
+ - lib/paper_trail_diff/prepared_history_loader.rb
70
+ - lib/paper_trail_diff/prepared_record_index.rb
71
+ - lib/paper_trail_diff/snapshot.rb
72
+ - lib/paper_trail_diff/snapshot_normalizer.rb
73
+ - lib/paper_trail_diff/step.rb
74
+ - lib/paper_trail_diff/support.rb
75
+ - lib/paper_trail_diff/timeline_builder.rb
76
+ - lib/paper_trail_diff/timeline_snapshot_provider.rb
77
+ - lib/paper_trail_diff/value_objects.rb
78
+ - lib/paper_trail_diff/version.rb
79
+ - lib/paper_trail_diff/version_range.rb
80
+ - sig/generated/paper_trail_diff.rbs
81
+ - sig/generated/paper_trail_diff/activity_boundary.rbs
82
+ - sig/generated/paper_trail_diff/activity_event.rbs
83
+ - sig/generated/paper_trail_diff/activity_event_snapshot_refresher.rbs
84
+ - sig/generated/paper_trail_diff/activity_range.rbs
85
+ - sig/generated/paper_trail_diff/activity_root_snapshot_refresher.rbs
86
+ - sig/generated/paper_trail_diff/activity_snapshot_sequence.rbs
87
+ - sig/generated/paper_trail_diff/activity_timeline_builder.rbs
88
+ - sig/generated/paper_trail_diff/activity_version_collector.rbs
89
+ - sig/generated/paper_trail_diff/analysis.rbs
90
+ - sig/generated/paper_trail_diff/association_discovery.rbs
91
+ - sig/generated/paper_trail_diff/association_traversal.rbs
92
+ - sig/generated/paper_trail_diff/branch_snapshot_refresher.rbs
93
+ - sig/generated/paper_trail_diff/configuration.rbs
94
+ - sig/generated/paper_trail_diff/diagnostics.rbs
95
+ - sig/generated/paper_trail_diff/endpoint.rbs
96
+ - sig/generated/paper_trail_diff/engine.rbs
97
+ - sig/generated/paper_trail_diff/errors.rbs
98
+ - sig/generated/paper_trail_diff/historical_association_reifier.rbs
99
+ - sig/generated/paper_trail_diff/historical_snapshot_store.rbs
100
+ - sig/generated/paper_trail_diff/live_association_reader.rbs
101
+ - sig/generated/paper_trail_diff/paper_trail_adapter.rbs
102
+ - sig/generated/paper_trail_diff/prepared_association_reifier.rbs
103
+ - sig/generated/paper_trail_diff/prepared_edge_loader.rbs
104
+ - sig/generated/paper_trail_diff/prepared_history.rbs
105
+ - sig/generated/paper_trail_diff/prepared_history_loader.rbs
106
+ - sig/generated/paper_trail_diff/prepared_record_index.rbs
107
+ - sig/generated/paper_trail_diff/snapshot.rbs
108
+ - sig/generated/paper_trail_diff/snapshot_normalizer.rbs
109
+ - sig/generated/paper_trail_diff/step.rbs
110
+ - sig/generated/paper_trail_diff/support.rbs
111
+ - sig/generated/paper_trail_diff/timeline_builder.rbs
112
+ - sig/generated/paper_trail_diff/timeline_snapshot_provider.rbs
113
+ - sig/generated/paper_trail_diff/value_objects.rbs
114
+ - sig/generated/paper_trail_diff/version.rbs
115
+ - sig/generated/paper_trail_diff/version_range.rbs
116
+ homepage: https://github.com/aheathwilliams/paper_trail_diff
117
+ licenses:
118
+ - MIT
119
+ metadata:
120
+ allowed_push_host: https://rubygems.org
121
+ bug_tracker_uri: https://github.com/aheathwilliams/paper_trail_diff/issues
122
+ changelog_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.1.0/CHANGELOG.md
123
+ documentation_uri: https://github.com/aheathwilliams/paper_trail_diff/blob/v0.1.0/README.md
124
+ homepage_uri: https://github.com/aheathwilliams/paper_trail_diff
125
+ rubygems_mfa_required: 'true'
126
+ source_code_uri: https://github.com/aheathwilliams/paper_trail_diff/tree/v0.1.0
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '3.1'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubygems_version: 4.0.16
142
+ specification_version: 4
143
+ summary: Structured endpoint and activity diffs for PaperTrail
144
+ test_files: []