public_activity 1.6.3 → 2.0.1

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +26 -28
  4. data/Rakefile +6 -5
  5. data/lib/generators/public_activity/migration/migration_generator.rb +3 -1
  6. data/lib/generators/public_activity/migration/templates/migration.rb +12 -10
  7. data/lib/generators/public_activity/migration_upgrade/migration_upgrade_generator.rb +4 -1
  8. data/lib/generators/public_activity/migration_upgrade/templates/upgrade.rb +4 -2
  9. data/lib/generators/public_activity.rb +2 -0
  10. data/lib/public_activity/actions/creation.rb +3 -1
  11. data/lib/public_activity/actions/destruction.rb +2 -0
  12. data/lib/public_activity/actions/update.rb +2 -0
  13. data/lib/public_activity/activity.rb +3 -1
  14. data/lib/public_activity/common.rb +16 -0
  15. data/lib/public_activity/config.rb +2 -0
  16. data/lib/public_activity/models/activist.rb +3 -1
  17. data/lib/public_activity/models/activity.rb +3 -1
  18. data/lib/public_activity/models/adapter.rb +3 -1
  19. data/lib/public_activity/models/trackable.rb +3 -1
  20. data/lib/public_activity/orm/active_record/activist.rb +2 -0
  21. data/lib/public_activity/orm/active_record/activity.rb +29 -11
  22. data/lib/public_activity/orm/active_record/adapter.rb +7 -0
  23. data/lib/public_activity/orm/active_record/trackable.rb +2 -0
  24. data/lib/public_activity/orm/active_record.rb +3 -1
  25. data/lib/public_activity/orm/mongo_mapper/activist.rb +2 -0
  26. data/lib/public_activity/orm/mongo_mapper/activity.rb +2 -0
  27. data/lib/public_activity/orm/mongo_mapper/adapter.rb +7 -0
  28. data/lib/public_activity/orm/mongo_mapper/trackable.rb +2 -0
  29. data/lib/public_activity/orm/mongo_mapper.rb +3 -1
  30. data/lib/public_activity/orm/mongoid/activist.rb +2 -0
  31. data/lib/public_activity/orm/mongoid/activity.rb +2 -0
  32. data/lib/public_activity/orm/mongoid/adapter.rb +7 -0
  33. data/lib/public_activity/orm/mongoid/trackable.rb +2 -0
  34. data/lib/public_activity/orm/mongoid.rb +3 -1
  35. data/lib/public_activity/renderable.rb +5 -2
  36. data/lib/public_activity/roles/deactivatable.rb +2 -0
  37. data/lib/public_activity/roles/tracked.rb +2 -0
  38. data/lib/public_activity/testing.rb +2 -0
  39. data/lib/public_activity/utility/store_controller.rb +2 -0
  40. data/lib/public_activity/utility/view_helpers.rb +2 -0
  41. data/lib/public_activity/version.rb +3 -1
  42. data/lib/public_activity.rb +2 -0
  43. data/test/migrations/001_create_activities.rb +1 -1
  44. data/test/migrations/002_create_articles.rb +2 -3
  45. data/test/migrations/003_create_users.rb +2 -2
  46. data/test/migrations/004_add_nonstandard_to_activities.rb +2 -2
  47. data/test/test_activist.rb +39 -36
  48. data/test/test_activity.rb +39 -38
  49. data/test/test_common.rb +66 -48
  50. data/test/test_controller_integration.rb +19 -11
  51. data/test/test_generators.rb +7 -17
  52. data/test/test_helper.rb +20 -24
  53. data/test/test_testing.rb +13 -10
  54. data/test/test_tracking.rb +171 -147
  55. data/test/test_view_helpers.rb +8 -6
  56. metadata +49 -40
  57. data/lib/generators/public_activity/activity/activity_generator.rb +0 -17
  58. data/lib/generators/public_activity/activity/templates/activity.rb +0 -3
  59. data/test/migrations_base.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59556848ec6a88c2e369638d453fcea77933ff8f208bf7ee24bce3ba7e348698
4
- data.tar.gz: 01e57534e8c82d19d6894831f9d14ec9436b80a312f7098b3b32d319c7715efd
3
+ metadata.gz: f12beefe37e1f8d3c8fbaada9d0318de0838dd8514c1b32c93d47b97d7af6d57
4
+ data.tar.gz: bf5e00de61c14049488a4fe549a9bc198367eca931e9d73c0d47dd0ba9c173f3
5
5
  SHA512:
