Sha256: e9982d08473b08ce9f7057b3f6546d18809b092184703a2fde73522d1eecd13e

Contents?: true

Size: 588 Bytes

Versions: 8

Compression:

Stored size: 588 Bytes

Contents

# frozen_string_literal: true

class String
  def compare_to(another_string)
    value = self.bytes
    other = another_string.bytes
    len1 = value.size
    len2 = other.size
    lim = [len1, len2].min

    0.upto(lim - 1) do |k|
      if value[k] != other[k]
        return get_char(value, k) - get_char(other, k)
      end
    end
    len1 - len2
  end

  def get_char(val, index)
    val[index] & 0xff
  end

  def underscore
    self.gsub(/::/, "/").
      gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
      gsub(/([a-z\d])([A-Z])/, '\1_\2').
      tr("-", "_").
      downcase
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
absmartly-sdk-1.1.2 lib/string.rb
absmartly-sdk-1.1.1 lib/string.rb
absmartly-sdk-1.1.0 lib/string.rb
absmartly-sdk-1.0.8 lib/string.rb
absmartly-sdk-1.0.7 lib/string.rb
absmartly-sdk-1.0.6 lib/string.rb
absmartly-sdk-1.0.5 lib/string.rb
absmartly-sdk-0.1.2 lib/string.rb