Sha256: 868b160349a7dfbd2ac759954ec2ae714451aacf591df02c6047317da3fda6e3

Contents?: true

Size: 1.42 KB

Versions: 24

Compression:

Stored size: 1.42 KB

Contents

require "htmlentities"

# -- decode HTML entities -----------------------------------------------------

class String
  module HtmlDecoder
    def self.instance
      @htmldecoder ||= HTMLEntities.new
    end
  end

  def unhtml
    HtmlDecoder.instance.decode self
  end
end

# -- convert to UTF8 ----------------------------------------------------------

require 'iconv'
class String
  def to_utf8
    # require "charguess"
    # encoding = CharGuess.guess(self)
    # puts "encoding: #{encoding.inspect}"
    # return self if !encoding || encoding == "UTF-8"

    encoding = 'ISO-8859-1'
    Iconv.conv('utf-8', encoding, self)
  end
end

# -- remove accents -----------------------------------------------------------

require_relative "./string_without_accents"

class String
  include WithoutAccents
end

class String
  def sortkey
    # Convert the key into an sortable ascii string
    self.without_accents.                               # remove accents
      downcase.
      gsub(/^\s*(der|die|das|the|a|ein)\b\s*/, "").     # remove leading stop words
      gsub(/[0-9]+/) { |s| "%03d" % s.to_i }.           # fill in leading zeroes
      gsub(/[^a-z0-9]/, "")                             # keep only letters and digits
  end
end

class String
  def starts_with?(other)
    length >= other.length && self[0, other.length] == other
  end

  def ends_with?(other)
    length >= other.length && self[length - other.length .. -1] == other
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
radiospieler-2013.04.01 lib/core-extensions/string_ext.rb
radiospieler-2012.09.13 lib/core-extensions/string_ext.rb
radiospieler-0.3.12 lib/core-extensions/string_ext.rb
radiospieler-0.3.11 lib/core-extensions/string_ext.rb
radiospieler-0.3.10 lib/core-extensions/string_ext.rb
radiospieler-0.3.8 lib/core-extensions/string_ext.rb
radiospieler-0.3.7 lib/core-extensions/string_ext.rb
radiospieler-0.3.6 lib/core-extensions/string_ext.rb
radiospieler-0.3.5 lib/core-extensions/string_ext.rb
radiospieler-0.3.4 lib/core-extensions/string_ext.rb
radiospieler-0.3.3 lib/core-extensions/string_ext.rb
radiospieler-0.3.2 lib/core-extensions/string_ext.rb
radiospieler-0.3.1 lib/core-extensions/string_ext.rb
radiospieler-0.3.0 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.10 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.9 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.7 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.6 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.5 lib/core-extensions/string_ext.rb
radiospiel-app-0.2.3 lib/core-extensions/string_ext.rb