module Pagy::Search

def pagy_search(*search_args, &block)

the last search argument must be a hash option
it also pushes to the same array an eventually called method and arguments
after the pagination variables are merged to the options
returns an array used to delay the call of #search
def pagy_search(*search_args, &block)
  search_args << {} unless search_args[-1].is_a?(Hash)
  [self, search_args, block].tap do |args|
    args.define_singleton_method(:method_missing){|*a| args += a}
  end
end