loggable_activity 0.1.48 → 0.1.49
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3a71b62ddccb997e31e0592a4069f3c1684043fe5dee77691801930ebd86a43
|
4
|
+
data.tar.gz: 7b8cf906c1357bbc2e90172020de8ab712132ba43de3a53fc0d4058cfa391bd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a951d551a83e4cab2c58ec1b6a3b00c1814ecd099bdf38682d024a99298417912f6efcaf1c1d625f8ee4f877ac60f7ab851cc9a00b2c7201fb9fba2cf1e093b1
|
7
|
+
data.tar.gz: 4821fd58720ad28bd77d7f958f0c1ce39de246503b93a4027097fa61c3b5f4b4e3ca3f673f37271205a121717905f3dbb12337ad3193e40fe12f6098f69667ec
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
- nothing so far
|
3
|
+
## [0.1.49] - 2024-02-18
|
4
|
+
- Metadata, pointing to hompage
|
3
5
|
|
4
6
|
## [0.1.48] - 2024-02-16
|
5
7
|
### Breaking change
|
@@ -7,14 +9,19 @@
|
|
7
9
|
- Updated README.md
|
8
10
|
- Updated GETTING_STARTED.md
|
9
11
|
- Added PULL_REQUEST_TEMPLATE.md
|
12
|
+
|
10
13
|
## [0.1.46] - 2024-02-16
|
11
14
|
- Fixed spelling error in EncryptionKey
|
15
|
+
|
12
16
|
## [0.1.43] - 2024-02-15
|
13
17
|
- Updated README.md and GETTING-STARTED.md
|
18
|
+
|
14
19
|
## [0.1.39] - 2024-02-12
|
15
20
|
- Updated README.md and GETTING-STARTED.md
|
21
|
+
|
16
22
|
## [0.1.38] - 2024-02-12
|
17
23
|
- Removed dependency on awesome print
|
24
|
+
|
18
25
|
## [0.1.35] - 2024-02-11
|
19
26
|
- Initial release
|
20
27
|
|
data/GETTING-STARTED.md
CHANGED
@@ -8,26 +8,77 @@ This document should you getting started with `LoggableActivity`
|
|
8
8
|
## Demo Application
|
9
9
|
You can download a demo application from<br/>
|
10
10
|
[https://github.com/maxgronlund/LoggableActivityDemoApp](https://github.com/maxgronlund/LoggableActivityDemoApp)
|
11
|
+
<br/>
|
12
|
+
You can try a demo here<br/>
|
13
|
+
[https://loggableactivity-efe7b931c886.herokuapp.com/](https://loggableactivity-efe7b931c886.herokuapp.com/)
|
14
|
+
|
15
|
+
## Getting started
|
16
|
+
First we add the loggable_activity gem to the Gemfile `gem 'loggable_activity', '~> x.x.xx'` and then `$ bundle install`<br/>
|
17
|
+
Then we have to generate some migrations and additionals files<br/>
|
18
|
+
`rails generate loggable_activity:install Activity`<br/>
|
11
19
|
|
12
20
|
## Configuration
|
13
|
-
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
You need a configuration file inside the `config/loggable_activity.yaml`
|
22
|
+
This file defines:
|
23
|
+
- What tables to log
|
24
|
+
- What fields in a table to log
|
25
|
+
- How data is aggregated.
|
26
|
+
- What should happen to the aggregation if a record is deleted.
|
27
|
+
- What actions to log.
|
28
|
+
|
29
|
+
*Here is an example*
|
30
|
+
```
|
31
|
+
Demo::Club:
|
32
|
+
record_display_name: name
|
33
|
+
loggable_attrs:
|
34
|
+
- name
|
35
|
+
auto_log:
|
36
|
+
- create
|
37
|
+
- update
|
38
|
+
- destroy
|
39
|
+
relations:
|
40
|
+
- belongs_to: :address
|
41
|
+
model: Demo::Address
|
42
|
+
loggable_attrs:
|
43
|
+
- street
|
44
|
+
- city
|
45
|
+
```
|
46
|
+
|
47
|
+
Lets break this down.
|
48
|
+
- First we can se that we are logging a model named Demo::Club.
|
49
|
+
- `record_display_name:` is the field/method on the on the model we want to display as a headline in the log
|
50
|
+
- Then we can se that we are logging the **name** of the club, in this example that's all there is to log.
|
51
|
+
- Then we can se that we are **logging create, update, and destroy** automatically.
|
52
|
+
- Then there are some relations: that we want to collect and add to the log, in this example we are logging the address as well.
|
53
|
+
|
54
|
+
Next we have to include some hooks to the model we want to log.
|
55
|
+
|
56
|
+
```
|
57
|
+
class User < ApplicationRecord
|
58
|
+
include LoggableActivity::Hooks
|
59
|
+
```
|
60
|
+
|
61
|
+
And then we have to add a this to the application_controller.rb
|
62
|
+
```
|
63
|
+
class ApplicationController < ActionController::Base
|
64
|
+
include LoggableActivity::CurrentUser
|
65
|
+
```
|
66
|
+
This will give us access to the current_user.
|
67
|
+
|
68
|
+
And then we have to add this to 'config/application.rb'
|
69
|
+
```
|
70
|
+
config.loggable_activity = ActiveSupport::OrderedOptions.new
|
71
|
+
config.loggable_activity.actor_display_name = :full_name
|
72
|
+
config.loggable_activity.current_user_model_name = 'User'
|
73
|
+
LoggableActivity::Configuration.load_config_file('config/loggable_activity.yaml')
|
74
|
+
```
|
75
|
+
actor_display_name: this is a method on the User model we want to use when presenting the actor.
|
76
|
+
current_user_model: This is the name of the model we use for current_user
|
77
|
+
load_config_file: this is the configuration file from above.
|
78
|
+
|
79
|
+
|
80
|
+
## Configuration
|
81
|
+
|
31
82
|
```
|
32
83
|
User:
|
33
84
|
record_display_name: full_name
|
@@ -25,6 +25,7 @@ module LoggableActivity
|
|
25
25
|
template 'loggable_activity.en.yml', 'config/locales/loggable_activity.en.yml'
|
26
26
|
template 'loggable_activity.yml', 'config/loggable_activity.yml'
|
27
27
|
template 'current_user.rb', 'app/controllers/concerns/loggable_activity/current_user.rb'
|
28
|
+
# template 'loggable_activity_helper.rb', 'app/helpers/loggable_activity_helper.rb'
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LoggableActivityHelper
|
4
|
+
include ApplicationHelper
|
5
|
+
|
6
|
+
def render_activity(activity)
|
7
|
+
render partial: template_path(activity), locals: { activity: }
|
8
|
+
end
|
9
|
+
|
10
|
+
def primary_type(activity)
|
11
|
+
I18n.t("loggable.activity.models.#{activity.record_type}")
|
12
|
+
end
|
13
|
+
|
14
|
+
def relation_type(relation_attrs)
|
15
|
+
I18n.t("loggable.activity.models.#{relation_attrs[:record_class]}")
|
16
|
+
end
|
17
|
+
|
18
|
+
def update_relation_class(update_attrs)
|
19
|
+
I18n.t("loggable.activity.models.#{update_attrs[:record_class]}")
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def action_template_path(activity)
|
25
|
+
"loggable_activity/templates/#{activity.action.gsub('.', '/')}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def template_path(activity)
|
29
|
+
template_path = action_template_path(activity)
|
30
|
+
if lookup_context.template_exists?(template_path, [], true)
|
31
|
+
template_path
|
32
|
+
else
|
33
|
+
action = activity.action.split('.').last || 'default'
|
34
|
+
"loggable_activity/templates/default/#{action}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def activity_payload(activity)
|
39
|
+
@activity_payload ||= build_payload(activity)
|
40
|
+
end
|
41
|
+
|
42
|
+
def activity_attrs(activity)
|
43
|
+
@activity_attrs ||= activity_payload(activity).fetch(:activity, {})
|
44
|
+
end
|
45
|
+
|
46
|
+
def build_payload(activity)
|
47
|
+
Loggable::JsonPayloadFactory.new(activity).build_payload
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loggable_activity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.49
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Max \nGroenlund"
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -116,6 +116,7 @@ files:
|
|
116
116
|
- lib/generators/loggable_activity/templates/current_user.rb
|
117
117
|
- lib/generators/loggable_activity/templates/loggable_activity.en.yml
|
118
118
|
- lib/generators/loggable_activity/templates/loggable_activity.yml
|
119
|
+
- lib/generators/loggable_activity/templates/loggable_activity_helper.rb
|
119
120
|
- lib/loggable_activity.rb
|
120
121
|
- lib/loggable_activity/.DS_Store
|
121
122
|
- lib/loggable_activity/activity.rb
|
@@ -133,6 +134,9 @@ homepage: https://loggableactivity-efe7b931c886.herokuapp.com/
|
|
133
134
|
licenses:
|
134
135
|
- MIT
|
135
136
|
metadata:
|
137
|
+
homepage_uri: https://loggableactivity-efe7b931c886.herokuapp.com/
|
138
|
+
source_code_uri: https://github.com/maxgronlund/LoggableActivity
|
139
|
+
changelog_uri: https://github.com/maxgronlund/LoggableActivity/CHANGELOG.md
|
136
140
|
documentation_uri: https://maxgronlund.github.io/LoggableActivity/
|
137
141
|
rubygems_mfa_required: 'true'
|
138
142
|
post_install_message:
|