approval 0.5.0 → 0.6.0

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