lib/strict/interface.rb in strict-1.3.0 vs lib/strict/interface.rb in strict-1.3.1
- old
+ new
@@ -11,16 +11,22 @@
Interfaces::Coercer.new(self)
end
def expose(method_name, &block)
sig = sig(&block)
- parameter_list = sig.parameters.map { |parameter| "#{parameter.name}:" }.join(", ")
- argument_list = sig.parameters.map { |parameter| "#{parameter.name}: #{parameter.name}" }.join(", ")
+ parameter_list = [
+ *sig.parameters.map { |parameter| "#{parameter.name}:" },
+ "&block"
+ ].join(", ")
+ argument_list = [
+ *sig.parameters.map { |parameter| "#{parameter.name}: #{parameter.name}" },
+ "&block"
+ ].join(", ")
module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
- def #{method_name}(#{parameter_list}, &block) # def method_name(one:, two:, three:, &block)
- implementation.#{method_name}(#{argument_list}, &block) # implementation.method_name(one: one, two: two, three: three, &block)
- end # end
+ def #{method_name}(#{parameter_list}) # def method_name(one:, two:, three:, &block)
+ implementation.#{method_name}(#{argument_list}) # implementation.method_name(one: one, two: two, three: three, &block)
+ end # end
RUBY
end
end
end