wfl_simple_activity 0.1.25 → 0.1.26

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/public_activity.rb +70 -0
  3. data/lib/public_activity/.DS_Store +0 -0
  4. data/lib/public_activity/actions/creation.rb +19 -0
  5. data/lib/public_activity/actions/destruction.rb +19 -0
  6. data/lib/public_activity/actions/update.rb +20 -0
  7. data/lib/public_activity/activity.rb +8 -0
  8. data/lib/public_activity/common.rb +363 -0
  9. data/lib/public_activity/config.rb +102 -0
  10. data/lib/public_activity/models/activist.rb +11 -0
  11. data/lib/public_activity/models/activity.rb +6 -0
  12. data/lib/public_activity/models/adapter.rb +7 -0
  13. data/lib/public_activity/models/trackable.rb +11 -0
  14. data/lib/public_activity/orm/.DS_Store +0 -0
  15. data/lib/public_activity/orm/active_record.rb +7 -0
  16. data/lib/public_activity/orm/active_record/activist.rb +35 -0
  17. data/lib/public_activity/orm/active_record/activity.rb +66 -0
  18. data/lib/public_activity/orm/active_record/adapter.rb +23 -0
  19. data/lib/public_activity/orm/active_record/trackable.rb +17 -0
  20. data/lib/public_activity/orm/mongo_mapper.rb +6 -0
  21. data/lib/public_activity/orm/mongo_mapper/activist.rb +36 -0
  22. data/lib/public_activity/orm/mongo_mapper/activity.rb +35 -0
  23. data/lib/public_activity/orm/mongo_mapper/adapter.rb +19 -0
  24. data/lib/public_activity/orm/mongo_mapper/trackable.rb +13 -0
  25. data/lib/public_activity/orm/mongoid.rb +6 -0
  26. data/lib/public_activity/orm/mongoid/activist.rb +36 -0
  27. data/lib/public_activity/orm/mongoid/activity.rb +34 -0
  28. data/lib/public_activity/orm/mongoid/adapter.rb +19 -0
  29. data/lib/public_activity/orm/mongoid/trackable.rb +13 -0
  30. data/lib/public_activity/renderable.rb +166 -0
  31. data/lib/public_activity/roles/deactivatable.rb +44 -0
  32. data/lib/public_activity/roles/tracked.rb +196 -0
  33. data/lib/public_activity/testing.rb +37 -0
  34. data/lib/public_activity/utility/store_controller.rb +32 -0
  35. data/lib/public_activity/utility/view_helpers.rb +30 -0
  36. data/lib/public_activity/version.rb +6 -0
  37. data/lib/wfl_simple_activity.rb +0 -1
  38. data/lib/wfl_simple_activity/version.rb +1 -1
  39. metadata +36 -2
  40. data/lib/wfl_simple_activity/common_activity.rb +0 -23
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file provides functionality for testing your code with public_activity
4
+ # activated or deactivated.
5
+ # This file should only be required in test/spec code!
6
+ #
7
+ # To enable PublicActivity testing capabilities do:
8
+ # require 'public_activity/testing'
9
+ module PublicActivity
10
+ # Execute the code block with PublicActiviy active
11
+ #
12
+ # Example usage:
13
+ # PublicActivity.with_tracking do
14
+ # # your test code here
15
+ # end
16
+ def self.with_tracking
17
+ current = PublicActivity.config.enabled
18
+ PublicActivity.config.enabled(true)
19
+ yield
20
+ ensure
21
+ PublicActivity.config.enabled(current)
22
+ end
23
+
24
+ # Execute the code block with PublicActiviy deactive
25
+ #
26
+ # Example usage:
27
+ # PublicActivity.without_tracking do
28
+ # # your test code here
29
+ # end
30
+ def self.without_tracking
31
+ current = PublicActivity.enabled?
32
+ PublicActivity.config.enabled(false)
33
+ yield
34
+ ensure
35
+ PublicActivity.config.enabled(current)
36
+ end
37
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicActivity
4
+ class << self
5
+ # Setter for remembering controller instance
6
+ def set_controller(controller)
7
+ Thread.current[:public_activity_controller] = controller
8
+ end
9
+
10
+ # Getter for accessing the controller instance
11
+ def get_controller
12
+ Thread.current[:public_activity_controller]
13
+ end
14
+ end
15
+
16
+ # Module included in controllers to allow p_a access to controller instance
17
+ module StoreController
18
+ extend ActiveSupport::Concern
19
+
20
+ included do
21
+ around_action :store_controller_for_public_activity if respond_to?(:around_action)
22
+ around_filter :store_controller_for_public_activity unless respond_to?(:around_action)
23
+ end
24
+
25
+ def store_controller_for_public_activity
26
+ PublicActivity.set_controller(self)
27
+ yield
28
+ ensure
29
+ PublicActivity.set_controller(nil)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Provides a shortcut from views to the rendering method.
4
+ module PublicActivity
5
+ # Module extending ActionView::Base and adding `render_activity` helper.
6
+ module ViewHelpers
7
+ # View helper for rendering an activity, calls {PublicActivity::Activity#render} internally.
8
+ def render_activity activities, options = {}
9
+ if activities.is_a? PublicActivity::Activity
10
+ activities.render self, options
11
+ elsif activities.respond_to?(:map)
12
+ # depend on ORMs to fetch as needed
13
+ # maybe we can support Postgres streaming with this?
14
+ activities.map {|activity| activity.render self, options.dup }.join.html_safe
15
+ end
16
+ end
17
+ alias_method :render_activities, :render_activity
18
+
19
+ # Helper for setting content_for in activity partial, needed to
20
+ # flush remains in between partial renders.
21
+ def single_content_for(name, content = nil, &block)
22
+ @view_flow.set(name, ActiveSupport::SafeBuffer.new)
23
+ content_for(name, content, &block)
24
+ end
25
+ end
26
+ end
27
+
28
+ ActiveSupport.on_load(:action_view) do
29
+ include PublicActivity::ViewHelpers
30
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicActivity
4
+ # A constant with gem's version
5
+ VERSION = '1.6.4'
6
+ end
@@ -5,5 +5,4 @@ module WflSimpleActivity
5
5
  # Your code goes here...
