service_actor 3.9.0 → 3.9.1

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: 240bbafeef337eec8bdb7f265b1c5ad1715ae4909967e65eb0fb313d3aaa74e8
4
- data.tar.gz: 7b8a442ff7ffec97bc9cd1466f5c6a2074e10bfa7edf6319468138acb37ad0d0
3
+ metadata.gz: 623c58764fc64e35585264568ad1a611613d35522fdbb703ec7622b972a5141c
4
+ data.tar.gz: 37181c14d5c9484f0ad52bf593f4a5d2e8abac0f282e3a1cd7a4f64b63e10a8c
5
5
  SHA512:
6
- metadata.gz: b8491915f458d3dae52063f3d4f2131c246101dd50393a9de921d7e68e6189f0eddbc87910438bd8f9a9a68f36f72a5b50c121c4879f07053ad1f0e2ec61be16
7
- data.tar.gz: 4be5e6db8633232e0af626c0c71cb978c78b05be9082058f7bad3aeb81fa485975ade749f8be830f26ac049dc543c78553e0d0182e7d066e1c6e535bb2760fc2
6
+ metadata.gz: 37cc13ea57081d85e5cabf95657ca4fe938c29c3576e7ea7e74a7f4bbd949dd15791a7d0717cb3cf40b31201de2afde68c48ad84f639fb63cd6f950de3b84a26
7
+ data.tar.gz: 14c0ee2ad5e6556230cb87da94479a120ce64df4a97f85a232f78086e55c182502761fa0c2025c2d2a19c83890fc5500acf8206f5b0e32f03bcf97223d701295
@@ -90,16 +90,19 @@ module ServiceActor::Playable
90
90
  end
91
91
 
92
92
  def play_actor(actor)
93
- play_service_actor(actor) ||
94
- play_method(actor) ||
95
- play_interactor(actor) ||
93
+ if actor.is_a?(Symbol)
94
+ send(actor)
95
+ elsif actor.is_a?(Class) && actor.ancestors.include?(ServiceActor::Core)
96
+ play_service_actor(actor)
97
+ elsif actor.is_a?(Class) &&
98
+ actor.ancestors.map(&:name).include?("Interactor")
99
+ play_interactor(actor)
100
+ else
96
101
  actor.call(result)
102
+ end
97
103
  end
98
104
 
99
105
  def play_service_actor(actor)
100
- return unless actor.is_a?(Class)
101
- return unless actor.ancestors.include?(ServiceActor::Core)
102
-
103
106
  actor = actor.new(result)
104
107
  call_output = actor._call
105
108
 
@@ -109,16 +112,10 @@ module ServiceActor::Playable
109
112
  end
110
113
 
111
114
  def play_method(actor)
112
- return unless actor.is_a?(Symbol)
113
-
114
- # return truthy method value, or true as fallback
115
- send(actor) || true
115
+ send(actor)
116
116
  end
117
117
 
118
118
  def play_interactor(actor)
119
- return unless actor.is_a?(Class)
120
- return unless actor.ancestors.map(&:name).include?("Interactor")
121
-
122
119
  result.merge!(actor.call(result.to_h).to_h)
123
120
  end
124
121
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ServiceActor
4
- VERSION = "3.9.0"
4
+ VERSION = "3.9.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_actor
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.0
4
+ version: 3.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunny Ripert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-21 00:00:00.000000000 Z
11
+ date: 2024-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk