# File lib/test/unit/diff.rb, line 374 def initialize(line) @line = line @characters = @line.unpack("U*") end
# File lib/test/unit/diff.rb, line 349 def wide_character?(character) binary_search_ranges(character, WIDE_CHARACTERS) or binary_search_ranges(character, AMBIGUOUS) end
# File lib/test/unit/diff.rb, line 379 def [](*args) result = @characters[*args] if result.respond_to?(:pack) result.pack("U*") else result end end
# File lib/test/unit/diff.rb, line 400 def compute_width(start, _end) width = 0 start.upto(_end - 1) do |i| if self.class.wide_character?(@characters[i]) width += 2 else width += 1 end end width end
# File lib/test/unit/diff.rb, line 388 def each(&block) @characters.each(&block) end
# File lib/test/unit/diff.rb, line 392 def size @characters.size end
# File lib/test/unit/diff.rb, line 396 def to_s @line end