#execute
このようなメソッドを持つライブラリがあります
def execute(query, **args)
# ...
end
データを生成するクラスがありますargs
(ユーザーの能力に応じて多くのロジックがあります)
class Abilities
def to_h
{ user: user } # and a lot more data
end
end
今、私が使用しているときは、#execute
常に を使用することを覚えておく必要があります#to_h
。これはかなり面倒で、誰かがそれを忘れると間違いにつながります:
execute(query, abilities.to_h)
したがって、オブジェクトを簡単に渡すことができるように、Abilities
クラスが (ダブル スプラット) 演算子に何らかの形で応答できるかどうか疑問に思っていました。**
execute(query, abilities)
このように呼び出そうとすると、エラーがスローされます。
ArgumentError: wrong number of arguments (given 2, expected 1)
Abilities
それで、私のクラスをのように動作させる方法はありますHash
か? このように派生させることもできますAbilities < Hash
が、ハッシュ ロジックがすべて含まれているため、かなり汚いように見えます。