Using hooks with options fail in Ruby 3.0
Using hooks with options fail in Ruby 3.0

In Ruby 3.0, positional and keyword arguments are separated.

https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/

In this code, if `**options` is missing, passed options is a part of `*args`.

Here is one of `__original_#{callback}`.

https://github.com/rails/rails/blob/v6.1.6/activemodel/lib/active_model/callbacks.rb#L130-L133

This method receives `*args` and `**options`.
Before Ruby 2.7, the last Hash of `*args` will be `**options`.
After Ruby 3.0, `*args` is still `*args`.  `**options` will be empty.

mongomapper/mongomapper