class Bindex::Rubinius::InternalLocationFilter - bindex-0.5.0 Documentation

# class Bindex::Rubinius::InternalLocationFilter

Filters internal Rubinius locations.

There are a couple of reasons why we wanna filter out the locations.

- ::Kernel.raise, is implemented in Ruby for Rubinius. We don't wanna have the frame for it to align with the CRuby and JRuby implementations.

- For internal methods location variables can be nil. We can't create a bindings for them.

- Bindings from the current file are considered internal and ignored.

We do that all that so we can align the bindings with the backtraces entries.

### Public Class Methods

new(locations) click to toggle source

    # File lib/bindex/rubinius.rb, line 18
    def initialize(locations)
      @locations = locations
    end

### Public Instance Methods

filter() click to toggle source

    # File lib/bindex/rubinius.rb, line 22
    def filter
      @locations.reject do |location|
        location.file.start_with?('kernel/delta/kernel.rb') ||
          location.file == __FILE__ ||
          location.variables.nil?
      end
    end