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.
- checksums.yaml +4 -4
- data/lib/public_activity.rb +70 -0
- data/lib/public_activity/.DS_Store +0 -0
- data/lib/public_activity/actions/creation.rb +19 -0
- data/lib/public_activity/actions/destruction.rb +19 -0
- data/lib/public_activity/actions/update.rb +20 -0
- data/lib/public_activity/activity.rb +8 -0
- data/lib/public_activity/common.rb +363 -0
- data/lib/public_activity/config.rb +102 -0
- data/lib/public_activity/models/activist.rb +11 -0
- data/lib/public_activity/models/activity.rb +6 -0
- data/lib/public_activity/models/adapter.rb +7 -0
- data/lib/public_activity/models/trackable.rb +11 -0
- data/lib/public_activity/orm/.DS_Store +0 -0
- data/lib/public_activity/orm/active_record.rb +7 -0
- data/lib/public_activity/orm/active_record/activist.rb +35 -0
- data/lib/public_activity/orm/active_record/activity.rb +66 -0
- data/lib/public_activity/orm/active_record/adapter.rb +23 -0
- data/lib/public_activity/orm/active_record/trackable.rb +17 -0
- data/lib/public_activity/orm/mongo_mapper.rb +6 -0
- data/lib/public_activity/orm/mongo_mapper/activist.rb +36 -0
- data/lib/public_activity/orm/mongo_mapper/activity.rb +35 -0
- data/lib/public_activity/orm/mongo_mapper/adapter.rb +19 -0
- data/lib/public_activity/orm/mongo_mapper/trackable.rb +13 -0
- data/lib/public_activity/orm/mongoid.rb +6 -0
- data/lib/public_activity/orm/mongoid/activist.rb +36 -0
- data/lib/public_activity/orm/mongoid/activity.rb +34 -0
- data/lib/public_activity/orm/mongoid/adapter.rb +19 -0
- data/lib/public_activity/orm/mongoid/trackable.rb +13 -0
- data/lib/public_activity/renderable.rb +166 -0
- data/lib/public_activity/roles/deactivatable.rb +44 -0
- data/lib/public_activity/roles/tracked.rb +196 -0
- data/lib/public_activity/testing.rb +37 -0
- data/lib/public_activity/utility/store_controller.rb +32 -0
- data/lib/public_activity/utility/view_helpers.rb +30 -0
- data/lib/public_activity/version.rb +6 -0
- data/lib/wfl_simple_activity.rb +0 -1
- data/lib/wfl_simple_activity/version.rb +1 -1
- metadata +36 -2
- 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
|
data/lib/wfl_simple_activity.rb
CHANGED
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.
|
|
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
|