public_activity 1.6.4 → 2.0.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/README.md +26 -28
- data/lib/generators/public_activity/migration/templates/migration.rb +3 -2
- data/lib/public_activity/orm/active_record/activity.rb +3 -3
- data/lib/public_activity/renderable.rb +3 -2
- data/lib/public_activity/version.rb +1 -1
- data/test/migrations/001_create_activities.rb +1 -1
- data/test/migrations/002_create_articles.rb +1 -1
- data/test/migrations/003_create_users.rb +1 -1
- data/test/migrations_base.rb +2 -2
- data/test/test_generators.rb +0 -12
- data/test/test_helper.rb +7 -3
- metadata +49 -38
- data/lib/generators/public_activity/activity/activity_generator.rb +0 -19
- data/lib/generators/public_activity/activity/templates/activity.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83290b8f83bb4db6127ed0b907380946d30a3d8a91b2ea3d1a835d7dfb36327d
|
4
|
+
data.tar.gz: 2a7e5abad8fae61ff03440747938653eb1624e14f62279fddb28b2d10362b75e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 502c70c85f62ec2838d592a2eaed2de714e97bbc27dcf0e7677dc27ac21e76e2fa1960c7c8d9fae218ff77ac1b103d0b7228ab4ed9afe2b50e7eb09bd2f6b7fe
|
7
|
+
data.tar.gz: ef18dda98ec4e763311971ec8a3a9382b4ba05a5b00a76c7ee6e3a58a9d4ec80f1c9a11487d9bb2e30c5ca9f0a336136033e2811f9ac52974a9cb8f9c95efa39
|
data/README.md
CHANGED
@@ -1,37 +1,35 @@
|
|
1
1
|
# PublicActivity [](http://travis-ci.org/chaps-io/public_activity) [](https://codeclimate.com/github/chaps-io/public_activity) [](http://badge.fury.io/rb/public_activity)
|
2
2
|
|
3
3
|
`public_activity` provides easy activity tracking for your **ActiveRecord**, **Mongoid 3** and **MongoMapper** models
|
4
|
-
in Rails
|
5
|
-
recorded activities to users -
|
4
|
+
in Rails 5.0+. Simply put: it records what has been changed or created and gives you the ability to present those
|
5
|
+
recorded activities to users - similarly to how GitHub does it.
|
6
6
|
|
7
|
+
## Rails 7
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
## Rails 5
|
14
|
-
|
15
|
-
**As of 1.6.0 version, public_activity also supports Rails up to 5.2.**
|
9
|
+
**As of version 2.0.0, public_activity also supports Rails up to 7.0.**
|
16
10
|
|
17
11
|
## Table of contents
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
13
|
+
- [Rails 7](#rails-7)
|
14
|
+
- [Table of contents](#table-of-contents)
|
15
|
+
- [Example](#example)
|
16
|
+
- [Online demo](#online-demo)
|
17
|
+
- [Screencast](#screencast)
|
18
|
+
- [Setup](#setup)
|
19
|
+
- [Gem installation](#gem-installation)
|
20
|
+
- [Database setup](#database-setup)
|
21
|
+
- [Model configuration](#model-configuration)
|
22
|
+
- [Custom activities](#custom-activities)
|
23
|
+
- [Displaying activities](#displaying-activities)
|
24
|
+
- [Layouts](#layouts)
|
25
|
+
- [Locals](#locals)
|
26
|
+
- [Activity views](#activity-views)
|
27
|
+
- [I18n](#I18n)
|
28
|
+
- [Testing](#testing)
|
29
|
+
- [Documentation](#documentation)
|
30
|
+
- [Common examples](#common-examples)
|
31
|
+
- [Help](#help)
|
32
|
+
- [License](#license)
|
35
33
|
|
36
34
|
## Example
|
37
35
|
|
@@ -197,7 +195,7 @@ For example, if you have an activity with `:key` set to `"activity.user.changed_
|
|
197
195
|
|
198
196
|
If a view file does not exist, then p_a falls back to the old behaviour and tries to translate the activity `:key` using `I18n#translate` method (see the section below).
|
199
197
|
|
200
|
-
####
|
198
|
+
#### I18n
|
201
199
|
|
202
200
|
Translations are used by the `#text` method, to which you can pass additional options in form of a hash. `#render` method uses translations when view templates have not been provided. You can render pure i18n strings by passing `{display: :i18n}` to `#render_activity` or `#render`.
|
203
201
|
|
@@ -224,7 +222,7 @@ require 'public_activity/testing'
|
|
224
222
|
PublicActivity.enabled = false
|
225
223
|
```
|
226
224
|
|
227
|
-
In your specs you can then blockwise decide
|
225
|
+
In your specs you can then blockwise decide whether to turn `public_activity` on
|
228
226
|
or off.
|
229
227
|
|
230
228
|
```ruby
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'migrations_base'
|
4
|
+
|
3
5
|
# Migration responsible for creating a table with activities
|
4
|
-
class CreateActivities <
|
5
|
-
# Create table
|
6
|
+
class CreateActivities < MigrationsBase
|
6
7
|
def self.up
|
7
8
|
create_table :activities do |t|
|
8
9
|
t.belongs_to :trackable, :polymorphic => true
|
@@ -33,7 +33,7 @@ module PublicActivity
|
|
33
33
|
belongs_to :owner, :polymorphic => true
|
34
34
|
# Define ownership to a resource targeted by this activity
|
35
35
|
belongs_to :recipient, :polymorphic => true
|
36
|
-
when 5..
|
36
|
+
when 5..7
|
37
37
|
with_options(:required => false) do
|
38
38
|
# Define ownership to a resource responsible for this activity
|
39
39
|
belongs_to :owner, :polymorphic => true
|
@@ -49,9 +49,9 @@ module PublicActivity
|
|
49
49
|
else
|
50
50
|
warn("[WARN] table #{name} doesn't exist. Skipping PublicActivity::Activity#parameters's serialization")
|
51
51
|
end
|
52
|
-
rescue ::ActiveRecord::NoDatabaseError
|
52
|
+
rescue ::ActiveRecord::NoDatabaseError
|
53
53
|
warn("[WARN] database doesn't exist. Skipping PublicActivity::Activity#parameters's serialization")
|
54
|
-
rescue ::PG::ConnectionBad
|
54
|
+
rescue ::PG::ConnectionBad
|
55
55
|
warn("[WARN] couldn't connect to database. Skipping PublicActivity::Activity#parameters's serialization")
|
56
56
|
rescue Mysql2::Error::ConnectionError
|
57
57
|
warn("[WARN] couldn't connect to database. Skipping PublicActivity::Activity#parameters's serialization")
|
@@ -12,7 +12,8 @@ module PublicActivity
|
|
12
12
|
k.unshift('activity') if k.first != 'activity'
|
13
13
|
k = k.join('.')
|
14
14
|
|
15
|
-
|
15
|
+
translate_params = parameters.merge(params) || {}
|
16
|
+
I18n.t(k, **translate_params)
|
16
17
|
end
|
17
18
|
|
18
19
|
# Renders activity from views.
|
@@ -142,7 +143,7 @@ module PublicActivity
|
|
142
143
|
def prepare_layout(root, layout)
|
143
144
|
if layout
|
144
145
|
path = layout.to_s
|
145
|
-
unless path.
|
146
|
+
unless path.start_with?(root) || path.start_with?("/")
|
146
147
|
return File.join(root, path)
|
147
148
|
end
|
148
149
|
end
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
../../lib/generators/public_activity/migration/templates/migration.rb
|
data/test/migrations_base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
MigrationsBase = if ActiveRecord.version.release() < Gem::Version.new('5.
|
3
|
+
MigrationsBase = if ActiveRecord.version.release() < Gem::Version.new('5.1.0')
|
4
4
|
ActiveRecord::Migration
|
5
5
|
else
|
6
|
-
ActiveRecord::Migration[5.
|
6
|
+
ActiveRecord::Migration[5.1]
|
7
7
|
end
|
data/test/test_generators.rb
CHANGED
@@ -4,21 +4,9 @@ if ENV["PA_ORM"] == "active_record"
|
|
4
4
|
|
5
5
|
require 'test_helper'
|
6
6
|
require 'rails/generators/test_case'
|
7
|
-
require 'generators/public_activity/activity/activity_generator'
|
8
7
|
require 'generators/public_activity/migration/migration_generator'
|
9
8
|
require 'generators/public_activity/migration_upgrade/migration_upgrade_generator'
|
10
9
|
|
11
|
-
class TestActivityGenerator < Rails::Generators::TestCase
|
12
|
-
tests PublicActivity::Generators::ActivityGenerator
|
13
|
-
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
14
|
-
setup :prepare_destination
|
15
|
-
|
16
|
-
def test_generating_activity_model
|
17
|
-
run_generator
|
18
|
-
assert_file "app/models/activity.rb"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
10
|
class TestMigrationGenerator < Rails::Generators::TestCase
|
23
11
|
tests PublicActivity::Generators::MigrationGenerator
|
24
12
|
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
data/test/test_helper.rb
CHANGED
@@ -29,11 +29,15 @@ when :active_record
|
|
29
29
|
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
30
30
|
|
31
31
|
migrations_path = File.expand_path('../migrations', __FILE__)
|
32
|
+
active_record_version = ActiveRecord.version.release()
|
32
33
|
|
33
|
-
if
|
34
|
-
|
35
|
-
|
34
|
+
if active_record_version >= Gem::Version.new('6.0.0')
|
35
|
+
schema_path = File.expand_path("../tmp/schema.rb", File.dirname(__FILE__))
|
36
|
+
ActiveRecord::MigrationContext.new(migrations_path, ActiveRecord::SchemaMigration).migrate
|
37
|
+
elsif active_record_version >= Gem::Version.new('5.2.0')
|
36
38
|
ActiveRecord::MigrationContext.new(migrations_path).migrate
|
39
|
+
else # active_record_version < Gem::Version.new('5.2.0')
|
40
|
+
ActiveRecord::Migrator.migrate(migrations_path)
|
37
41
|
end
|
38
42
|
|
39
43
|
$stdout = STDOUT
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: public_activity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotrek Okoński
|
8
8
|
- Kuba Okoński
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 5.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 5.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: railties
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 5.0.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 5.0.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: i18n
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,84 +59,98 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '5.0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '5.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: appraisal
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: sqlite3
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
88
|
- - "~>"
|
75
89
|
- !ruby/object:Gem::Version
|
76
|
-
version: 1.
|
90
|
+
version: 1.4.1
|
77
91
|
type: :development
|
78
92
|
prerelease: false
|
79
93
|
version_requirements: !ruby/object:Gem::Requirement
|
80
94
|
requirements:
|
81
95
|
- - "~>"
|
82
96
|
- !ruby/object:Gem::Version
|
83
|
-
version: 1.
|
97
|
+
version: 1.4.1
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: mocha
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
87
101
|
requirements:
|
88
|
-
- - "
|
102
|
+
- - ">="
|
89
103
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
104
|
+
version: '0'
|
91
105
|
type: :development
|
92
106
|
prerelease: false
|
93
107
|
version_requirements: !ruby/object:Gem::Requirement
|
94
108
|
requirements:
|
95
|
-
- - "
|
109
|
+
- - ">="
|
96
110
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
111
|
+
version: '0'
|
98
112
|
- !ruby/object:Gem::Dependency
|
99
113
|
name: simplecov
|
100
114
|
requirement: !ruby/object:Gem::Requirement
|
101
115
|
requirements:
|
102
|
-
- - "
|
116
|
+
- - ">="
|
103
117
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0
|
118
|
+
version: '0'
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
108
122
|
requirements:
|
109
|
-
- - "
|
123
|
+
- - ">="
|
110
124
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0
|
125
|
+
version: '0'
|
112
126
|
- !ruby/object:Gem::Dependency
|
113
127
|
name: test-unit
|
114
128
|
requirement: !ruby/object:Gem::Requirement
|
115
129
|
requirements:
|
116
|
-
- - "
|
130
|
+
- - ">="
|
117
131
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
132
|
+
version: '0'
|
119
133
|
type: :development
|
120
134
|
prerelease: false
|
121
135
|
version_requirements: !ruby/object:Gem::Requirement
|
122
136
|
requirements:
|
123
|
-
- - "
|
137
|
+
- - ">="
|
124
138
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
139
|
+
version: '0'
|
126
140
|
- !ruby/object:Gem::Dependency
|
127
141
|
name: minitest
|
128
142
|
requirement: !ruby/object:Gem::Requirement
|
129
143
|
requirements:
|
130
|
-
- - "
|
144
|
+
- - ">="
|
131
145
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
146
|
+
version: '0'
|
133
147
|
type: :development
|
134
148
|
prerelease: false
|
135
149
|
version_requirements: !ruby/object:Gem::Requirement
|
136
150
|
requirements:
|
137
|
-
- - "
|
151
|
+
- - ">="
|
138
152
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
153
|
+
version: '0'
|
140
154
|
- !ruby/object:Gem::Dependency
|
141
155
|
name: redcarpet
|
142
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,16 +169,16 @@ dependencies:
|
|
155
169
|
name: yard
|
156
170
|
requirement: !ruby/object:Gem::Requirement
|
157
171
|
requirements:
|
158
|
-
- - "
|
172
|
+
- - ">="
|
159
173
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0
|
174
|
+
version: '0'
|
161
175
|
type: :development
|
162
176
|
prerelease: false
|
163
177
|
version_requirements: !ruby/object:Gem::Requirement
|
164
178
|
requirements:
|
165
|
-
- - "
|
179
|
+
- - ">="
|
166
180
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0
|
181
|
+
version: '0'
|
168
182
|
- !ruby/object:Gem::Dependency
|
169
183
|
name: pry
|
170
184
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,8 +206,6 @@ files:
|
|
192
206
|
- README.md
|
193
207
|
- Rakefile
|
194
208
|
- lib/generators/public_activity.rb
|
195
|
-
- lib/generators/public_activity/activity/activity_generator.rb
|
196
|
-
- lib/generators/public_activity/activity/templates/activity.rb
|
197
209
|
- lib/generators/public_activity/migration/migration_generator.rb
|
198
210
|
- lib/generators/public_activity/migration/templates/migration.rb
|
199
211
|
- lib/generators/public_activity/migration_upgrade/migration_upgrade_generator.rb
|
@@ -255,7 +267,7 @@ homepage: https://github.com/pokonski/public_activity
|
|
255
267
|
licenses:
|
256
268
|
- MIT
|
257
269
|
metadata: {}
|
258
|
-
post_install_message:
|
270
|
+
post_install_message:
|
259
271
|
rdoc_options: []
|
260
272
|
require_paths:
|
261
273
|
- lib
|
@@ -263,16 +275,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
263
275
|
requirements:
|
264
276
|
- - ">="
|
265
277
|
- !ruby/object:Gem::Version
|
266
|
-
version:
|
278
|
+
version: 2.5.0
|
267
279
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
268
280
|
requirements:
|
269
281
|
- - ">="
|
270
282
|
- !ruby/object:Gem::Version
|
271
283
|
version: '0'
|
272
284
|
requirements: []
|
273
|
-
|
274
|
-
|
275
|
-
signing_key:
|
285
|
+
rubygems_version: 3.3.13
|
286
|
+
signing_key:
|
276
287
|
specification_version: 4
|
277
288
|
summary: Easy activity tracking for ActiveRecord models
|
278
289
|
test_files:
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'generators/public_activity'
|
4
|
-
require 'rails/generators/active_record'
|
5
|
-
|
6
|
-
module PublicActivity
|
7
|
-
module Generators
|
8
|
-
# Activity generator that creates activity model file from template
|
9
|
-
class ActivityGenerator < ActiveRecord::Generators::Base
|
10
|
-
extend Base
|
11
|
-
|
12
|
-
argument :name, :type => :string, :default => 'activity'
|
13
|
-
# Create model in project's folder
|
14
|
-
def generate_files
|
15
|
-
copy_file 'activity.rb', "app/models/#{name}.rb"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|