6
- metadata.gz: af0c3aeb4a6f88f495555bc7a4f1dbc674f652486cee5392fe60a2ad3a4575d068c92364e6474db2f070e7eabe02a60da48563524e028ffe335bc8c4b194a21a
7
- data.tar.gz: 63126e720464f8b66d982aa7558fe50aa1def24ed5f42142e320f0858f424aea4bcd88de6fb880a03b15ba39e77af0a432e9ed1a1dddd4ee2e79935fb2cb9b63
6
+ metadata.gz: a95d53aac261777b5b52a1a35add35acc0d93d742d4cbb3d2f4deea08ec552ade88b61cbd4447146172953b4ecda464b3ea2539ecb82d58d26c7756cdc5c52b7
7
+ data.tar.gz: 7dc0ddb8a3622c52b856f1b5a1f45124d300892559800cd62b06115bc14854d0ff84bf33b5a88a50f9f6ae7c060f298f171cb7d082f9bae3aa9696dfdcb36d5a
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
  gemspec
data/README.md CHANGED
@@ -1,37 +1,35 @@
1
1
  # PublicActivity [![Build Status](https://secure.travis-ci.org/chaps-io/public_activity.svg)](http://travis-ci.org/chaps-io/public_activity) [![Code Climate](https://codeclimate.com/github/chaps-io/public_activity.svg)](https://codeclimate.com/github/chaps-io/public_activity) [![Gem Version](https://badge.fury.io/rb/public_activity.svg)](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 3.0 - 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 - in a similar way to how GitHub does it.
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
- ## Sponsors
7
+ ## Rails 7
8
8
 
