public_activity 1.6.3 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
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