choron_support 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/choron_support/domain_delegate.rb +6 -26
- data/lib/choron_support/version.rb +1 -1
- 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: d7a4560cc78c0d228363cffeb410e12154e8b87dbc0069f616f902b043d1554a
|
4
|
+
data.tar.gz: 15605732d079e4d29eadd67297ee004cafd32ed1fd9e97ff6741f83d02828587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e70625d4eb7fb2804bddf6f800ea7b87955a1ae9c5fe42a32982c88b38c616fd0a6c6572c7e28b2bc865c12a9ecfceab559d8ba43486702f65b54275ab689e5
|
7
|
+
data.tar.gz: bf4570b46ddc3a38853dc6083458f831c055421be55024e11e45c5c6e5e104fe4c3dde17de84239fc93ee1beb906c9506aa9f9e0211016bc087a208bfd878029
|
data/Gemfile.lock
CHANGED
@@ -6,19 +6,7 @@ module ChoronSupport
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
-
|
10
|
-
|
11
|
-
# Forwardable が ActiveSupport#delegate を上書きしてしまうため、間違って使ったときのためエラーをraiseするようにしています
|
12
|
-
def self.delegate(*params, **keyparams)
|
13
|
-
# delegate :hoge, to: :fuga という形で呼び出された場合は、エラーをraiseする
|
14
|
-
if keyparams[:to].present?
|
15
|
-
raise DelegationError, "ActiveSupport#delegate is not usable. Please use Forwardable#delegate.\n@example\n delegate size: :array"
|
16
|
-
else
|
17
|
-
super
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
# QueryオブジェクトパターンをEasyに使うためのクラスメソッドです
|
9
|
+
# 処理を別クラスに委任する設定をEasyに使うためのクラスメソッドです
|
22
10
|
# @param [Symbol] method_name Modelに定義されるメソッド名
|
23
11
|
# @param [Choron::Domains::Base] option domain Domainクラスを文字列で直接指定することができます。シンボルを渡すとクラス化を自動で行います。デフォルトはnilです。
|
24
12
|
# @param [Symbol] option domain_to_method 委譲先のDomainクラスの呼び出しメソッドを指定できます。デフォルトは :call です
|
@@ -60,7 +48,9 @@ module ChoronSupport
|
|
60
48
|
# ドメインオブジェクトにデリゲートさせます
|
61
49
|
# 例: def_delegator :__domains_users_purchase_object__, :call, :purchase
|
62
50
|
# purchase メソッドを __domains_xxx__ の call メソッドにデリゲートする
|
63
|
-
|
51
|
+
define_method(method_symbol) do |*args, **keyparams, &block|
|
52
|
+
send(domain_object_method_name).send(to, *args, **keyparams, &block)
|
53
|
+
end
|
64
54
|
end
|
65
55
|
|
66
56
|
# domain_delegate とほぼ同じ動きですが、こちらはクラスメソッドをデリゲートするものです。
|
@@ -88,18 +78,8 @@ module ChoronSupport
|
|
88
78
|
def self.class_domain_delegate(method_symbol, specific: true, class_name: nil, to: :call)
|
89
79
|
domain_class = __generate_choron_domain_class(method_symbol, specific, class_name)
|
90
80
|
|
91
|
-
|
92
|
-
|
93
|
-
case [!params.empty?, !keyparams.empty?]
|
94
|
-
when [true, true]
|
95
|
-
domain_class.new(self).send(to, *params, **keyparams)
|
96
|
-
when [true, false]
|
97
|
-
domain_class.new(self).send(to, *params)
|
98
|
-
when [false, true]
|
99
|
-
domain_class.new(self).send(to, **keyparams)
|
100
|
-
else
|
101
|
-
domain_class.new(self).send(to)
|
102
|
-
end
|
81
|
+
define_singleton_method(method_symbol) do |*params, **keyparams, &block|
|
82
|
+
domain_class.new(self).send(to, *params, **keyparams, &block)
|
103
83
|
end
|
104
84
|
end
|
105
85
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: choron_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mksava
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|