class Sep::Separator

Constants

ANALYSIS

Attributes

text[R]
words_data[R]

Public Class Methods

new(text) click to toggle source

text - String text to separate

# File lib/sep/separator.rb, line 8
def initialize(text)
  @text = text

  analyze
end

Public Instance Methods

leading_space() click to toggle source
# File lib/sep/separator.rb, line 14
def leading_space
  text.match(/(\s*)/).captures[0]
end
space() click to toggle source
# File lib/sep/separator.rb, line 18
def space
  [leading_space] + words_data.map {|wd| wd[:space_post] }
end
words() click to toggle source
# File lib/sep/separator.rb, line 22
def words
  words_data.map {|wd| wd[:word] }
end

Private Instance Methods

analyze() click to toggle source
# File lib/sep/separator.rb, line 32
def analyze
  @words_data ||= scanned_text.map do |word_data|
    { punc_pre:   word_data[0],
      word:       word_data[1],
      punc_post:  word_data[2],
      space_post: word_data[3]
    }
  end
end
scanned_text() click to toggle source
# File lib/sep/separator.rb, line 28
def scanned_text
  text.scan(ANALYSIS)
end