6
6
  end
7
7
 
8
- require 'wfl_simple_activity/common_activity.rb'
9
8
  require 'public_activity.rb'
@@ -1,3 +1,3 @@
1
1
  module WflSimpleActivity
2
- VERSION = "0.1.25"
2
+ VERSION = "0.1.26"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wfl_simple_activity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
4
+ version: 0.1.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - longhaoran
@@ -55,8 +55,42 @@ files:
55
55
  - lib/generators/wfl_simple_activity/templates/activity.rb
56
56
  - lib/generators/wfl_simple_activity/templates/create_wfl_activities.rb
57
57
  - lib/generators/wfl_simple_activity/templates/wfl_activity.rb
58
+ - lib/public_activity.rb
59
+ - lib/public_activity/.DS_Store
60
+ - lib/public_activity/actions/creation.rb
61
+ - lib/public_activity/actions/destruction.rb
62
+ - lib/public_activity/actions/update.rb
63
+ - lib/public_activity/activity.rb
64
+ - lib/public_activity/common.rb
65
+ - lib/public_activity/config.rb
66
+ - lib/public_activity/models/activist.rb
67
+ - lib/public_activity/models/activity.rb
68
+ - lib/public_activity/models/adapter.rb
69
+ - lib/public_activity/models/trackable.rb
70
+ - lib/public_activity/orm/.DS_Store
71
+ - lib/public_activity/orm/active_record.rb
72
+ - lib/public_activity/orm/active_record/activist.rb
73
+ - lib/public_activity/orm/active_record/activity.rb
74
+ - lib/public_activity/orm/active_record/adapter.rb
75
+ - lib/public_activity/orm/active_record/trackable.rb
76
+ - lib/public_activity/orm/mongo_mapper.rb
77
+ - lib/public_activity/orm/mongo_mapper/activist.rb
78
+ - lib/public_activity/orm/mongo_mapper/activity.rb
79
+ - lib/public_activity/orm/mongo_mapper/adapter.rb
80
+ - lib/public_activity/orm/mongo_mapper/trackable.rb
81
+ - lib/public_activity/orm/mongoid.rb
82
+ - lib/public_activity/orm/mongoid/activist.rb
83
+ - lib/public_activity/orm/mongoid/activity.rb
84
+ - lib/public_activity/orm/mongoid/adapter.rb
85
+ - lib/public_activity/orm/mongoid/trackable.rb
86
+ - lib/public_activity/renderable.rb
87
+ - lib/public_activity/roles/deactivatable.rb
88
+ - lib/public_activity/roles/tracked.rb
89
+ - lib/public_activity/testing.rb
90
+ - lib/public_activity/utility/store_controller.rb
91
+ - lib/public_activity/utility/view_helpers.rb
92
+ - lib/public_activity/version.rb
58
93
  - lib/wfl_simple_activity.rb
59
- - lib/wfl_simple_activity/common_activity.rb
60
94
  - lib/wfl_simple_activity/version.rb
61
95
  - wfl_simple_activity.gemspec
62
96
  homepage: https://github.com/LongLonghaoran/wfl_simple_activity
@@ -1,23 +0,0 @@
1
- require 'public_activity'
2
- module CommonActivity
3
- extend ActiveSupport::Concern
4
- included do |base|
5
- include PublicActivity::Model
6
- tracked(
7
- owner: proc { |controller, model| controller&.current_user },
8
- model_changes: proc {|controller, model| model.changes},
9
- recipient: proc { |controller, model| model },
10
- params: {
11
- request_params: proc {|controller, model| controller&.params&.to_h}
12
- }
13
- )
14
-
15
- has_many :activities, as: :trackable, class_name: 'PublicActivity::Activity', dependent: :destroy
16
-
17
- after_rollback proc {
18
- self.create_activity key: "#{self.class.name.underscore}.failed", recipient: self
19
- # 由于这里无法获取controller,需要自行采用其他方式来获取current_user,比如: 在oa-saas中有个Thread.current保存了全局的变量
20
- # self.create_activity key: "#{self.class.name.underscore}.failed", owner: User.find(Thread.current[:user_id]), recipient: self
21
- }
22
- end
23
- end