File: string.rb

package info (click to toggle)
ruby-charlock-holmes 0.7.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 116 kB
  • sloc: ansic: 325; ruby: 153; cpp: 101; sh: 21; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 1,113 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'charlock_holmes' unless defined? CharlockHolmes

class String
  # Attempt to detect the encoding of this string
  #
  # Returns: a Hash with :encoding, :language, :type and :confidence
  def detect_encoding(hint_enc=nil)
    detector = CharlockHolmes::EncodingDetector.new
    detector.detect(self, hint_enc)
  end

  # Attempt to detect the encoding of this string, and return
  # a list with all the possible encodings that match it.
  #
  # Returns: an Array with zero or more Hashes,
  #          each one of them with with :encoding, :language, :type and :confidence
  def detect_encodings(hint_enc=nil)
    detector = CharlockHolmes::EncodingDetector.new
    detector.detect_all(self, hint_enc)
  end

  if method_defined? :force_encoding
    # Attempt to detect the encoding of this string
    # then set the encoding to what was detected ala `force_encoding`
    #
    # Returns: self
    def detect_encoding!(hint_enc=nil)
      if detected = self.detect_encoding(hint_enc)
        self.force_encoding(detected[:ruby_encoding]) if detected[:ruby_encoding]
      end
      self
    end
  end
end