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
search(s, &block)
click to toggle source
# File lib/bad_encoding.rb, line 9 def search(s, &block) return 'no bad segments found' unless block.call(s) process(s, block) end