Sha256: 26255fcef0654e210d660c1ee2d1ef1e51f557dab125c45a82aa3ec24f7c4ec6
Contents?: true
Size: 1.64 KB
Versions: 5
Compression:
Stored size: 1.64 KB
Contents
# -*- coding: utf-8 -*- require 'forwardable' require 'spacy/textbuffer' module Spacy class Text extend Forwardable attr_reader :buffer def_delegators :@buffer, :each, :last, :nrow, :ncolumn, :to_a, :to_s, :[], :[]= def initialize (arg = nil) @buffer = (TextBuffer === arg) ? arg : TextBuffer.new(arg) @first = @last = 0 end def pos () @first end def pos= (n) last = @buffer.last n = 0 if n < 0 n = last if n > last select n end def cursor () @buffer.pos2cursor pos end def cursor= (*args) args.flatten! args << 0 while args.size < 2 self.pos = @buffer.cursor2pos *args end def row () @buffer.pos2cursor(pos)[0] end def column () @buffer.pos2cursor(pos)[1] end def row= (n) self.cursor = n, column end def column= (n) self.cursor = row, n end def replace (str, first, last = nil) last = first unless last @buffer.erase first, last @buffer.insert first, str end def select (*args) first, last = case args[0] when Range args[0].to_a when Integer args end last = first unless last first, last = last, first unless first < last @first, @last = first, last selection end def selection () @first..@last end def selection= (str) select replace(str, @first, @last) end def << (str) replace str, last end def inspect () "#<Text row: #{row}, column: #{column}, buffer: #{buffer.inspect}>" end end# Text end# Spacy
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
spacy-0.1.9 | lib/spacy/text.rb |
spacy-0.1.8 | lib/spacy/text.rb |
spacy-0.1.6 | lib/spacy/text.rb |
spacy-0.1.5 | lib/spacy/text.rb |
spacy-0.1.4 | lib/spacy/text.rb |