Sha256: 6ac3579f56b14f13b0ddc560a672efa27295cde81acba9aaf696ce37265bf729

Contents?: true

Size: 1.04 KB

Versions: 10

Compression:

Stored size: 1.04 KB

Contents

require "#{File.dirname(__FILE__)}/abstract_note"

module Footnotes
  module Notes
    class AssignsNote < AbstractNote
      @@ignored_assigns = %w( @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
      end

      def content
        rows = []
        assigns.each do |key|
          rows << [ key, assigned_value(key) ]
        end
        mount_table(rows.unshift(['Name', 'Value']), :class => 'name_values')
      end

      protected

        def assigns
          return @assigns if @assigns

          @assigns = @controller.instance_variables
          @assigns -= @controller.protected_instance_variables
          @assigns -= ignored_assigns
        end

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

Version data entries

10 entries across 10 versions & 5 rubygems

Version Path
artofmission-rails-footnotes-3.6.0.1 lib/rails-footnotes/notes/assigns_note.rb
artofmission-rails-footnotes-3.6.2 lib/rails-footnotes/notes/assigns_note.rb
josevalim-rails-footnotes-3.6.0 lib/rails-footnotes/notes/assigns_note.rb
josevalim-rails-footnotes-3.6.1 lib/rails-footnotes/notes/assigns_note.rb
josevalim-rails-footnotes-3.6.2 lib/rails-footnotes/notes/assigns_note.rb
omghax-rails-footnotes-3.6.1 lib/rails-footnotes/notes/assigns_note.rb
omghax-rails-footnotes-3.6.2 lib/rails-footnotes/notes/assigns_note.rb
rails-footnotes-3.6.5 lib/rails-footnotes/notes/assigns_note.rb
rails-footnotes-3.6.4 lib/rails-footnotes/notes/assigns_note.rb
rails-footnotes-linux-3.6.2 lib/rails-footnotes/notes/assigns_note.rb