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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40ef4a2eb00c8d0c4b5d5066eaa7e31cac622c334db5c5cb3d1e1148f911459a
4
- data.tar.gz: 16cc0ae3bebfd84c59c719b979ef64ded66576345252a33370ddb44f24216504
3
+ metadata.gz: d7a4560cc78c0d228363cffeb410e12154e8b87dbc0069f616f902b043d1554a
4
+ data.tar.gz: 15605732d079e4d29eadd67297ee004cafd32ed1fd9e97ff6741f83d02828587
5
5
  SHA512:
6
- metadata.gz: e513dd0ba14ca1df5a4a845885e5b5e0125f47ca568c338ae4f38c6b39ff1e55a21be17ff4cdf8d57994224827ff91d40db8de37ab39e8ab902343188229f65f
7
- data.tar.gz: c3a527888d13b32efcff166c0af46352c3e57d604837ed86f2c09d5aa2db7482f45ade6004f923887181f31f12da9e3668ae8df648ad5117d7509fd8569c7f9d
6
+ metadata.gz: 5e70625d4eb7fb2804bddf6f800ea7b87955a1ae9c5fe42a32982c88b38c616fd0a6c6572c7e28b2bc865c12a9ecfceab559d8ba43486702f65b54275ab689e5
7
+ data.tar.gz: bf4570b46ddc3a38853dc6083458f831c055421be55024e11e45c5c6e5e104fe4c3dde17de84239fc93ee1beb906c9506aa9f9e0211016bc087a208bfd878029
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- choron_support (0.1.6)
4
+ choron_support (0.1.7)
5
5
  activesupport
6
6
 
7
7
  GEM
@@ -6,19 +6,7 @@ module ChoronSupport
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  included do
9
- extend Forwardable
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
- def_delegator domain_object_method_name, to, method_symbol
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
- define_singleton_method(method_symbol) do |*params, **keyparams|
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChoronSupport
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.7"
5
5
  end
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.6
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-04-04 00:00:00.000000000 Z
11
+ date: 2023-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport