Sha256: b4de0c521f144f24c5e201fa5ea6b89c3b0f72ef8ba9b52b7ad26ccb25cfbd73

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

module RailsSpotlight
  class RenderViewReporter
    def self.report_rendered_view_locals(view, locals: nil, params: nil, show_devise: false, skip_vars: [], metadata: {})
      ActiveSupport::Notifications.instrument(
        'render_view.locals',
        params: params,
        locals: serialize_as_json(locals),
        instance_variables: dev_instance_variables(view, skip_vars: skip_vars, show_devise: show_devise),
        metadata: metadata
      )
    end

    def self.serialize_as_json(value)
      value.respond_to?(:as_json) ? value.as_json : nil
    rescue => e # rubocop:disable Style/RescueStandardError
      {
        __serialization_error: e.message,
        __source: value.inspect
      }
    end

    def self.dev_instance_variables(source, skip_vars: [], show_devise: false)
      source.instance_variables.map do |name|
        next if skip_vars.include?(name)
        next if RailsSpotlight.config.skip_rendered_ivars.include?(name)
        next if !show_devise && name == :@devise_parameter_sanitizer

        [name[1..], source.instance_variable_get(name)]
      end.compact.to_h
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rails_spotlight-0.4.2 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.4.1 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.4.0 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.9 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.8 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.7 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.6 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.5 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.4 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.3 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.2 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.1 lib/rails_spotlight/render_view_reporter.rb
rails_spotlight-0.3.0 lib/rails_spotlight/render_view_reporter.rb