timelines 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e0fcaa71f51ce05f909e1476d3697c19cbce690f581357a4dcc0507154456dd
4
- data.tar.gz: 8d8f0580bd04c4dca4f7f64d17b889a68eb11d689f006d24aeff8364632aed28
3
+ metadata.gz: b596c9a86e1cb9a8773f9394a6d71ab6f2e4cd521f89eda1f6ac434cbf059e42
4
+ data.tar.gz: 57236b6ed3b91ebe95afabedf0d192c277dd5d6127d810504a2f4b9c6a0db487
5
5
  SHA512:
6
- metadata.gz: 80767881c109435b0f5b2e6c1da160f7cd57dd21d2c0b2ad0a0c6793beff2a930e11b2f159b0327ed813dd28435e461818cc533b5c8c244ead969b877d6c0f88
7
- data.tar.gz: cbc54257925c045ea37ac59b85bd3f842060f6d28665cee5dd96a70a4b63affb6202a905c108cd74787186688e719a4abc64622998b3a739f850cf740a0a0417
6
+ metadata.gz: 8d02c52990e934303148e6ad8a2bbc021911d3fe21522ba8336ed481334a300e2c4419526dd516b1f1f986c14d5d6c6f6a4d92ece505354d2968d74c5a0b8628
7
+ data.tar.gz: 48248ca65e37a9aed7757f5c129385f25a2047845e252444f5a04394d701f435a439a8487ddf385c840501474287769791c345eba62f90270afc2f02347b516c
data/README.md CHANGED
@@ -10,6 +10,12 @@ include Timelines::Ephemeral
10
10
 
11
11
  This gives you the following Instance methods:
12
12
  ```ruby
13
+ # Returns an AuditTrail object containing the resource and any associated events, in chronological order
14
+ .audit_trail
15
+
16
+ # Returns an AuditTrail object containing the resource and any associated events, in reverse order
17
+ .audit_trail(reverse: true)
18
+
13
19
  # Returns a boolean indicating whether the record is currently active
14
20
  .active?
15
21
 
@@ -0,0 +1,15 @@
1
+ module Timelines
2
+ class AuditTrail
3
+ include ActiveModel::Model
4
+ include ActiveModel::Attributes
5
+ include ActiveModel::Validations
6
+
7
+ attribute :resource
8
+ attribute :reverse
9
+ attribute :events
10
+
11
+ def events
12
+ reverse ? resource.events.reverse : resource.events
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ require "active_support/concern"
2
+
3
+ module Timelines
4
+ module HasAuditTrail
5
+ extend ActiveSupport::Concern
6
+
7
+ def audit_trail(reverse: false)
8
+ ::Timelines::AuditTrail.new(resource: self, reverse: reverse)
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Timelines
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/timelines.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "timelines/version"
2
2
  require "timelines/models/concerns/ephemeral"
3
3
  require "timelines/models/concerns/has_events"
4
+ require "timelines/models/concerns/has_audit_trail"
5
+ require "timelines/models/concerns/audit_trail"
4
6
  require "timelines/models/event"
5
7
 
6
8
  module Timelines
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timelines
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Gilchrist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-18 00:00:00.000000000 Z
11
+ date: 2024-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -39,7 +39,9 @@ files:
39
39
  - lib/generators/timelines/install/templates/create_timelines_events.rb
40
40
  - lib/tasks/timelines_tasks.rake
41
41
  - lib/timelines.rb
42
+ - lib/timelines/models/concerns/audit_trail.rb
42
43
  - lib/timelines/models/concerns/ephemeral.rb
44
+ - lib/timelines/models/concerns/has_audit_trail.rb
43
45
  - lib/timelines/models/concerns/has_events.rb
44
46
  - lib/timelines/models/event.rb
45
47
  - lib/timelines/version.rb
@@ -65,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
67
  - !ruby/object:Gem::Version
66
68
  version: '0'
67
69
  requirements: []
68
- rubygems_version: 3.5.4
70
+ rubygems_version: 3.5.10
69
71
  signing_key:
70
72
  specification_version: 4
71
73
  summary: Library for managing historical records.