Sha256: f6dda065653cbf860f6d27cd4f2e614e72026f5b73b9856a351236e51f1c35fe

Contents?: true

Size: 1.41 KB

Versions: 3

Compression:

Stored size: 1.41 KB

Contents

module Footnotes
  module Notes
    class AssignsNote < AbstractNote
      @@ignored_assigns = [
                            :@real_format,
                            :@before_filter_chain_aborted,
                            :@performed_redirect,
                            :@performed_render,
                            :@_params,
                            :@_response,
                            :@url,
                            :@template,
                            :@_request,
                            :@db_rt_before_render,
                            :@db_rt_after_render,
                            :@view_runtime
                          ]
      cattr_accessor :ignored_assigns, :instance_writter => false

      def initialize(controller)
        @controller = controller
      end

      def title
        "Assigns (#{assigns.size})"
      end

      def valid?
        assigns.present?
      end

      def content
        mount_table(to_table, :summary => "Debug information for #{title}")
      end

      protected
        def to_table
          @to_table ||= assigns.inject([]) {|rr, var| rr << [var, escape(assigned_value(var))]}.unshift(['Name', 'Value'])
        end

        def assigns
          @assigns ||= @controller.instance_variables.map {|v| v.to_sym} - ignored_assigns
        end

        def assigned_value(key)
          @controller.instance_variable_get(key).inspect
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails-footnotes-3.7.7 lib/rails-footnotes/notes/assigns_note.rb
rails-footnotes-3.7.6 lib/rails-footnotes/notes/assigns_note.rb
rails-footnotes-3.7.5 lib/rails-footnotes/notes/assigns_note.rb