Sha256: 1b4633ce90bda1a8a2c4e63cb5e3e8710d80eebfde09d0451cd144c8d0676f30

Contents?: true

Size: 703 Bytes

Versions: 8

Compression:

Stored size: 703 Bytes

Contents

class Regexp

  TOKEN_KEYS = [
    :type,
    :token,
    :text,
    :ts,
    :te,
    :level,
    :set_level,
    :conditional_level
  ].freeze

  Token = Struct.new(*TOKEN_KEYS) do
    def offset
      [self.ts, self.te]
    end

    def length
      self.te - self.ts
    end

    def next(exp = nil)
      if exp
        @next = exp
      else
        @next
      end
    end

    def previous(exp = nil)
      if exp
        @previous = exp
      else
        @previous
      end
    end

    if RUBY_VERSION < '2.0.0'
      def to_h
        hash = {}

        members.each do |member|
          hash[member.to_sym] = self.send(member.to_sym)
        end

        hash
      end
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
regexp_parser-0.3.5 lib/regexp_parser/token.rb
regexp_parser-0.3.4 lib/regexp_parser/token.rb
regexp_parser-0.3.3 lib/regexp_parser/token.rb
regexp_parser-0.3.2 lib/regexp_parser/token.rb
regexp_parser-0.3.1 lib/regexp_parser/token.rb
regexp_parser-0.3.0 lib/regexp_parser/token.rb
regexp_parser-0.2.1 lib/regexp_parser/token.rb
regexp_parser-0.2.0 lib/regexp_parser/token.rb