class BadEncoding::B

Public Class Methods

new(segment_size=100) click to toggle source
# File lib/bad_encoding.rb, line 5
def initialize(segment_size=100)
  @segment_size = segment_size
end

Public Instance Methods

process(s, check) click to toggle source
# File lib/bad_encoding.rb, line 14
def process(s, check)
  #    puts "size: #{s.size}"
  return s if s.size <= @segment_size

  count = s.size
  middle = count / 2
  end_of_list = count - middle

  first_half = s.slice(0, middle)

  if check.call(first_half)
    process(first_half, check)
  else
    second_half = s.slice(middle, end_of_list)
    process(second_half, check)
  end
end