loggable_activity 0.1.56 → 0.1.58
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 +10 -1
- data/CHANGELOG.md +9 -0
- data/GETTING-STARTED.md +8 -47
- data/PAYLOAD_EXAMPLE.md +63 -0
- data/docs/LoggableActivity/Activity.html +92 -241
- data/docs/LoggableActivity/Configuration.html +162 -15
- data/docs/LoggableActivity/ConfigurationError.html +148 -0
- data/docs/LoggableActivity/DataOwner.html +138 -0
- data/docs/LoggableActivity/Encryption.html +18 -14
- data/docs/LoggableActivity/EncryptionError.html +47 -1
- data/docs/LoggableActivity/EncryptionKey.html +54 -35
- data/docs/LoggableActivity/Error.html +48 -0
- data/docs/LoggableActivity/Hooks.html +221 -89
- data/docs/LoggableActivity/Payload.html +103 -27
- data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +442 -0
- data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +395 -0
- data/docs/LoggableActivity/Services/PayloadsBuilder.html +342 -0
- data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +490 -0
- data/docs/LoggableActivity/Services.html +93 -0
- data/docs/created.rid +14 -10
- data/docs/index.html +10 -2
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search_index.js +1 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +253 -85
- data/lib/generators/loggable_activity/install_generator.rb +2 -18
- data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +9 -10
- data/lib/generators/loggable_activity/templates/create_loggable_activities.rb +16 -13
- data/lib/loggable_activity/activity.rb +53 -102
- data/lib/loggable_activity/configuration.rb +60 -3
- data/lib/loggable_activity/data_owner.rb +18 -0
- data/lib/loggable_activity/encryption.rb +14 -14
- data/lib/loggable_activity/encryption_key.rb +26 -25
- data/lib/loggable_activity/error.rb +34 -0
- data/lib/loggable_activity/hooks.rb +78 -43
- data/lib/loggable_activity/payload.rb +70 -20
- data/lib/loggable_activity/services/base_payloads_builder.rb +127 -0
- data/lib/loggable_activity/services/destroy_payloads_builder.rb +127 -0
- data/lib/loggable_activity/services/payloads_builder.rb +98 -0
- data/lib/loggable_activity/services/update_payloads_builder.rb +168 -0
- data/lib/loggable_activity/version.rb +1 -1
- data/lib/loggable_activity.rb +6 -6
- data/lib/schemas/config_schema.json +90 -0
- metadata +37 -26
- data/docs/LoggableActivity/PayloadsBuilder.html +0 -441
- data/docs/LoggableActivity/UpdatePayloadsBuilder.html +0 -424
- data/lib/generators/loggable_activity/install_templates_generator.rb +0 -105
- data/lib/generators/loggable_activity/templates/helpers/activity_helper.rb +0 -37
- data/lib/generators/loggable_activity/templates/helpers/router.rb +0 -52
- data/lib/generators/loggable_activity/templates/helpers/routes_helper.rb +0 -20
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb +0 -23
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb +0 -18
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim +0 -12
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb +0 -12
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim +0 -11
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb +0 -8
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim +0 -6
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb +0 -17
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim +0 -14
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb +0 -23
- data/lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim +0 -21
- data/lib/loggable_activity/payloads_builder.rb +0 -153
- data/lib/loggable_activity/update_payloads_builder.rb +0 -127
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LoggableActivity
|
4
|
+
module Services
|
5
|
+
# This class is responsible for building payloads used in loggable activities.
|
6
|
+
class PayloadsBuilder < BasePayloadsBuilder
|
7
|
+
# Builds payloads for the loggable activity and returns an array of payload objects.
|
8
|
+
#
|
9
|
+
# Example call:
|
10
|
+
# payloads = ::LoggableActivity::Services::PayloadsBuilder.new(record, initial_payloads).build
|
11
|
+
#
|
12
|
+
# Returns an Array of ::LoggableActivity::Payload instances, each representing a payload
|
13
|
+
# for the loggable activity. For example:
|
14
|
+
# [
|
15
|
+
# #<::LoggableActivity::Payload:0x0000000109658718 @encryption_key="key1", @record=#<MockRecord:0x0000000105000000 @name="Record1">, @encrypted_record_name="Encrypted Name1", @encrypted_attrs={...}, @related_to_activity_as="primary_payload", @data_owner=true, @route="route1">,
|
16
|
+
# #<::LoggableActivity::Payload:0x0000000109658720 @encryption_key="key2", @record=#<MockRecord:0x0000000105000001 @name="Record2">, @encrypted_record_name="Encrypted Name2", @encrypted_attrs={...}, @related_to_activity_as="has_one_payload", @data_owner=true, @route="route2">
|
17
|
+
# ]
|
18
|
+
#
|
19
|
+
def build
|
20
|
+
build_primary_payload
|
21
|
+
build_relations_payloads
|
22
|
+
@payloads
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
# Builds the primary payload.
|
28
|
+
def build_primary_payload
|
29
|
+
options = { related_to_activity_as: 'primary_payload', current_payload: true, data_owner: true }
|
30
|
+
build_encrypted_payload(@record, options)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Builds the relations payloads.
|
34
|
+
def build_relations_payloads
|
35
|
+
@relations.each do |relation_config|
|
36
|
+
build_relation_payload(relation_config)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Builds payloads for relations definded in the configuration.
|
41
|
+
#
|
42
|
+
# @param relation_config [Hash] The configuration of the relation.
|
43
|
+
def build_relation_payload(relation_config)
|
44
|
+
relation_config.each_key do |key|
|
45
|
+
case key
|
46
|
+
when 'belongs_to'
|
47
|
+
build_belongs_to_payload(relation_config)
|
48
|
+
when 'has_one'
|
49
|
+
build_has_one_payload(relation_config)
|
50
|
+
when 'has_many'
|
51
|
+
build_has_many_payloads(relation_config)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Builds payloads for has_many relations.
|
57
|
+
def build_has_many_payloads(relation_config)
|
58
|
+
relation = (relation_config['has_many']).to_s
|
59
|
+
records = @record.send(relation)
|
60
|
+
data_owner = relation_config['data_owner']
|
61
|
+
options = { related_to_activity_as: 'has_many_payload', current_payload: true, data_owner: }
|
62
|
+
records.each do |record|
|
63
|
+
record.disable_hooks = true
|
64
|
+
build_encrypted_payload(record, options)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Builds the payload for a has_one relation.
|
69
|
+
def build_has_one_payload(relation_config)
|
70
|
+
relation = (relation_config['has_one']).to_s
|
71
|
+
record = @record.send(relation)
|
72
|
+
return if record.nil?
|
73
|
+
|
74
|
+
data_owner = relation_config['data_owner']
|
75
|
+
options =
|
76
|
+
{ related_to_activity_as: 'has_one_payload', current_payload: true, data_owner: }
|
77
|
+
|
78
|
+
build_encrypted_payload(record, options)
|
79
|
+
end
|
80
|
+
|
81
|
+
def build_belongs_to_payload(relation_config)
|
82
|
+
relation = (relation_config['belongs_to']).to_s
|
83
|
+
record = @record.send(relation)
|
84
|
+
return if record.nil?
|
85
|
+
|
86
|
+
data_owner = relation_config['data_owner']
|
87
|
+
|
88
|
+
if data_owner
|
89
|
+
encryption_key = encryption_key_for_record(@record)
|
90
|
+
DataOwner.create!(record:, encryption_key:)
|
91
|
+
end
|
92
|
+
options = { related_to_activity_as: 'belongs_to_payload', current_payload: true, data_owner: }
|
93
|
+
|
94
|
+
build_encrypted_payload(record, options)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,168 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LoggableActivity
|
4
|
+
module Services
|
5
|
+
# This service class builds update payloads when an instance of a model is updated.
|
6
|
+
class UpdatePayloadsBuilder < BasePayloadsBuilder
|
7
|
+
# Builds payloads for a ::LoggableActivity::Activity.
|
8
|
+
def build
|
9
|
+
build_primary_update_payload
|
10
|
+
build_relations_update_payloads
|
11
|
+
@payloads
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# Builds the primary payload.
|
17
|
+
def build_primary_update_payload
|
18
|
+
previous_values, current_values = saved_changes(@record)
|
19
|
+
previous_values.slice(*@loggable_attrs)
|
20
|
+
options = { related_to_activity_as: 'primary_update_payload', current_payload: true, data_owner: true }
|
21
|
+
|
22
|
+
build_encrypted_update_payload(
|
23
|
+
@record,
|
24
|
+
current_values,
|
25
|
+
previous_values,
|
26
|
+
options
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Build the payloads for the relations of the record.
|
31
|
+
# only relations included in the configuration, will be logged.
|
32
|
+
def build_relations_update_payloads
|
33
|
+
@relations.each do |relation_config|
|
34
|
+
build_relation_update_payload(relation_config)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def build_relation_update_payload(relation_config)
|
39
|
+
relation_config.each_key do |key|
|
40
|
+
case key
|
41
|
+
when 'belongs_to'
|
42
|
+
build_belongs_to_update_payload(relation_config)
|
43
|
+
when 'has_one'
|
44
|
+
build_has_one_update_payload(relation_config)
|
45
|
+
when 'has_many'
|
46
|
+
build_has_many_update_payloads(relation_config)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Builds the update payload for a belongs_to relation.
|
52
|
+
def build_belongs_to_update_payload(relation_config)
|
53
|
+
relation_id = "#{relation_config['belongs_to']}_id"
|
54
|
+
model_class_name = relation_config['model']
|
55
|
+
model_class = model_class_name.constantize
|
56
|
+
data_owner = relation_config['data_owner']
|
57
|
+
|
58
|
+
model_ids = saved_changes(@record).map { |hash| hash[relation_id] }
|
59
|
+
|
60
|
+
model_ids.each_with_index do |id, index|
|
61
|
+
record = id ? model_class.find_by(id:) : nil
|
62
|
+
next unless record
|
63
|
+
|
64
|
+
options =
|
65
|
+
{ related_to_activity_as: 'belongs_to_update_payload', current_payload: index == 1, data_owner: }
|
66
|
+
|
67
|
+
build_encrypted_payload(record, options)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Builds payloads for has_many relations.
|
72
|
+
def build_has_many_update_payloads(relation_config)
|
73
|
+
relation = (relation_config['has_many']).to_s
|
74
|
+
records = @record.send(relation)
|
75
|
+
return nil if records.empty?
|
76
|
+
|
77
|
+
records.each do |record|
|
78
|
+
if record.persisted? && record.changes_to_save.any?
|
79
|
+
build_has_many_update_payload(relation_config, record)
|
80
|
+
elsif record.persisted? && record.saved_changes.any?
|
81
|
+
# "no changes to save"
|
82
|
+
else
|
83
|
+
build_has_many_create_payload(relation_config, record)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def build_has_many_update_payload(relation_config, record)
|
89
|
+
record.disable_hooks = true
|
90
|
+
previous_values, current_values = changes_to_save(record)
|
91
|
+
loggable_attrs = relation_config['loggable_attrs']
|
92
|
+
return if previous_values == current_values
|
93
|
+
|
94
|
+
previous_values = previous_values.slice(*loggable_attrs)
|
95
|
+
data_owner = relation_config['data_owner']
|
96
|
+
options = { related_to_activity_as: 'has_many_update_payload', current_payload: true, data_owner: }
|
97
|
+
|
98
|
+
build_encrypted_update_payload(
|
99
|
+
record,
|
100
|
+
current_values,
|
101
|
+
previous_values,
|
102
|
+
options
|
103
|
+
)
|
104
|
+
end
|
105
|
+
|
106
|
+
def build_has_many_create_payload(relation_config, record)
|
107
|
+
record.disable_hooks = true
|
108
|
+
data_owner = relation_config['data_owner']
|
109
|
+
options =
|
110
|
+
{ related_to_activity_as: 'has_many_create_payload', current_payload: true, data_owner: }
|
111
|
+
build_encrypted_payload(record, options)
|
112
|
+
end
|
113
|
+
|
114
|
+
# Builds the update payload for a has_one relation.
|
115
|
+
def build_has_one_update_payload(relation_config)
|
116
|
+
relation = (relation_config['has_one']).to_s
|
117
|
+
record = @record.send(relation)
|
118
|
+
return nil if record.nil?
|
119
|
+
|
120
|
+
previous_values, current_values = changes_to_save(record)
|
121
|
+
loggable_attrs = record.class.loggable_attrs
|
122
|
+
return if previous_values == current_values
|
123
|
+
|
124
|
+
previous_values = previous_values.slice(*loggable_attrs)
|
125
|
+
data_owner = relation_config['data_owner']
|
126
|
+
options = { related_to_activity_as: 'has_one_update_payload', current_payload: true, data_owner: }
|
127
|
+
|
128
|
+
build_encrypted_update_payload(
|
129
|
+
record,
|
130
|
+
current_values,
|
131
|
+
previous_values,
|
132
|
+
options
|
133
|
+
)
|
134
|
+
end
|
135
|
+
|
136
|
+
# Returns the encrypted attributes for the update payload.
|
137
|
+
def encrypted_update_attrs(current_values, previous_values, encryption_key)
|
138
|
+
changes = []
|
139
|
+
|
140
|
+
previous_values.each do |key, from_value|
|
141
|
+
from = ::LoggableActivity::Encryption.encrypt(from_value, encryption_key)
|
142
|
+
to_value = current_values[key]
|
143
|
+
to = ::LoggableActivity::Encryption.encrypt(to_value, encryption_key)
|
144
|
+
changes << { key => { from:, to: } }
|
145
|
+
end
|
146
|
+
{ changes: }
|
147
|
+
end
|
148
|
+
|
149
|
+
# Builds the encrypted update payload for a record.
|
150
|
+
def build_encrypted_update_payload(record, current_values, previous_values, options = {})
|
151
|
+
encryption_key = ::LoggableActivity::EncryptionKey.for_record(record)
|
152
|
+
|
153
|
+
encrypted_attrs = encrypted_update_attrs(
|
154
|
+
current_values,
|
155
|
+
previous_values,
|
156
|
+
encryption_key.secret_key
|
157
|
+
)
|
158
|
+
|
159
|
+
build_payload(
|
160
|
+
record,
|
161
|
+
encryption_key,
|
162
|
+
encrypted_attrs,
|
163
|
+
options
|
164
|
+
)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
data/lib/loggable_activity.rb
CHANGED
@@ -5,11 +5,11 @@ require_relative 'loggable_activity/activity'
|
|
5
5
|
require_relative 'loggable_activity/configuration'
|
6
6
|
require_relative 'loggable_activity/encryption'
|
7
7
|
require_relative 'loggable_activity/encryption_key'
|
8
|
+
require_relative 'loggable_activity/data_owner'
|
8
9
|
require_relative 'loggable_activity/hooks'
|
9
10
|
require_relative 'loggable_activity/payload'
|
10
|
-
require_relative 'loggable_activity/
|
11
|
-
require_relative 'loggable_activity/
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
11
|
+
require_relative 'loggable_activity/error'
|
12
|
+
require_relative 'loggable_activity/services/base_payloads_builder'
|
13
|
+
require_relative 'loggable_activity/services/payloads_builder'
|
14
|
+
require_relative 'loggable_activity/services/update_payloads_builder'
|
15
|
+
require_relative 'loggable_activity/services/destroy_payloads_builder'
|
@@ -0,0 +1,90 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-06/schema#",
|
3
|
+
"type": "object",
|
4
|
+
"properties": {
|
5
|
+
"current_user_model_name": {
|
6
|
+
"type": "string"
|
7
|
+
},
|
8
|
+
"fetch_current_user_name_from": {
|
9
|
+
"type": "string"
|
10
|
+
}
|
11
|
+
},
|
12
|
+
"patternProperties": {
|
13
|
+
"^(?!current_user_model_name$|fetch_current_user_name_from$)[A-Za-z0-9_:]+$": {
|
14
|
+
"type": "object",
|
15
|
+
"properties": {
|
16
|
+
"data_owner": {
|
17
|
+
"type": "boolean"
|
18
|
+
},
|
19
|
+
"fetch_record_name_from": {
|
20
|
+
"type": "string"
|
21
|
+
},
|
22
|
+
"loggable_attrs": {
|
23
|
+
"type": "array",
|
24
|
+
"items": {
|
25
|
+
"type": "string"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"auto_log": {
|
29
|
+
"type": "array",
|
30
|
+
"items": {
|
31
|
+
"type": "string",
|
32
|
+
"enum": [
|
33
|
+
"create",
|
34
|
+
"update",
|
35
|
+
"destroy"
|
36
|
+
]
|
37
|
+
}
|
38
|
+
},
|
39
|
+
"route": {
|
40
|
+
"type": "string",
|
41
|
+
"minLength": 1
|
42
|
+
},
|
43
|
+
"relations": {
|
44
|
+
"type": "array",
|
45
|
+
"items": {
|
46
|
+
"type": "object",
|
47
|
+
"properties": {
|
48
|
+
"has_many": {
|
49
|
+
"type": "string"
|
50
|
+
},
|
51
|
+
"has_one": {
|
52
|
+
"type": "string"
|
53
|
+
},
|
54
|
+
"belongs_to": {
|
55
|
+
"type": "string"
|
56
|
+
},
|
57
|
+
"model": {
|
58
|
+
"type": "string"
|
59
|
+
},
|
60
|
+
"loggable_attrs": {
|
61
|
+
"type": "array",
|
62
|
+
"items": {
|
63
|
+
"type": "string"
|
64
|
+
}
|
65
|
+
},
|
66
|
+
"route": {
|
67
|
+
"type": "string",
|
68
|
+
"minLength": 1
|
69
|
+
},
|
70
|
+
"fetch_record_name_from": {
|
71
|
+
"type": "string"
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"required": [
|
75
|
+
"model"
|
76
|
+
]
|
77
|
+
}
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"required": [
|
81
|
+
"loggable_attrs"
|
82
|
+
]
|
83
|
+
}
|
84
|
+
},
|
85
|
+
"additionalProperties": false,
|
86
|
+
"required": [
|
87
|
+
"current_user_model_name",
|
88
|
+
"fetch_current_user_name_from"
|
89
|
+
]
|
90
|
+
}
|
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.58
|
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-03-
|
11
|
+
date: 2024-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,26 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 7.1.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json-schema
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.1'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 4.1.1
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.1'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 4.1.1
|
27
47
|
- !ruby/object:Gem::Dependency
|
28
48
|
name: rails
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,20 +169,26 @@ files:
|
|
149
169
|
- CONSIDERTIONS.md
|
150
170
|
- GETTING-STARTED.md
|
151
171
|
- LICENSE.txt
|
172
|
+
- PAYLOAD_EXAMPLE.md
|
152
173
|
- README.md
|
153
174
|
- ROADMAP.md
|
154
175
|
- Rakefile
|
155
176
|
- docs/LoggableActivity.html
|
156
177
|
- docs/LoggableActivity/Activity.html
|
157
178
|
- docs/LoggableActivity/Configuration.html
|
179
|
+
- docs/LoggableActivity/ConfigurationError.html
|
180
|
+
- docs/LoggableActivity/DataOwner.html
|
158
181
|
- docs/LoggableActivity/Encryption.html
|
159
182
|
- docs/LoggableActivity/EncryptionError.html
|
160
183
|
- docs/LoggableActivity/EncryptionKey.html
|
161
184
|
- docs/LoggableActivity/Error.html
|
162
185
|
- docs/LoggableActivity/Hooks.html
|
163
186
|
- docs/LoggableActivity/Payload.html
|
164
|
-
- docs/LoggableActivity/
|
165
|
-
- docs/LoggableActivity/
|
187
|
+
- docs/LoggableActivity/Services.html
|
188
|
+
- docs/LoggableActivity/Services/BasePayloadsBuilder.html
|
189
|
+
- docs/LoggableActivity/Services/DestroyPayloadsBuilder.html
|
190
|
+
- docs/LoggableActivity/Services/PayloadsBuilder.html
|
191
|
+
- docs/LoggableActivity/Services/UpdatePayloadsBuilder.html
|
166
192
|
- docs/created.rid
|
167
193
|
- docs/css/fonts.css
|
168
194
|
- docs/css/rdoc.css
|
@@ -211,44 +237,29 @@ files:
|
|
211
237
|
- lib/generators/.DS_Store
|
212
238
|
- lib/generators/loggable_activity/.DS_Store
|
213
239
|
- lib/generators/loggable_activity/install_generator.rb
|
214
|
-
- lib/generators/loggable_activity/install_templates_generator.rb
|
215
240
|
- lib/generators/loggable_activity/templates/.DS_Store
|
216
241
|
- lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb
|
217
242
|
- lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml
|
218
243
|
- lib/generators/loggable_activity/templates/config/loggable_activity.yaml
|
219
244
|
- lib/generators/loggable_activity/templates/create_loggable_activities.rb
|
220
245
|
- lib/generators/loggable_activity/templates/current_user.rb
|
221
|
-
- lib/generators/loggable_activity/templates/helpers/activity_helper.rb
|
222
|
-
- lib/generators/loggable_activity/templates/helpers/router.rb
|
223
|
-
- lib/generators/loggable_activity/templates/helpers/routes_helper.rb
|
224
246
|
- lib/generators/loggable_activity/templates/loggable_activity.en.yaml
|
225
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.erb
|
226
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_create.html.slim
|
227
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.erb
|
228
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_destroy.html.slim
|
229
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.erb
|
230
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_show.html.slim
|
231
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.erb
|
232
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/default/_update.html.slim
|
233
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.erb
|
234
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_activity_info.html.slim
|
235
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.erb
|
236
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_list_attrs.html.slim
|
237
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.erb
|
238
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_update_attrs.html.slim
|
239
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.erb
|
240
|
-
- lib/generators/loggable_activity/templates/views/loggable_activity/templates/shared/_updated_relations.html.slim
|
241
247
|
- lib/loggable_activity.rb
|
242
248
|
- lib/loggable_activity/.DS_Store
|
243
249
|
- lib/loggable_activity/activity.rb
|
244
250
|
- lib/loggable_activity/configuration.rb
|
251
|
+
- lib/loggable_activity/data_owner.rb
|
245
252
|
- lib/loggable_activity/encryption.rb
|
246
253
|
- lib/loggable_activity/encryption_key.rb
|
254
|
+
- lib/loggable_activity/error.rb
|
247
255
|
- lib/loggable_activity/hooks.rb
|
248
256
|
- lib/loggable_activity/payload.rb
|
249
|
-
- lib/loggable_activity/
|
250
|
-
- lib/loggable_activity/
|
257
|
+
- lib/loggable_activity/services/base_payloads_builder.rb
|
258
|
+
- lib/loggable_activity/services/destroy_payloads_builder.rb
|
259
|
+
- lib/loggable_activity/services/payloads_builder.rb
|
260
|
+
- lib/loggable_activity/services/update_payloads_builder.rb
|
251
261
|
- lib/loggable_activity/version.rb
|
262
|
+
- lib/schemas/config_schema.json
|
252
263
|
- pkg/loggable_activity-0.1.35.gem
|
253
264
|
- sig/loggable_activity.rbs
|
254
265
|
homepage: https://loggableactivity-efe7b931c886.herokuapp.com/
|