vg-service_object 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 +4 -4
- data/lib/vg/service_object/version.rb +1 -1
- data/lib/vg/service_object.rb +17 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 333357254e8d4007eecc70d2a82a40a6319652b2f642443eb8b974429b385275
|
4
|
+
data.tar.gz: e66cd3f53fe5e73550f7f3969ab78902e8f84249293955bc5702e11808041785
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec889f277f4ffe74f2ea00f74d22158ce173047172e16850e9b5131a20c91d18b468949f43b4325e46d4cd2ae22a402c868fccb404bc2d78cdcbb7cb4f3a08cd
|
7
|
+
data.tar.gz: 64cf84f5785e6d9d65c92aa2a0c70740e14a16448da4b097699c9d7da86bbb4361b57d4535cca39e0f144e26bd00b7d126f62b05fc03d91fb7409500248e0e20
|
data/lib/vg/service_object.rb
CHANGED
@@ -3,41 +3,43 @@
|
|
3
3
|
module VG
|
4
4
|
module ServiceObject
|
5
5
|
|
6
|
-
module
|
6
|
+
module CommonSingletonMethods
|
7
7
|
def call(...)
|
8
8
|
callable.call(...)
|
9
9
|
end
|
10
10
|
|
11
|
+
def as_method(name = nil)
|
12
|
+
::VG::SO::GenerateIncludableModule.call(self.name, as: name)
|
13
|
+
end
|
14
|
+
|
15
|
+
alias_method :as_so, :as_method
|
16
|
+
end
|
17
|
+
|
18
|
+
module ClassSingletonMethods
|
19
|
+
|
11
20
|
def callable
|
12
21
|
self.new
|
13
22
|
end
|
14
23
|
|
15
|
-
def as_so(method_name = nil)
|
16
|
-
::VG::SO::GenerateIncludableModule.call(self.name, as: method_name)
|
17
|
-
end
|
18
24
|
end
|
19
25
|
|
20
26
|
module ModuleSingletonMethods
|
21
|
-
|
22
|
-
callable.call(...)
|
23
|
-
end
|
24
|
-
|
27
|
+
|
25
28
|
def callable
|
26
29
|
self::Action.new
|
27
30
|
end
|
28
31
|
|
29
|
-
def as_so(method_name = nil)
|
30
|
-
::VG::SO::GenerateIncludableModule.call(self.name, as: method_name)
|
31
|
-
end
|
32
32
|
end
|
33
33
|
|
34
34
|
def self.included(so)
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
so.singleton_class.included_modules.tap do |included|
|
36
|
+
[CommonSingletonMethods, so.is_a?(Class) ? ClassSingletonMethods : ModuleSingletonMethods].each do |methods|
|
37
|
+
so.extend methods unless included.include?(methods)
|
38
|
+
end
|
39
|
+
end
|
38
40
|
|
39
41
|
so.singleton_class.instance_eval do
|
40
|
-
define_method(:included) { |_base| raise "Can't be included. Use #
|
42
|
+
define_method(:included) { |_base| raise "Can't be included. Use #as_method method instead" }
|
41
43
|
end if so.instance_of?(Module)
|
42
44
|
end
|
43
45
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vg-service_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Gorodulin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|