9
- <p align="center">
10
- <a style="max-width: 478x" href="https://getstream.io/try-the-api/?utm_source=public-activity&utm_medium=banner&utm_campaign=github"><img src="https://i.imgur.com/q4c8wVO.png"/>
11
- </p>
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
- 1. [Example](#example)
20
- * [Demo](#online-demo)
21
- * [Screencast](#screencast)
22
- * **[Common examples](#common-examples)**
23
- 2. [Setup](#setup)
24
- 1. [Gem installation](#gem-installation)
25
- 2. [Database setup](#database-setup)
26
- 3. [Model configuration](#model-configuration)
27
- 4. [Custom activities](#custom-activities)
28
- 5. [Displaying activities](#displaying-activities)
29
- 1. [Activity views](#activity-views)
30
- 2. [i18n](#i18n)
31
- 3. [Testing](#testing)
32
- 4. [Documentation](#documentation)
33
- 5. **[Help](#help)**
34
- 6. [Upgrading](https://github.com/pokonski/public_activity/wiki/Upgrading-from-pre-0.4.0-versions)
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
- #### i18n
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 wether to turn `public_activity` on
225
+ In your specs you can then blockwise decide whether to turn `public_activity` on
228
226
  or off.
229
227
 
230
228
  ```ruby
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
2
4
  require 'rake'
3
5
  require 'yard'
4
6
  require 'yard/rake/yardoc_task'
5
7
  require 'rake/testtask'
6
8
 
7
- task :default => :test
9
+ task default: :test
8
10
 
9
11
  desc 'Generate documentation for the public_activity plugin.'
10
12
  YARD::Rake::YardocTask.new do |doc|
@@ -12,7 +14,6 @@ YARD::Rake::YardocTask.new do |doc|
12
14
  end
13
15
 
14
16
  Rake::TestTask.new do |t|
15
- t.libs << "test"
16
- t.test_files = FileList['test/test*.rb']
17
+ t.libs << 'test'
18
+ t.test_files = FileList['test/test*.rb']
17
19
  end
18
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'generators/public_activity'
2
4
  require 'rails/generators/active_record'
3
5
 
@@ -7,7 +9,7 @@ module PublicActivity
7
9
  class MigrationGenerator < ActiveRecord::Generators::Base
8
10
  extend Base
9
11
 
10
- argument :name, :type => :string, :default => 'create_activities'
12
+ argument :name, type: :string, default: 'create_activities'
11
13
  # Create migration in project's folder
12
14
  def generate_files
13
15
  migration_template 'migration.rb', "db/migrate/#{name}.rb"
@@ -1,21 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Migration responsible for creating a table with activities
2
- class CreateActivities < (ActiveRecord.version.release() < Gem::Version.new('5.2.0') ? ActiveRecord::Migration : ActiveRecord::Migration[5.2])
3
- # Create table
4
+ class CreateActivities < ActiveRecord::Migration[5.0]
4
5
  def self.up
5
6
  create_table :activities do |t|
6
- t.belongs_to :trackable, :polymorphic => true
7
- t.belongs_to :owner, :polymorphic => true
8
- t.string :key
9
- t.text :parameters
10
- t.belongs_to :recipient, :polymorphic => true
7
+ t.belongs_to :trackable, polymorphic: true
8
+ t.belongs_to :owner, polymorphic: true
9
+ t.string :key
10
+ t.text :parameters
11
+ t.belongs_to :recipient, polymorphic: true
11
12
 
12
13
  t.timestamps
13
14
  end
14
15
 
15
- add_index :activities, [:trackable_id, :trackable_type]
16
- add_index :activities, [:owner_id, :owner_type]
17
- add_index :activities, [:recipient_id, :recipient_type]
16
+ add_index :activities, %i[trackable_id trackable_type]
17
+ add_index :activities, %i[owner_id owner_type]
18
+ add_index :activities, %i[recipient_id recipient_type]
18
19
  end
20
+
19
21
  # Drop table
20
22
  def self.down
21
23
  drop_table :activities
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'generators/public_activity'
2
4
  require 'rails/generators/active_record'
3
5
 
@@ -7,7 +9,8 @@ module PublicActivity
7
9
  class MigrationUpgradeGenerator < ActiveRecord::Generators::Base
8
10
  extend Base
9
11
 
10
- argument :name, :type => :string, :default => 'upgrade_activities'
12
+ argument :name, type: :string, default: 'upgrade_activities'
13
+
11
14
  # Create migration in project's folder
12
15
  def generate_files
13
16
  migration_template 'upgrade.rb', "db/migrate/#{name}.rb"
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Migration responsible for creating a table with activities
2
- class UpgradeActivities < ActiveRecord::Migration
4
+ class UpgradeActivities < ActiveRecord::Migration[5.0]
3
5
  # Create table
4
6
  def self.change
5
7
  change_table :activities do |t|
6
- t.belongs_to :recipient, :polymorphic => true
8
+ t.belongs_to :recipient, polymorphic: true
7
9
  end
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/generators/named_base'
2
4
 
3
5
  module PublicActivity
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Handles creation of Activities upon destruction and update of tracked model.
3
5
  module Creation
@@ -14,4 +16,4 @@ module PublicActivity
14
16
  create_activity(:create)
15
17
  end
16
18
  end
17
- end
19
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Handles creation of Activities upon destruction of tracked model.
3
5
  module Destruction
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Handles creation of Activities upon destruction and update of tracked model.
3
5
  module Update
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Main model, stores all information about what happened,
3
5
  # who caused it, when and anything else.
4
6
  class Activity < inherit_orm("Activity")
5
7
  end
6
- end
8
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Happens when creating custom activities without either action or a key.
3
5
  class NoKeyProvided < Exception; end
@@ -257,6 +259,20 @@ module PublicActivity
257
259
  nil
258
260
  end
259
261
 
262
+ # Directly saves activity to database. Works the same as create_activity
263
+ # but throws validation error for each supported ORM.
264
+ #
265
+ # @see #create_activity
266
+ def create_activity!(*args)
267
+ return unless self.public_activity_enabled?
268
+ options = prepare_settings(*args)
269
+
270
+ if call_hook_safe(options[:key].split('.').last)
271
+ reset_activity_instance_options
272
+ return PublicActivity::Adapter.create_activity!(self, options)
273
+ end
274
+ end
275
+
260
276
  # Prepares settings used during creation of Activity record.
261
277
  # params passed directly to tracked model have priority over
262
278
  # settings specified in tracked() method
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'singleton'
2
4
 
3
5
  module PublicActivity
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Provides helper methods for selecting activities from a user.
3
5
  module Activist
@@ -6,4 +8,4 @@ module PublicActivity
6
8
  base.extend PublicActivity::inherit_orm("Activist")
7
9
  end
8
10
  end
9
- end
11
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  class Activity < inherit_orm("Activity")
3
5
  end
4
- end
6
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Loads database-specific routines for use by PublicActivity.
3
5
  class Adapter < inherit_orm("Adapter")
4
6
  end
5
- end
7
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Provides association for activities bound to this object by *trackable*.
3
5
  module Trackable
@@ -6,4 +8,4 @@ module PublicActivity
6
8
  base.extend PublicActivity::inherit_orm("Trackable")
7
9
  end
8
10
  end
9
- end
11
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module ActiveRecord
@@ -1,4 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
4
+
5
+ if not defined? ::PG::ConnectionBad
6
+ module ::PG
7
+ class ConnectionBad < Exception; end
8
+ end
9
+ end
10
+ if not defined? Mysql2::Error::ConnectionError
11
+ module Mysql2
12
+ module Error
13
+ class ConnectionError < Exception; end
14
+ end
15
+ end
16
+ end
17
+
2
18
  module ORM
3
19
  module ActiveRecord
4
20
  # The ActiveRecord model containing
@@ -9,20 +25,22 @@ module PublicActivity
9
25
  self.abstract_class = true
10
26
 
11
27
  # Define polymorphic association to the parent
12
- belongs_to :trackable, :polymorphic => true
28
+ belongs_to :trackable, polymorphic: true
13
29
 
14
30
  case ::ActiveRecord::VERSION::MAJOR
15
- when 3..4
16
- # Define ownership to a resource responsible for this activity
17
- belongs_to :owner, :polymorphic => true
18
- # Define ownership to a resource targeted by this activity
19
- belongs_to :recipient, :polymorphic => true
20
31
  when 5
21
- with_options(:required => false) do
32
+ with_options(required: false) do
33
+ # Define ownership to a resource responsible for this activity
34
+ belongs_to :owner, polymorphic: true
35
+ # Define ownership to a resource targeted by this activity
36
+ belongs_to :recipient, polymorphic: true
37
+ end
38
+ when 6..7
39
+ with_options(optional: true) do
22
40
  # Define ownership to a resource responsible for this activity
23
- belongs_to :owner, :polymorphic => true
41
+ belongs_to :owner, polymorphic: true
24
42
  # Define ownership to a resource targeted by this activity
25
- belongs_to :recipient, :polymorphic => true
43
+ belongs_to :recipient, polymorphic: true
26
44
  end
27
45
  end
28
46
 
@@ -33,9 +51,9 @@ module PublicActivity
33
51
  else
34
52
  warn("[WARN] table #{name} doesn't exist. Skipping PublicActivity::Activity#parameters's serialization")
35
53
  end
36
- rescue ::ActiveRecord::NoDatabaseError => e
54
+ rescue ::ActiveRecord::NoDatabaseError
37
55
  warn("[WARN] database doesn't exist. Skipping PublicActivity::Activity#parameters's serialization")
38
- rescue ::PG::ConnectionBad => e
56
+ rescue ::PG::ConnectionBad
39
57
  warn("[WARN] couldn't connect to database. Skipping PublicActivity::Activity#parameters's serialization")
40
58
  rescue Mysql2::Error::ConnectionError
41
59
  warn("[WARN] couldn't connect to database. Skipping PublicActivity::Activity#parameters's serialization")
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  # Support for ActiveRecord for PublicActivity. Used by default and supported
@@ -10,6 +12,11 @@ module PublicActivity
10
12
  def self.create_activity(trackable, options)
11
13
  trackable.activities.create options
12
14
  end
15
+
16
+ # Creates activity on `trackable` with `options`; throws error on validation failure
17
+ def self.create_activity!(trackable, options)
18
+ trackable.activities.create! options
19
+ end
13
20
  end
14
21
  end
15
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module ActiveRecord
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_record'
2
4
  require_relative 'active_record/activity.rb'
3
5
  require_relative 'active_record/adapter.rb'
4
6
  require_relative 'active_record/activist.rb'
5
- require_relative 'active_record/trackable.rb'
7
+ require_relative 'active_record/trackable.rb'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module MongoMapper
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'mongo_mapper'
2
4
  require 'active_support/core_ext'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module MongoMapper
@@ -6,6 +8,11 @@ module PublicActivity
6
8
  def self.create_activity(trackable, options)
7
9
  trackable.activities.create options
8
10
  end
11
+
12
+ # Creates activity on `trackable` with `options`; throws error on validation failure
13
+ def self.create_activity!(trackable, options)
14
+ trackable.activities.create! options
15
+ end
9
16
  end
10
17
  end
11
18
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module MongoMapper
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "mongo_mapper/activity.rb"
2
4
  require_relative "mongo_mapper/adapter.rb"
3
5
  require_relative "mongo_mapper/activist.rb"
4
- require_relative "mongo_mapper/trackable.rb"
6
+ require_relative "mongo_mapper/trackable.rb"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module Mongoid
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'mongoid'
2
4
 
3
5
  module PublicActivity
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module Mongoid
@@ -6,6 +8,11 @@ module PublicActivity
6
8
  def self.create_activity(trackable, options)
7
9
  trackable.activities.create options
8
10
  end
11
+
12
+ # Creates activity on `trackable` with `options`; throws error on validation failure
13
+ def self.create_activity!(trackable, options)
14
+ trackable.activities.create! options
15
+ end
9
16
  end
10
17
  end
11
18
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  module ORM
3
5
  module Mongoid
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "mongoid/activity.rb"
2
4
  require_relative "mongoid/adapter.rb"
3
5
  require_relative "mongoid/activist.rb"
4
- require_relative "mongoid/trackable.rb"
6
+ require_relative "mongoid/trackable.rb"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Provides logic for rendering activities. Handles both i18n strings
3
5
  # support and smart partials rendering (different templates per activity key).
@@ -10,7 +12,8 @@ module PublicActivity
10
12
  k.unshift('activity') if k.first != 'activity'
11
13
  k = k.join('.')
12
14
 
13
- I18n.t(k, parameters.merge(params) || {})
15
+ translate_params = parameters.merge(params) || {}
16
+ I18n.t(k, **translate_params)
14
17
  end
15
18
 
16
19
  # Renders activity from views.
@@ -140,7 +143,7 @@ module PublicActivity
140
143
  def prepare_layout(root, layout)
141
144
  if layout
142
145
  path = layout.to_s
143
- unless path.starts_with?(root) || path.starts_with?("/")
146
+ unless path.start_with?(root) || path.start_with?("/")
144
147
  return File.join(root, path)
145
148
  end
146
149
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Enables per-class disabling of PublicActivity functionality.
3
5
  module Deactivatable
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # Main module extending classes we want to keep track of.
3
5
  module Tracked
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file provides functionality for testing your code with public_activity
2
4
  # activated or deactivated.
3
5
  # This file should only be required in test/spec code!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  class << self
3
5
  # Setter for remembering controller instance
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Provides a shortcut from views to the rendering method.
2
4
  module PublicActivity
3
5
  # Module extending ActionView::Base and adding `render_activity` helper.
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PublicActivity
2
4
  # A constant with gem's version
3
- VERSION = '1.6.3'
5
+ VERSION = '2.0.1'
4
6
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support'
2
4
  require 'action_view'
3
5
  # +public_activity+ keeps track of changes made to models
@@ -1 +1 @@
1
- test/migrations/../../lib/generators/public_activity/migration/templates/migration.rb
1
+ ../../lib/generators/public_activity/migration/templates/migration.rb
@@ -1,8 +1,7 @@
1
- require 'migrations_base.rb'
1
+ # frozen_string_literal: true
2
2
 
3
- class CreateArticles < MigrationsBase
3
+ class CreateArticles < ActiveRecord::Migration[5.0]
4
4
  def self.up
5
- puts "creating"
6
5
  create_table :articles do |t|
7
6
  t.string :name
8
7
  t.boolean :published
@@ -1,6 +1,6 @@
1
- require 'migrations_base.rb'
1
+ # frozen_string_literal: true
2
2
 
3
- class CreateUsers < MigrationsBase
3
+ class CreateUsers < ActiveRecord::Migration[5.0]
4
4
  def self.up
5
5
  create_table :users do |t|
6
6
  t.string :name
@@ -1,6 +1,6 @@
1
- require 'migrations_base.rb'
1
+ # frozen_string_literal: true
2
2
 
3
- class AddNonstandardToActivities < MigrationsBase
3
+ class AddNonstandardToActivities < ActiveRecord::Migration[5.0]
4
4
  def change
5
5
  change_table :activities do |t|
6
6
  t.string :nonstandard