Sha256: 1a575bbea1bdd29e293a7ed88b7a67ec4c750ef40d21caced7814500a863e46a

Contents?: true

Size: 634 Bytes

Versions: 1

Compression:

Stored size: 634 Bytes

Contents

module Hirb
  module Unicode
    module StringUtil
      def size(string)
        string.display_width
      end

      def slice(string, offset, width)
        chars = string.chars.to_a[offset..-1].to_a

        current_length = 0
        split_index = 0
        chars.each_with_index do |c, i|
          char_width = self.size(c)
          break if current_length + char_width > width
          split_index = i+1
          current_length += char_width
        end

        split_index ||= chars.count
        head = chars[0, split_index].join
        head
      end
    end
  end
end

Hirb::String.extend(Hirb::Unicode::StringUtil)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hirb-unicode-0.0.2 lib/hirb/unicode/string_util.rb