MiniProfiler / rack-mini-profiler

Profiler for your development and production Ruby rack apps.
MIT License
3.7k stars 402 forks source link

ProfilingMethods in Ruby 3.0.0 #480

Closed kaiquekandykoga closed 3 years ago

kaiquekandykoga commented 3 years ago

I opened an issue recently for Ruby on Rails https://github.com/rails/rails/issues/41069, however I was advised to open an issue here instead.

ActionView uses this part of code:

https://github.com/MiniProfiler/rack-mini-profiler/blob/c7742152bae5f815e5e5da3a1d095889cac3e573/lib/mini_profiler/profiling_methods.rb#L84

When args contains [#<ActionView::Base:0x0000000000a050>, {}, {:add_to_stack=>true}]

It returns args to ActionView here:

https://github.com/MiniProfiler/rack-mini-profiler/blob/c7742152bae5f815e5e5da3a1d095889cac3e573/lib/mini_profiler/profiling_methods.rb#L111

ActionView is receiving these values in this signature:

def render(view, locals, buffer = ActionView::OutputBuffer.new, add_to_stack: true, &block)

https://github.com/rails/rails/blob/19759dfaf38406907dd360f29527152d15c5e6e5/actionview/lib/action_view/template.rb#L150-L158

Using Ruby 3.0.0 buffer captures {:add_to_stack=>true} from args causing an exception later.

The idea given to me was to use **kargs. https://github.com/rails/rails/issues/41069#issuecomment-758069051

Thank you a lot.

SamSaffron commented 3 years ago

@OsamaSayegh is working on a fix, we should have a release soon.

OsamaSayegh commented 3 years ago

Hi @kaiquekandykoga,

version 2.3.1 is released and it includes a fix to this problem. Thanks for reporting this to us!

kaiquekandykoga commented 3 years ago

Thank you very much.