class Ripper::Filter - Documentation for Ruby 3.3

# class Ripper::Filter

This class handles only scanner events, which are dispatched in the ‘right’ order (same with input).

### Public Class Methods

new(src, filename = '-', lineno = 1) click to toggle source

Creates a new `Ripper::Filter` instance, passes parameters `src`, `filename`, and `lineno` to `Ripper::Lexer.new`

The lexer is for internal use only.

    # File ext/ripper/lib/ripper/filter.rb, line 24
    def initialize(src, filename = '-', lineno = 1)
      @__lexer = Lexer.new(src, filename, lineno)
      @__line = nil
      @__col = nil
      @__state = nil
    end

### Public Instance Methods

column() click to toggle source

The column number of the current token. This value starts from 0. This method is valid only in event handlers.

    # File ext/ripper/lib/ripper/filter.rb, line 46
    def column
      @__col
    end

filename() click to toggle source

The file name of the input.

    # File ext/ripper/lib/ripper/filter.rb, line 32
    def filename
      @__lexer.filename
    end

lineno() click to toggle source

The line number of the current token. This value starts from 1. This method is valid only in event handlers.

    # File ext/ripper/lib/ripper/filter.rb, line 39
    def lineno
      @__line
    end

parse(init = nil) click to toggle source

Starts the parser. `init` is a data accumulator and is passed to the next event handler (as of `Enumerable#inject`).

    # File ext/ripper/lib/ripper/filter.rb, line 59
    def parse(init = nil)
      data = init
      @__lexer.lex.each do |pos, event, tok, state|
        @__line, @__col = *pos
        @__state = state
        data = if respond_to?(event, true)
               then __send__(event, tok, data)
               else on_default(event, tok, data)
               end
      end
      data
    end

state() click to toggle source

The scanner’s state of the current token. This value is the bitwise OR of zero or more of the `Ripper::EXPR_*` constants.

    # File ext/ripper/lib/ripper/filter.rb, line 52
    def state
      @__state
    end

### Private Instance Methods

on_default(event, token, data) click to toggle source

This method is called when some event handler is undefined. `event` is :on_XXX, `token` is the scanned token, and `data` is a data accumulator.

The return value of this method is passed to the next event handler (as of `Enumerable#inject`).

    # File ext/ripper/lib/ripper/filter.rb, line 80
    def on_default(event, token, data)
      data
    end