approval 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b64f5cbbf148b7340aff7de77d998bded8d7b3ee0437e7993f9a2089adb7c66
4
- data.tar.gz: e80a019fd898640e4ed837664661e84053c7bee2501d1e26ea73ce1587ff6ace
3
+ metadata.gz: b569ae57b3644b8c2cc853e55ac67f14436447d84033bf334979e3bc77ef2a3f
4
+ data.tar.gz: 7e283cb4c83a1dc16e4b2866b2ee87e0ab39991614b1c6856b34d8afbf33debd
5
5
  SHA512:
6
- metadata.gz: a0ab4cfb2e56c725b36188c4d6c91962c2c67c0cc64a95e9624e95d94d24560a733cc8d648ec9364e05b20bff396b553c49a439fb933bfbd576b9d42cf05a78f
7
- data.tar.gz: '090a5b2c02d64f05a7c0b3519b5bb7c2439bc1ba4d279817c4df24c294228763ae9b56c7d38df49fa05223a8f26ade7e7e1ff485b637806ad4a5e8a6d054ce95'
6
+ metadata.gz: 3adfc855ae861184026e30ae8f55b2b632118cfae5d28d34f8d2c9171ba9179b58f056c54f5ccfeb9bac79df181ad5a79026db1c32473b08167b6fced7aaaca1
7
+ data.tar.gz: 534bc1feeeb6fb610f9a1d92c09e5a718c78b51a5affbf1d0446fbdb71a2ab91f774c728d577328d4ef38b5b4fd93f44b1db9096054d0e21572c46e485723675
@@ -1,6 +1,7 @@
1
1
  module Approval
2
2
  class ExecuteForm
3
3
  include ::ActiveModel::Model
4
+ include ::Approval::FormNotifiable
4
5
 
5
6
  attr_accessor :user, :reason, :request
6
7
 
@@ -32,11 +33,13 @@ module Approval
32
33
  private
33
34
 
34
35
  def execute
35
- ::Approval::Request.transaction do
36
- request.lock!
37
- request.comments.new(user_id: user.id, content: reason) if reason
38
- request.execute
39
- yield(request)
36
+ instrument "execute" do |payload|
37
+ ::Approval::Request.transaction do
38
+ request.lock!
39
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason) if reason
40
+ request.execute
41
+ yield(request)
42
+ end
40
43
  end
41
44
  end
42
45
 
@@ -2,6 +2,7 @@ module Approval
2
2
  module RequestForm
3
3
  class Base
4
4
  include ::ActiveModel::Model
5
+ include ::Approval::FormNotifiable
5
6
 
6
7
  attr_accessor :user, :reason, :records
7
8
 
@@ -4,16 +4,18 @@ module Approval
4
4
  private
5
5
 
6
6
  def prepare
7
- ::Approval::Request.transaction do
8
- request.comments.new(user_id: user.id, content: reason)
9
- Array(records).each do |record|
10
- request.items.new(
11
- event: "create",
12
- resource_type: record.class.to_s,
13
- params: record.create_params_for_approval,
14
- )
7
+ instrument "request" do |payload|
8
+ ::Approval::Request.transaction do
9
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
10
+ Array(records).each do |record|
11
+ request.items.new(
12
+ event: "create",
13
+ resource_type: record.class.to_s,
14
+ params: record.create_params_for_approval,
15
+ )
16
+ end
17
+ yield(request)
15
18
  end
16
- yield(request)
17
19
  end
18
20
  end
19
21
  end
@@ -4,16 +4,18 @@ module Approval
4
4
  private
5
5
 
6
6
  def prepare
7
- ::Approval::Request.transaction do
8
- request.comments.new(user_id: user.id, content: reason)
9
- Array(records).each do |record|
10
- request.items.new(
11
- event: "destroy",
12
- resource_type: record.class.to_s,
13
- resource_id: record.id,
14
- )
7
+ instrument "request" do |payload|
8
+ ::Approval::Request.transaction do
9
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
10
+ Array(records).each do |record|
11
+ request.items.new(
12
+ event: "destroy",
13
+ resource_type: record.class.to_s,
14
+ resource_id: record.id,
15
+ )
16
+ end
17
+ yield(request)
15
18
  end
16
- yield(request)
17
19
  end
18
20
  end
19
21
  end
@@ -4,16 +4,18 @@ module Approval
4
4
  private
5
5
 
6
6
  def prepare
7
- ::Approval::Request.transaction do
8
- request.comments.new(user_id: user.id, content: reason)
9
- Array(records).each do |record|
10
- request.items.new(
11
- event: "perform",
12
- resource_type: record.class.to_s,
13
- params: extract_params_from(record),
14
- )
7
+ instrument "request" do |payload|
8
+ ::Approval::Request.transaction do
9
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
10
+ Array(records).each do |record|
11
+ request.items.new(
12
+ event: "perform",
13
+ resource_type: record.class.to_s,
14
+ params: extract_params_from(record),
15
+ )
16
+ end
17
+ yield(request)
15
18
  end
16
- yield(request)
17
19
  end
18
20
  end
19
21
 
@@ -4,17 +4,19 @@ module Approval
4
4
  private
5
5
 
6
6
  def prepare
