choron_support 0.1.6 → 0.1.7

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: 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