loggable_activity 0.2.1 → 0.5.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +29 -42
- data/.vscode/commands.json +2 -2
- data/.vscode/terminals.json +8 -8
- data/CHEAT_SHEET.md +31 -0
- data/MIT-LICENSE +21 -0
- data/README.md +31 -45
- data/Rakefile +6 -4
- data/app/assets/config/loggable_activity_manifest.js +4 -0
- data/app/assets/javascripts/loggable_activity/application.js +2 -0
- data/app/assets/stylesheets/loggable_activity/application.scss +20 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/controllers/loggable_activity/activities_controller.rb +12 -0
- data/app/controllers/loggable_activity/application_controller.rb +6 -0
- data/app/helpers/loggable_activity/activities_helper.rb +17 -0
- data/app/helpers/loggable_activity/application_helper.rb +6 -0
- data/app/jobs/loggable_activity/application_job.rb +6 -0
- data/app/mailers/loggable_activity/application_mailer.rb +8 -0
- data/app/models/loggable_activity/application_record.rb +7 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_first_page.html.erb +14 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_gap.html.erb +8 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_last_page.html.erb +13 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_next_page.html.erb +13 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_page.html.erb +14 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_paginator.html.erb +27 -0
- data/app/views/kaminari/kaminari-turbo-bootstrap/_prev_page.html.erb +14 -0
- data/app/views/layouts/loggable_activity/application.html.erb +19 -0
- data/app/views/loggable_activity/activities/_activities.html.erb +56 -0
- data/app/views/loggable_activity/activities/index.html.erb +7 -0
- data/app/views/loggable_activity/activities/show.html.erb +2 -0
- data/config/initializers/kaminari_config.rb +14 -0
- data/config/routes.rb +7 -0
- data/{lib/generators/loggable_activity/templates/create_loggable_activities.rb → db/migrate/20240702092648_create_loggable_activity_tables.rb} +18 -10
- data/git-org/HEAD +1 -0
- data/git-org/config +7 -0
- data/git-org/description +1 -0
- data/git-org/hooks/applypatch-msg.sample +15 -0
- data/git-org/hooks/commit-msg.sample +24 -0
- data/git-org/hooks/fsmonitor-watchman.sample +174 -0
- data/git-org/hooks/post-update.sample +8 -0
- data/git-org/hooks/pre-applypatch.sample +14 -0
- data/git-org/hooks/pre-commit.sample +49 -0
- data/git-org/hooks/pre-merge-commit.sample +13 -0
- data/git-org/hooks/pre-push.sample +53 -0
- data/git-org/hooks/pre-rebase.sample +169 -0
- data/git-org/hooks/pre-receive.sample +24 -0
- data/git-org/hooks/prepare-commit-msg.sample +42 -0
- data/git-org/hooks/push-to-checkout.sample +78 -0
- data/git-org/hooks/update.sample +128 -0
- data/git-org/info/exclude +6 -0
- data/lib/loggable_activity/activity.rb +3 -3
- data/lib/{schemas → loggable_activity}/config_schema.json +3 -3
- data/lib/loggable_activity/configuration.rb +51 -75
- data/lib/loggable_activity/data_owner.rb +0 -1
- data/lib/loggable_activity/encryption.rb +16 -7
- data/lib/loggable_activity/encryption_key.rb +4 -7
- data/lib/loggable_activity/engine.rb +27 -0
- data/lib/loggable_activity/error.rb +0 -10
- data/lib/loggable_activity/hooks.rb +10 -5
- data/lib/loggable_activity/payload.rb +8 -11
- data/lib/loggable_activity/sanitizer.rb +6 -2
- data/lib/loggable_activity/services/base_payloads_builder.rb +14 -5
- data/lib/loggable_activity/services/destroy_payloads_builder.rb +2 -1
- data/lib/loggable_activity/services/payloads_builder.rb +9 -2
- data/lib/loggable_activity/services/update_payloads_builder.rb +30 -2
- data/lib/loggable_activity/version.rb +1 -1
- data/lib/loggable_activity.rb +51 -14
- data/lib/tasks/loggable_activity_tasks.rake +6 -0
- metadata +129 -117
- data/.document +0 -1
- data/.nojekyll +0 -1
- data/.rspec +0 -3
- data/CONSIDERTIONS.md +0 -129
- data/GETTING-STARTED.md +0 -119
- data/LICENSE.txt +0 -21
- data/PAYLOAD_EXAMPLE.md +0 -63
- data/ROADMAP.md +0 -23
- data/docs/LoggableActivity/Activity.html +0 -555
- data/docs/LoggableActivity/Configuration.html +0 -330
- data/docs/LoggableActivity/ConfigurationError.html +0 -148
- data/docs/LoggableActivity/DataOwner.html +0 -138
- data/docs/LoggableActivity/Encryption.html +0 -234
- data/docs/LoggableActivity/EncryptionError.html +0 -145
- data/docs/LoggableActivity/EncryptionKey.html +0 -351
- data/docs/LoggableActivity/Error.html +0 -145
- data/docs/LoggableActivity/Hooks.html +0 -759
- data/docs/LoggableActivity/Payload.html +0 -432
- data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +0 -442
- data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +0 -395
- data/docs/LoggableActivity/Services/PayloadsBuilder.html +0 -342
- data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +0 -490
- data/docs/LoggableActivity/Services.html +0 -93
- data/docs/LoggableActivity.html +0 -102
- data/docs/created.rid +0 -14
- data/docs/css/fonts.css +0 -167
- data/docs/css/rdoc.css +0 -687
- data/docs/fonts/Lato-Light.ttf +0 -0
- data/docs/fonts/Lato-LightItalic.ttf +0 -0
- data/docs/fonts/Lato-Regular.ttf +0 -0
- data/docs/fonts/Lato-RegularItalic.ttf +0 -0
- data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
- data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
- data/docs/images/add.png +0 -0
- data/docs/images/arrow_up.png +0 -0
- data/docs/images/brick.png +0 -0
- data/docs/images/brick_link.png +0 -0
- data/docs/images/bug.png +0 -0
- data/docs/images/bullet_black.png +0 -0
- data/docs/images/bullet_toggle_minus.png +0 -0
- data/docs/images/bullet_toggle_plus.png +0 -0
- data/docs/images/date.png +0 -0
- data/docs/images/delete.png +0 -0
- data/docs/images/find.png +0 -0
- data/docs/images/loadingAnimation.gif +0 -0
- data/docs/images/macFFBgHack.png +0 -0
- data/docs/images/package.png +0 -0
- data/docs/images/page_green.png +0 -0
- data/docs/images/page_white_text.png +0 -0
- data/docs/images/page_white_width.png +0 -0
- data/docs/images/plugin.png +0 -0
- data/docs/images/ruby.png +0 -0
- data/docs/images/tag_blue.png +0 -0
- data/docs/images/tag_green.png +0 -0
- data/docs/images/transparent.png +0 -0
- data/docs/images/wrench.png +0 -0
- data/docs/images/wrench_orange.png +0 -0
- data/docs/images/zoom.png +0 -0
- data/docs/index.html +0 -99
- data/docs/js/darkfish.js +0 -97
- data/docs/js/navigation.js +0 -105
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search.js +0 -110
- data/docs/js/search_index.js +0 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js +0 -229
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +0 -617
- data/help/loggable_activity_help.txt +0 -19
- data/lib/generators/.DS_Store +0 -0
- data/lib/generators/loggable_activity/.DS_Store +0 -0
- data/lib/generators/loggable_activity/install_generator.rb +0 -109
- data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
- data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +0 -30
- data/lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml +0 -36
- data/lib/generators/loggable_activity/templates/config/loggable_activity.yaml +0 -29
- data/lib/generators/loggable_activity/templates/loggable_activity.en.yaml +0 -36
- data/pkg/loggable_activity-0.1.35.gem +0 -0
- data/sig/loggable_activity.rbs +0 -4
- /data/{.rspec_status → app/assets/images/loggable_activity/.keep} +0 -0
- /data/lib/{generators/loggable_activity/templates → loggable_activity/concerns}/current_user.rb +0 -0
data/PAYLOAD_EXAMPLE.md
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
# Example of a payload attributes
|
2
|
-
```
|
3
|
-
{
|
4
|
-
'actor_type' => 'User'
|
5
|
-
'actor_id' => "12"
|
6
|
-
'action' => 'user.update'
|
7
|
-
'payloads' =>
|
8
|
-
[
|
9
|
-
{
|
10
|
-
:related_to_activity_as => 'primary',
|
11
|
-
:record_type => 'User',
|
12
|
-
:record_id => 7,
|
13
|
-
:route => 'show_user',
|
14
|
-
'attrs' => {
|
15
|
-
:first_name =>
|
16
|
-
'changed' =>
|
17
|
-
{
|
18
|
-
'from' => 'Vo5qr2ZXdnUNvZlFPzPivVnZ4JJMHvftPKR9F5ZidDQ=\n',
|
19
|
-
'to' => 'c4849GlicNeNw/7arZBRu6BCAYNlc7bjfHfpPv4Ra1I=\n'
|
20
|
-
}
|
21
|
-
last_name => 'Vo9apehbkapd=\n',
|
22
|
-
'age' => {
|
23
|
-
'from' => 'Whybq9OToAIYjYlP2gbXaieKDXH5Ut/uXc+M9R1OAk8=\n',
|
24
|
-
'to' => 'SUvxCLFBl3HUxqYihoj7VU3Ai/GK/ji5APJZNwbERqQ=\n'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
},
|
28
|
-
{
|
29
|
-
:related_to_activity_as => 'has_one'
|
30
|
-
:record_type => 'Demo::UserProfile',
|
31
|
-
:record_id => 7,
|
32
|
-
:route => 'show_user'
|
33
|
-
:attrs => {,
|
34
|
-
:sex =>
|
35
|
-
'changed' =>
|
36
|
-
{
|
37
|
-
'from' => 'aNY4G6dyaYyg7xiPwGMnGORsMvt8rzOKl7S+sEq1jYY=\n',
|
38
|
-
'to' => 'Pqo5vaojL1SV0DMLL5WQsuNjxcZY+Av/ckCbT00ZKUk=\n'
|
39
|
-
},
|
40
|
-
religion => 'christianity'
|
41
|
-
}
|
42
|
-
},
|
43
|
-
{
|
44
|
-
:related_to_activity_as => 'belongs_to,
|
45
|
-
:changed =>
|
46
|
-
:payload_attrs => {
|
47
|
-
:from => {
|
48
|
-
:state => 'current_association'
|
49
|
-
:record_type => 'Demo::Address',
|
50
|
-
:record_id => 7,
|
51
|
-
:route => 'show_address'
|
52
|
-
|
53
|
-
|
54
|
-
}
|
55
|
-
:to => {
|
56
|
-
|
57
|
-
}
|
58
|
-
|
59
|
-
}
|
60
|
-
}
|
61
|
-
]
|
62
|
-
}
|
63
|
-
```
|
data/ROADMAP.md
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# Roadmap
|
2
|
-
Outline of steps to get the LoggableActivity adapted.
|
3
|
-
|
4
|
-
### Demo project
|
5
|
-
Nothing is better than gain som experience by getting som real world tests and experiences.
|
6
|
-
<br/>
|
7
|
-
Try the [Live Demo]("https://loggableactivity-efe7b931c886.herokuapp.com/") here or download it from [Github]("https://github.com/maxgronlund/LoggableActivityDemoApp") here
|
8
|
-
|
9
|
-
|
10
|
-
### Open Source
|
11
|
-
More eyes and brains on the project wil make it mature and better.
|
12
|
-
|
13
|
-
### Investigations
|
14
|
-
- Does there exists a protocol for activity logging
|
15
|
-
- Will a bigger company like platformatec sponsor the project
|
16
|
-
- Legal approval, official, medical approval.
|
17
|
-
- RFC for protocol
|
18
|
-
- Commercial potentials, business models.
|
19
|
-
- Explainers
|
20
|
-
- Documentation RDoc
|
21
|
-
- Rest API
|
22
|
-
- GraphQL API
|
23
|
-
- Integration with other languages, node, elixir...
|
@@ -1,555 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
|
3
|
-
<html>
|
4
|
-
<head>
|
5
|
-
<meta charset="UTF-8">
|
6
|
-
|
7
|
-
<title>class LoggableActivity::Activity - RDoc Documentation</title>
|
8
|
-
|
9
|
-
<script type="text/javascript">
|
10
|
-
var rdoc_rel_prefix = "../";
|
11
|
-
var index_rel_prefix = "../";
|
12
|
-
</script>
|
13
|
-
|
14
|
-
<script src="../js/navigation.js" defer></script>
|
15
|
-
<script src="../js/search.js" defer></script>
|
16
|
-
<script src="../js/search_index.js" defer></script>
|
17
|
-
<script src="../js/searcher.js" defer></script>
|
18
|
-
<script src="../js/darkfish.js" defer></script>
|
19
|
-
|
20
|
-
<link href="../css/fonts.css" rel="stylesheet">
|
21
|
-
<link href="../css/rdoc.css" rel="stylesheet">
|
22
|
-
|
23
|
-
|
24
|
-
<body id="top" role="document" class="class">
|
25
|
-
<nav role="navigation">
|
26
|
-
<div id="project-navigation">
|
27
|
-
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
|
28
|
-
<h2>
|
29
|
-
<a href="../index.html" rel="home">Home</a>
|
30
|
-
</h2>
|
31
|
-
|
32
|
-
<div id="table-of-contents-navigation">
|
33
|
-
<a href="../table_of_contents.html#pages">Pages</a>
|
34
|
-
<a href="../table_of_contents.html#classes">Classes</a>
|
35
|
-
<a href="../table_of_contents.html#methods">Methods</a>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div id="search-section" role="search" class="project-section initially-hidden">
|
40
|
-
<form action="#" method="get" accept-charset="utf-8">
|
41
|
-
<div id="search-field-wrapper">
|
42
|
-
<input id="search-field" role="combobox" aria-label="Search"
|
43
|
-
aria-autocomplete="list" aria-controls="search-results"
|
44
|
-
type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
|
45
|
-
title="Type to search, Up and Down to navigate, Enter to load">
|
46
|
-
</div>
|
47
|
-
|
48
|
-
<ul id="search-results" aria-label="Search Results"
|
49
|
-
aria-busy="false" aria-expanded="false"
|
50
|
-
aria-atomic="false" class="initially-hidden"></ul>
|
51
|
-
</form>
|
52
|
-
</div>
|
53
|
-
|
54
|
-
</div>
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
<div id="class-metadata">
|
59
|
-
|
60
|
-
|
61
|
-
<div id="parent-class-section" class="nav-section">
|
62
|
-
<h3>Parent</h3>
|
63
|
-
|
64
|
-
<p class="link">ActiveRecord::Base
|
65
|
-
</div>
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
<!-- Method Quickref -->
|
71
|
-
<div id="method-list-section" class="nav-section">
|
72
|
-
<h3>Methods</h3>
|
73
|
-
|
74
|
-
<ul class="link-list" role="directory">
|
75
|
-
<li ><a href="#method-c-activities_for_actor">::activities_for_actor</a>
|
76
|
-
<li ><a href="#method-c-last">::last</a>
|
77
|
-
<li ><a href="#method-c-latest">::latest</a>
|
78
|
-
<li ><a href="#method-i-actor_deleted-3F">#actor_deleted?</a>
|
79
|
-
<li ><a href="#method-i-actor_display_name">#actor_display_name</a>
|
80
|
-
<li ><a href="#method-i-actor_secret_key">#actor_secret_key</a>
|
81
|
-
<li ><a href="#method-i-attrs">#attrs</a>
|
82
|
-
<li ><a href="#method-i-must_have_at_least_one_payload">#must_have_at_least_one_payload</a>
|
83
|
-
<li ><a href="#method-i-ordered_payloads">#ordered_payloads</a>
|
84
|
-
<li ><a href="#method-i-payloads_attrs">#payloads_attrs</a>
|
85
|
-
<li ><a href="#method-i-primary_payload">#primary_payload</a>
|
86
|
-
<li ><a href="#method-i-primary_route">#primary_route</a>
|
87
|
-
<li ><a href="#method-i-record_display_name">#record_display_name</a>
|
88
|
-
<li ><a href="#method-i-record_key">#record_key</a>
|
89
|
-
</ul>
|
90
|
-
</div>
|
91
|
-
|
92
|
-
</div>
|
93
|
-
</nav>
|
94
|
-
|
95
|
-
<main role="main" aria-labelledby="class-LoggableActivity::Activity">
|
96
|
-
<h1 id="class-LoggableActivity::Activity" class="class">
|
97
|
-
class LoggableActivity::Activity
|
98
|
-
</h1>
|
99
|
-
|
100
|
-
<section class="description">
|
101
|
-
|
102
|
-
<p>Represents one action in the activity log.</p>
|
103
|
-
|
104
|
-
</section>
|
105
|
-
|
106
|
-
<section id="5Buntitled-5D" class="documentation-section">
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
|
113
|
-
<header>
|
114
|
-
<h3>Public Class Methods</h3>
|
115
|
-
</header>
|
116
|
-
|
117
|
-
<div id="method-c-activities_for_actor" class="method-detail ">
|
118
|
-
<div class="method-header">
|
119
|
-
<div class="method-heading">
|
120
|
-
<span class="method-name">activities_for_actor</span><span
|
121
|
-
class="method-args">(actor, limit = 20, params = { offset: 0 })</span>
|
122
|
-
<span class="method-click-advice">click to toggle source</span>
|
123
|
-
</div>
|
124
|
-
</div>
|
125
|
-
|
126
|
-
<div class="method-description">
|
127
|
-
<p>Returns a list of activities for a given actor.</p>
|
128
|
-
|
129
|
-
<div class="method-source-code" id="activities_for_actor-source">
|
130
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 124</span>
|
131
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">activities_for_actor</span>(<span class="ruby-identifier">actor</span>, <span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
|
132
|
-
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>.<span class="ruby-identifier">latest</span>(<span class="ruby-identifier">limit</span>, <span class="ruby-identifier">params</span>).<span class="ruby-identifier">where</span>(<span class="ruby-value">actor:</span>)
|
133
|
-
<span class="ruby-keyword">end</span></pre>
|
134
|
-
</div>
|
135
|
-
</div>
|
136
|
-
|
137
|
-
|
138
|
-
</div>
|
139
|
-
|
140
|
-
<div id="method-c-last" class="method-detail ">
|
141
|
-
<div class="method-header">
|
142
|
-
<div class="method-heading">
|
143
|
-
<span class="method-name">last</span><span
|
144
|
-
class="method-args">(limit = 1)</span>
|
145
|
-
<span class="method-click-advice">click to toggle source</span>
|
146
|
-
</div>
|
147
|
-
</div>
|
148
|
-
|
149
|
-
<div class="method-description">
|
150
|
-
<p>Returns the last activity. This is done to support of UUID primary keys.</p>
|
151
|
-
|
152
|
-
<div class="method-source-code" id="last-source">
|
153
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 142</span>
|
154
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">last</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">1</span>)
|
155
|
-
<span class="ruby-keyword">return</span> <span class="ruby-identifier">latest</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">first</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">limit</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
156
|
-
|
157
|
-
<span class="ruby-identifier">latest</span>(<span class="ruby-identifier">limit</span>)
|
158
|
-
<span class="ruby-keyword">end</span></pre>
|
159
|
-
</div>
|
160
|
-
</div>
|
161
|
-
|
162
|
-
|
163
|
-
</div>
|
164
|
-
|
165
|
-
<div id="method-c-latest" class="method-detail ">
|
166
|
-
<div class="method-header">
|
167
|
-
<div class="method-heading">
|
168
|
-
<span class="method-name">latest</span><span
|
169
|
-
class="method-args">(limit = 20, params = { offset: 0 })</span>
|
170
|
-
<span class="method-click-advice">click to toggle source</span>
|
171
|
-
</div>
|
172
|
-
</div>
|
173
|
-
|
174
|
-
<div class="method-description">
|
175
|
-
<p>Returns a list of activities ordered by creation date. This is done to support UUID primary keys.</p>
|
176
|
-
|
177
|
-
<div class="method-source-code" id="latest-source">
|
178
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 130</span>
|
179
|
-
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">latest</span>(<span class="ruby-identifier">limit</span> = <span class="ruby-value">20</span>, <span class="ruby-identifier">params</span> = { <span class="ruby-value">offset:</span> <span class="ruby-value">0</span> })
|
180
|
-
<span class="ruby-identifier">offset</span> = <span class="ruby-identifier">params</span>[<span class="ruby-value">:offset</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
|
181
|
-
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Activity</span>
|
182
|
-
.<span class="ruby-identifier">all</span>
|
183
|
-
.<span class="ruby-identifier">order</span>(<span class="ruby-value">created_at:</span> <span class="ruby-value">:desc</span>)
|
184
|
-
.<span class="ruby-identifier">includes</span>(<span class="ruby-value">payloads:</span> <span class="ruby-value">:encryption_key</span>)
|
185
|
-
.<span class="ruby-identifier">offset</span>(<span class="ruby-identifier">offset</span>)
|
186
|
-
.<span class="ruby-identifier">limit</span>(<span class="ruby-identifier">limit</span>)
|
187
|
-
<span class="ruby-keyword">end</span></pre>
|
188
|
-
</div>
|
189
|
-
</div>
|
190
|
-
|
191
|
-
|
192
|
-
</div>
|
193
|
-
|
194
|
-
</section>
|
195
|
-
|
196
|
-
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
|
197
|
-
<header>
|
198
|
-
<h3>Public Instance Methods</h3>
|
199
|
-
</header>
|
200
|
-
|
201
|
-
<div id="method-i-actor_display_name" class="method-detail ">
|
202
|
-
<div class="method-header">
|
203
|
-
<div class="method-heading">
|
204
|
-
<span class="method-name">actor_display_name</span><span
|
205
|
-
class="method-args">()</span>
|
206
|
-
<span class="method-click-advice">click to toggle source</span>
|
207
|
-
</div>
|
208
|
-
</div>
|
209
|
-
|
210
|
-
<div class="method-description">
|
211
|
-
<p>Returns the display name for a actor. what method to use if defined in ‘/config/loggable_activity.yaml’</p>
|
212
|
-
|
213
|
-
<p>Example:</p>
|
214
|
-
|
215
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">actor_display_name</span>
|
216
|
-
</pre>
|
217
|
-
|
218
|
-
<p>Returns:</p>
|
219
|
-
|
220
|
-
<pre class="ruby"><span class="ruby-string">"Elvis Presley"</span>
|
221
|
-
</pre>
|
222
|
-
|
223
|
-
<div class="method-source-code" id="actor_display_name-source">
|
224
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 117</span>
|
225
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_display_name</span>
|
226
|
-
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">actor_deleted?</span>
|
227
|
-
|
228
|
-
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">Encryption</span>.<span class="ruby-identifier">decrypt</span>(<span class="ruby-identifier">encrypted_actor_name</span>, <span class="ruby-identifier">actor_secret_key</span>)
|
229
|
-
<span class="ruby-keyword">end</span></pre>
|
230
|
-
</div>
|
231
|
-
</div>
|
232
|
-
|
233
|
-
|
234
|
-
</div>
|
235
|
-
|
236
|
-
<div id="method-i-attrs" class="method-detail ">
|
237
|
-
<div class="method-header">
|
238
|
-
<div class="method-heading">
|
239
|
-
<span class="method-name">attrs</span><span
|
240
|
-
class="method-args">()</span>
|
241
|
-
<span class="method-click-advice">click to toggle source</span>
|
242
|
-
</div>
|
243
|
-
</div>
|
244
|
-
|
245
|
-
<div class="method-description">
|
246
|
-
<p>Returns an array of hashes, each representing an activity’s attributes and its associated relations. The structure and relations to include are specified in ‘config/loggable_activity.yaml’. This format is designed for UI display purposes.</p>
|
247
|
-
|
248
|
-
<p>Each hash in the array contains:</p>
|
249
|
-
<ul><li>
|
250
|
-
<p>:record_type: The class name of the record.</p>
|
251
|
-
</li><li>
|
252
|
-
<p>:related_to_activity_as: A descriptor of the payload’s role (e.g., ‘primary_payload’ or ‘current_association’).</p>
|
253
|
-
</li><li>
|
254
|
-
<p>:attrs: A hash of the record’s attributes.</p>
|
255
|
-
</li></ul>
|
256
|
-
|
257
|
-
<p>Example usage:</p>
|
258
|
-
|
259
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">attrs</span>
|
260
|
-
</pre>
|
261
|
-
|
262
|
-
<p>Sample return value:</p>
|
263
|
-
|
264
|
-
<pre>[
|
265
|
-
{ record_type: MODEL_NAME, related_to_activity_as: "primary_payload", attrs: { "KEY" => "VALUE", ... } },
|
266
|
-
{ record_type: MODEL_NAME, related_to_activity_as: "current_association", attrs: { "KEY" => "VALUE", ... } },
|
267
|
-
...
|
268
|
-
]</pre>
|
269
|
-
|
270
|
-
<div class="method-source-code" id="attrs-source">
|
271
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 37</span>
|
272
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attrs</span>
|
273
|
-
{
|
274
|
-
<span class="ruby-value">actor_type:</span>,
|
275
|
-
<span class="ruby-value">actor_id:</span>,
|
276
|
-
<span class="ruby-value">action:</span>,
|
277
|
-
<span class="ruby-value">actor_display_name:</span>,
|
278
|
-
<span class="ruby-value">record_display_name:</span>,
|
279
|
-
<span class="ruby-value">payloads:</span> <span class="ruby-identifier">payloads_attrs</span>
|
280
|
-
}
|
281
|
-
<span class="ruby-keyword">end</span></pre>
|
282
|
-
</div>
|
283
|
-
</div>
|
284
|
-
|
285
|
-
|
286
|
-
</div>
|
287
|
-
|
288
|
-
<div id="method-i-payloads_attrs" class="method-detail ">
|
289
|
-
<div class="method-header">
|
290
|
-
<div class="method-heading">
|
291
|
-
<span class="method-name">payloads_attrs</span><span
|
292
|
-
class="method-args">()</span>
|
293
|
-
<span class="method-click-advice">click to toggle source</span>
|
294
|
-
</div>
|
295
|
-
</div>
|
296
|
-
|
297
|
-
<div class="method-description">
|
298
|
-
|
299
|
-
|
300
|
-
<div class="method-source-code" id="payloads_attrs-source">
|
301
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 48</span>
|
302
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">payloads_attrs</span>
|
303
|
-
<span class="ruby-identifier">ordered_payloads</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">payload</span><span class="ruby-operator">|</span>
|
304
|
-
{
|
305
|
-
<span class="ruby-value">related_to_activity_as:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">related_to_activity_as</span>,
|
306
|
-
<span class="ruby-value">record_type:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span>,
|
307
|
-
<span class="ruby-value">record_id:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">deleted?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_id</span>,
|
308
|
-
<span class="ruby-value">attrs:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">attrs</span>,
|
309
|
-
<span class="ruby-value">route:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">payload_route</span>,
|
310
|
-
<span class="ruby-value">record_display_name:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_display_name</span>,
|
311
|
-
<span class="ruby-value">current_payload:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">current_payload</span>,
|
312
|
-
<span class="ruby-value">data_owner:</span> <span class="ruby-identifier">payload</span>.<span class="ruby-identifier">data_owner</span>
|
313
|
-
}
|
314
|
-
<span class="ruby-keyword">end</span>
|
315
|
-
<span class="ruby-keyword">end</span></pre>
|
316
|
-
</div>
|
317
|
-
</div>
|
318
|
-
|
319
|
-
|
320
|
-
</div>
|
321
|
-
|
322
|
-
<div id="method-i-primary_route" class="method-detail ">
|
323
|
-
<div class="method-header">
|
324
|
-
<div class="method-heading">
|
325
|
-
<span class="method-name">primary_route</span><span
|
326
|
-
class="method-args">()</span>
|
327
|
-
<span class="method-click-advice">click to toggle source</span>
|
328
|
-
</div>
|
329
|
-
</div>
|
330
|
-
|
331
|
-
<div class="method-description">
|
332
|
-
<p>Returns the path for the activity.</p>
|
333
|
-
|
334
|
-
<p>Example:</p>
|
335
|
-
|
336
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">path</span>
|
337
|
-
</pre>
|
338
|
-
|
339
|
-
<p>Returns:</p>
|
340
|
-
|
341
|
-
<pre class="ruby"><span class="ruby-string">"/path/to/activity"</span>
|
342
|
-
</pre>
|
343
|
-
|
344
|
-
<div class="method-source-code" id="primary_route-source">
|
345
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 104</span>
|
346
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_route</span>
|
347
|
-
<span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">payload_route</span>
|
348
|
-
<span class="ruby-keyword">end</span></pre>
|
349
|
-
</div>
|
350
|
-
</div>
|
351
|
-
|
352
|
-
|
353
|
-
</div>
|
354
|
-
|
355
|
-
<div id="method-i-record_display_name" class="method-detail ">
|
356
|
-
<div class="method-header">
|
357
|
-
<div class="method-heading">
|
358
|
-
<span class="method-name">record_display_name</span><span
|
359
|
-
class="method-args">()</span>
|
360
|
-
<span class="method-click-advice">click to toggle source</span>
|
361
|
-
</div>
|
362
|
-
</div>
|
363
|
-
|
364
|
-
<div class="method-description">
|
365
|
-
<p>Returns the display name for a record. what method to use if defined in ‘/config/loggable_activity.yaml’</p>
|
366
|
-
|
367
|
-
<p>Example:</p>
|
368
|
-
|
369
|
-
<pre class="ruby"><span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">record_display_name</span>
|
370
|
-
</pre>
|
371
|
-
|
372
|
-
<p>Returns:</p>
|
373
|
-
|
374
|
-
<pre class="ruby"><span class="ruby-string">"David Bowie"</span>
|
375
|
-
</pre>
|
376
|
-
|
377
|
-
<div class="method-source-code" id="record_display_name-source">
|
378
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 91</span>
|
379
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_display_name</span>
|
380
|
-
<span class="ruby-identifier">primary_payload</span>.<span class="ruby-identifier">record_display_name</span>
|
381
|
-
<span class="ruby-keyword">end</span></pre>
|
382
|
-
</div>
|
383
|
-
</div>
|
384
|
-
|
385
|
-
|
386
|
-
</div>
|
387
|
-
|
388
|
-
</section>
|
389
|
-
|
390
|
-
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
391
|
-
<header>
|
392
|
-
<h3>Private Instance Methods</h3>
|
393
|
-
</header>
|
394
|
-
|
395
|
-
<div id="method-i-actor_deleted-3F" class="method-detail ">
|
396
|
-
<div class="method-header">
|
397
|
-
<div class="method-heading">
|
398
|
-
<span class="method-name">actor_deleted?</span><span
|
399
|
-
class="method-args">()</span>
|
400
|
-
<span class="method-click-advice">click to toggle source</span>
|
401
|
-
</div>
|
402
|
-
</div>
|
403
|
-
|
404
|
-
<div class="method-description">
|
405
|
-
<p>Check if the actor is deleted. If the actor is deleted, it will return true. This way we don’t rely on access to the main DB to check if the actor is deleted.</p>
|
406
|
-
|
407
|
-
<div class="method-source-code" id="actor_deleted-3F-source">
|
408
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 177</span>
|
409
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_deleted?</span>
|
410
|
-
<span class="ruby-identifier">actor_secret_key</span>.<span class="ruby-identifier">nil?</span>
|
411
|
-
<span class="ruby-keyword">end</span></pre>
|
412
|
-
</div>
|
413
|
-
</div>
|
414
|
-
|
415
|
-
|
416
|
-
</div>
|
417
|
-
|
418
|
-
<div id="method-i-actor_secret_key" class="method-detail ">
|
419
|
-
<div class="method-header">
|
420
|
-
<div class="method-heading">
|
421
|
-
<span class="method-name">actor_secret_key</span><span
|
422
|
-
class="method-args">()</span>
|
423
|
-
<span class="method-click-advice">click to toggle source</span>
|
424
|
-
</div>
|
425
|
-
</div>
|
426
|
-
|
427
|
-
<div class="method-description">
|
428
|
-
<p>Returns the key for the actor.</p>
|
429
|
-
|
430
|
-
<div class="method-source-code" id="actor_secret_key-source">
|
431
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 182</span>
|
432
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_secret_key</span>
|
433
|
-
<span class="ruby-comment"># @actor_key_secret_key ||=</span>
|
434
|
-
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record_by_type_and_id</span>(<span class="ruby-identifier">actor_type</span>, <span class="ruby-identifier">actor_id</span>)&.<span class="ruby-identifier">secret_key</span>
|
435
|
-
<span class="ruby-keyword">end</span></pre>
|
436
|
-
</div>
|
437
|
-
</div>
|
438
|
-
|
439
|
-
|
440
|
-
</div>
|
441
|
-
|
442
|
-
<div id="method-i-must_have_at_least_one_payload" class="method-detail ">
|
443
|
-
<div class="method-header">
|
444
|
-
<div class="method-heading">
|
445
|
-
<span class="method-name">must_have_at_least_one_payload</span><span
|
446
|
-
class="method-args">()</span>
|
447
|
-
<span class="method-click-advice">click to toggle source</span>
|
448
|
-
</div>
|
449
|
-
</div>
|
450
|
-
|
451
|
-
<div class="method-description">
|
452
|
-
<p>Validates that the activity has at least one payload.</p>
|
453
|
-
|
454
|
-
<div class="method-source-code" id="must_have_at_least_one_payload-source">
|
455
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 188</span>
|
456
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">must_have_at_least_one_payload</span>
|
457
|
-
<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-value">:payloads</span>, <span class="ruby-string">'must have at least one payload'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
|
458
|
-
<span class="ruby-keyword">end</span></pre>
|
459
|
-
</div>
|
460
|
-
</div>
|
461
|
-
|
462
|
-
|
463
|
-
</div>
|
464
|
-
|
465
|
-
<div id="method-i-ordered_payloads" class="method-detail ">
|
466
|
-
<div class="method-header">
|
467
|
-
<div class="method-heading">
|
468
|
-
<span class="method-name">ordered_payloads</span><span
|
469
|
-
class="method-args">()</span>
|
470
|
-
<span class="method-click-advice">click to toggle source</span>
|
471
|
-
</div>
|
472
|
-
</div>
|
473
|
-
|
474
|
-
<div class="method-description">
|
475
|
-
<p>Returns payloads sorted by :related_to_activity_as.</p>
|
476
|
-
|
477
|
-
<div class="method-source-code" id="ordered_payloads-source">
|
478
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 162</span>
|
479
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ordered_payloads</span>
|
480
|
-
<span class="ruby-comment"># payloads.order(related_to_activity_as: :desc)</span>
|
481
|
-
<span class="ruby-identifier">payloads</span>
|
482
|
-
<span class="ruby-keyword">end</span></pre>
|
483
|
-
</div>
|
484
|
-
</div>
|
485
|
-
|
486
|
-
|
487
|
-
</div>
|
488
|
-
|
489
|
-
<div id="method-i-primary_payload" class="method-detail ">
|
490
|
-
<div class="method-header">
|
491
|
-
<div class="method-heading">
|
492
|
-
<span class="method-name">primary_payload</span><span
|
493
|
-
class="method-args">()</span>
|
494
|
-
<span class="method-click-advice">click to toggle source</span>
|
495
|
-
</div>
|
496
|
-
</div>
|
497
|
-
|
498
|
-
<div class="method-description">
|
499
|
-
<p>Returns the primary payload associated with the activity.</p>
|
500
|
-
|
501
|
-
<p>Example usage:</p>
|
502
|
-
|
503
|
-
<pre class="ruby"><span class="ruby-identifier">payload</span> = <span class="ruby-ivar">@activity</span>.<span class="ruby-identifier">primary_payload</span>
|
504
|
-
<span class="ruby-identifier">payload</span>.<span class="ruby-identifier">record_type</span> <span class="ruby-comment"># => 'SOMD_MODEL_NAME'</span>
|
505
|
-
</pre>
|
506
|
-
|
507
|
-
<div class="method-source-code" id="primary_payload-source">
|
508
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 156</span>
|
509
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload</span>
|
510
|
-
<span class="ruby-identifier">related_to_activity_as</span> = <span class="ruby-node">%w[primary_payload primary_update_payload primary_destroy_payload]</span>
|
511
|
-
<span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">related_to_activity_as</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">p</span>.<span class="ruby-identifier">related_to_activity_as</span>) }
|
512
|
-
<span class="ruby-keyword">end</span></pre>
|
513
|
-
</div>
|
514
|
-
</div>
|
515
|
-
|
516
|
-
|
517
|
-
</div>
|
518
|
-
|
519
|
-
<div id="method-i-record_key" class="method-detail ">
|
520
|
-
<div class="method-header">
|
521
|
-
<div class="method-heading">
|
522
|
-
<span class="method-name">record_key</span><span
|
523
|
-
class="method-args">()</span>
|
524
|
-
<span class="method-click-advice">click to toggle source</span>
|
525
|
-
</div>
|
526
|
-
</div>
|
527
|
-
|
528
|
-
<div class="method-description">
|
529
|
-
<p>Returns the key for the logged record.</p>
|
530
|
-
|
531
|
-
<div class="method-source-code" id="record_key-source">
|
532
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 168</span>
|
533
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_key</span>
|
534
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">nil?</span>
|
535
|
-
|
536
|
-
<span class="ruby-operator">::</span><span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&.<span class="ruby-identifier">secret_key</span>
|
537
|
-
<span class="ruby-keyword">end</span></pre>
|
538
|
-
</div>
|
539
|
-
</div>
|
540
|
-
|
541
|
-
|
542
|
-
</div>
|
543
|
-
|
544
|
-
</section>
|
545
|
-
|
546
|
-
</section>
|
547
|
-
</main>
|
548
|
-
|
549
|
-
|
550
|
-
<footer id="validator-badges" role="contentinfo">
|
551
|
-
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
552
|
-
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.6.2.
|
553
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
554
|
-
</footer>
|
555
|
-
|