> There are also some concerns with keyword arguments, but since I have no idea how problematic this might be, I decided to give it a go.
For what it's worth, I've tested Ruby 2.7 on a fairly large number of packages (a couple hundred) and I only encountered one warning regarding keyword arguments. So it's not a huge issue as far as I'm concerned.
Here's what the warning look like:
~/projects/asciidoctor/kramdown-asciidoc/.bundle/gems/ruby/2.7.0/gems/deep-cover-core-0.7.7/lib/deep_cover/analyser/stats.rb:51: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
~/projects/asciidoctor/kramdown-asciidoc/.bundle/gems/ruby/2.7.0/gems/deep-cover-core-0.7.7/lib/deep_cover/analyser/stats.rb:17: warning: The called method `initialize' is defined here
Both warnings pertain to the same method definition, one at the call site and one at the definition.
Here's the definition:
def initialize(executed: 0, not_executed: 0, not_executable: 0, ignored: 0)
@executed = executed
@not_executed = not_executed
@not_executable = not_executable
@ignored = ignored
freeze
end
Here's the call site:
Analyser::StatsBase.new(to_h.transform_values { |v| (100 * v).fdiv(total).round(DECIMALS) })
So a hash is being passed off as keyword arguments. Ruby wants you to make the conversion explicit. That's the essence of this change.
Best,