Sha256: 5aafb96020cb3504ac741f33be627e1080b8733033c41bd786a9ee110cdf5fff

Contents?: true

Size: 777 Bytes

Versions: 15

Compression:

Stored size: 777 Bytes

Contents

class Regexp

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

  Token = Struct.new(*TOKEN_KEYS) do
    def initialize(*)
      super

      @previous = @next = nil
    end

    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

15 entries across 15 versions & 1 rubygems

Version Path
regexp_parser-0.4.13 lib/regexp_parser/token.rb
regexp_parser-0.4.12 lib/regexp_parser/token.rb
regexp_parser-0.4.11 lib/regexp_parser/token.rb
regexp_parser-0.4.10 lib/regexp_parser/token.rb
regexp_parser-0.4.9 lib/regexp_parser/token.rb
regexp_parser-0.4.8 lib/regexp_parser/token.rb
regexp_parser-0.4.7 lib/regexp_parser/token.rb
regexp_parser-0.4.6 lib/regexp_parser/token.rb
regexp_parser-0.4.5 lib/regexp_parser/token.rb
regexp_parser-0.4.4 lib/regexp_parser/token.rb
regexp_parser-0.4.3 lib/regexp_parser/token.rb
regexp_parser-0.4.2 lib/regexp_parser/token.rb
regexp_parser-0.4.1 lib/regexp_parser/token.rb
regexp_parser-0.4.0 lib/regexp_parser/token.rb
regexp_parser-0.3.6 lib/regexp_parser/token.rb