24 lines
822 B
Ruby
24 lines
822 B
Ruby
module RemoteTranslations::Microsoft::SentencesParser
|
|
def detect_split_position(text)
|
|
limit = RemoteTranslations::Microsoft::Client::CHARACTERS_LIMIT_PER_REQUEST
|
|
minimum_valid_index = text.size - limit
|
|
valid_point = text[minimum_valid_index..text.size].index(".")
|
|
valid_whitespace = text[minimum_valid_index..text.size].index(" ")
|
|
|
|
get_split_position(valid_point, valid_whitespace, minimum_valid_index)
|
|
end
|
|
|
|
def get_split_position(valid_point, valid_whitespace, minimum_valid_index)
|
|
split_position = minimum_valid_index
|
|
if valid_point.present? || valid_whitespace.present?
|
|
valid_position = valid_point.presence || valid_whitespace
|
|
split_position = split_position + valid_position
|
|
end
|
|
split_position
|
|
end
|
|
|
|
def characters_count(texts)
|
|
texts.sum(&:size)
|
|
end
|
|
end
|