7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/toolx/core/operation/params_wrapper.rb', line 7
def initialize(*args, **kwargs)
params = args.first.nil? ? kwargs : args.first
if self.class.const_defined?(:Params, false) && !params.is_a?(self.class.const_get(:Params, false))
begin
params = self.class.const_get(:Params, false).new(params.deep_symbolize_keys)
rescue Dry::Struct::Error => e
message = <<~MSG
Expected #{self.class.name} keyword args: #{self.class.const_get(:Params, false)}
Got: #{params.inspect}
Message: #{e.message}
MSG
raise ParamsArgumentError.new(message, e)
end
end
@params = params
if args.present? || kwargs.present?
super
else
super()
end
end
|