module WorkText
Public Instance Methods
get_all_numbers_from_text(fromSource)
click to toggle source
# File lib/nmax_ch/work_text.rb, line 25 def get_all_numbers_from_text(fromSource) numbers = [] if fromSource.class == IO while line = fromSource.gets numbers = get_numbers_from_string(line, numbers) end elsif fromSource.class == String numbers = get_numbers_from_string(fromSource, numbers) end return numbers end
get_numbers(nmax, fromSource)
click to toggle source
# File lib/nmax_ch/work_text.rb, line 51 def get_numbers(nmax, fromSource) return get_sorted_numbers_array(nmax, get_all_numbers_from_text(fromSource)) end
get_numbers_from_string(text, numbers)
click to toggle source
# File lib/nmax_ch/work_text.rb, line 4 def get_numbers_from_string(text, numbers) digits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] nextDigits = "" text.each_char do |ch| if digits.include?(ch) nextDigits += ch elsif nextDigits != "" numbers.append(nextDigits.to_i) nextDigits = "" end end if nextDigits != "" numbers.append(nextDigits.to_i) end return numbers end
get_sorted_numbers_array(nmax, numbers)
click to toggle source
# File lib/nmax_ch/work_text.rb, line 40 def get_sorted_numbers_array(nmax, numbers) numbers = numbers.uniq #сортируем массив по убыванию numbers = numbers.sort { |a, b| b <=> a } #выбираем n чисел из массива numbers = numbers[0, nmax] return numbers end