7
- ::Approval::Request.transaction do
8
- request.comments.new(user_id: user.id, content: reason)
9
- Array(records).each do |record|
10
- request.items.new(
11
- event: "update",
12
- resource_type: record.class.to_s,
13
- resource_id: record.id,
14
- params: record.update_params_for_approval,
15
- )
7
+ instrument "request" do |payload|
8
+ ::Approval::Request.transaction do
9
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
10
+ Array(records).each do |record|
11
+ request.items.new(
12
+ event: "update",
13
+ resource_type: record.class.to_s,
14
+ resource_id: record.id,
15
+ params: record.update_params_for_approval,
16
+ )
17
+ end
18
+ yield(request)
16
19
  end
17
- yield(request)
18
20
  end
19
21
  end
20
22
  end
@@ -6,11 +6,13 @@ module Approval
6
6
  private
7
7
 
8
8
  def prepare
9
- ::Approval::Request.transaction do
10
- request.lock!
11
- request.assign_attributes(state: :approved, approved_at: Time.current, respond_user_id: user.id)
12
- request.comments.new(user_id: user.id, content: reason)
13
- yield(request)
9
+ instrument "approve" do |payload|
10
+ ::Approval::Request.transaction do
11
+ request.lock!
12
+ request.assign_attributes(state: :approved, approved_at: Time.current, respond_user_id: user.id)
13
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
14
+ yield(request)
15
+ end
14
16
  end
15
17
  end
16
18
  end
@@ -6,12 +6,14 @@ module Approval
6
6
  private
7
7
 
8
8
  def prepare
9
- ::Approval::Request.transaction do
10
- request.lock!
11
- request.assign_attributes(state: :approved, approved_at: Time.current, respond_user_id: user.id)
12
- request.comments.new(user_id: user.id, content: reason)
13
- request.execute
14
- yield(request)
9
+ instrument "approve_with_execute" do |payload|
10
+ ::Approval::Request.transaction do
11
+ request.lock!
12
+ request.assign_attributes(state: :approved, approved_at: Time.current, respond_user_id: user.id)
13
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
14
+ request.execute
15
+ yield(request)
16
+ end
15
17
  end
16
18
  end
17
19
  end
@@ -2,6 +2,7 @@ module Approval
2
2
  module RespondForm
3
3
  class Base
4
4
  include ::ActiveModel::Model
5
+ include ::Approval::FormNotifiable
5
6
 
6
7
  attr_accessor :user, :reason, :request
7
8
 
@@ -4,11 +4,13 @@ module Approval
4
4
  private
5
5
 
6
6
  def prepare
7
- ::Approval::Request.transaction do
8
- request.lock!
9
- request.assign_attributes(state: :cancelled, cancelled_at: Time.current, respond_user_id: user.id)
10
- request.comments.new(user_id: user.id, content: reason)
11
- yield(request)
7
+ instrument "cancel" do |payload|
8
+ ::Approval::Request.transaction do
9
+ request.lock!
10
+ request.assign_attributes(state: :cancelled, cancelled_at: Time.current, respond_user_id: user.id)
11
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
12
+ yield(request)
13
+ end
12
14
  end
13
15
  end
14
16
  end
@@ -6,11 +6,13 @@ module Approval
6
6
  private
7
7
 
8
8
  def prepare
9
- ::Approval::Request.transaction do
10
- request.lock!
11
- request.assign_attributes(state: :rejected, rejected_at: Time.current, respond_user_id: user.id)
12
- request.comments.new(user_id: user.id, content: reason)
13
- yield(request)
9
+ instrument "reject" do |payload|
10
+ ::Approval::Request.transaction do
11
+ request.lock!
12
+ request.assign_attributes(state: :rejected, rejected_at: Time.current, respond_user_id: user.id)
13
+ payload[:comment] = request.comments.new(user_id: user.id, content: reason)
14
+ yield(request)
15
+ end
14
16
  end
15
17
  end
16
18
  end
@@ -0,0 +1,12 @@
1
+ module Approval
2
+ module FormNotifiable
3
+ extend ActiveSupport::Concern
4
+
5
+ private
6
+
7
+ def instrument(operation, payload = {}, &block)
8
+ payload.merge!(request: request, user: user, reason: reason)
9
+ ActiveSupport::Notifications.instrument("#{operation}.approval", payload, &block)
10
+ end
11
+ end
12
+ end
@@ -34,3 +34,4 @@ en:
34
34
  cancelled_at: "Cancelled at"
35
35
  approved_at: "Approved at"
36
36
  rejected_at: "Rejected at"
37
+ executed_at: "Executed at"
@@ -34,3 +34,4 @@ ja:
34
34
  cancelled_at: 取消日時
35
35
  approved_at: 承認日時
36
36
  rejected_at: 却下日時
37
+ executed_at: 実行日時
@@ -1,3 +1,3 @@
1
1
  module Approval
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.6.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: approval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshiyuki Hirano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-18 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -50,6 +50,7 @@ files:
50
50
  - app/models/approval/respond_form/reject.rb
51
51
  - app/models/concerns/approval/acts_as_resource.rb
52
52
  - app/models/concerns/approval/acts_as_user.rb
53
+ - app/models/concerns/approval/form_notifiable.rb
53
54
  - app/models/concerns/approval/mixins.rb
54
55
  - config/locales/en.yml
55
56
  - config/locales/ja.yml