Sha256: dbc0a926de2120aeb8c03e7f8c0285940ed9ad24413574b04d08c087ad41af63

Contents?: true

Size: 1.21 KB

Versions: 10

Compression:

Stored size: 1.21 KB

Contents

module KonoUtils
  ##
  # Classe che si occupa di decodificare una qualsiasi stringa in formato utf8,
  # cercando di trovare l'encoding iniziale a tentativi.
  class Encoder
    attr_accessor :string

    ##
    # * *Attributes*  :
    #   - string -> Stringa da elaborare
    def initialize(string)
      self.string = string
    end

    ##
    # Funcione di rimozione del carattere BOM http://en.wikipedia.org/wiki/Byte_order_mark
    # e encoding normale
    def remove_bom
      string_encoder.gsub("\xEF\xBB\xBF".force_encoding('UTF-8'), '')
    end

    ##
    # Funzione di encoding semplice
    def string_encoder
      return string if string.valid_encoding?
      str = string
      Encoding.list.each do |e|
        begin
          str.force_encoding(e.name)
          tmp_string = str.encode('UTF-8')
          return tmp_string if tmp_string.valid_encoding?
        rescue
          Rails.logger.debug { "Rescue -> #{e.name}" } if defined?(::Rails)
        end
      end

      impossible_encoding

      string
    end

    ##
    # Metodo placeholder, volendo si può estendere la funzione e sovrascrivere questa funzione
    # per essere notificati in caso di mancata decodifica
    def impossible_encoding; end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
kono_utils_helpers-0.1.2 lib/kono_utils/encoder.rb
kono_utils_helpers-0.1.1 lib/kono_utils/encoder.rb
kono_utils_helpers-0.1.0.pre.rc.1 lib/kono_utils/encoder.rb
kono_utils-1.0.1 lib/kono_utils/encoder.rb
kono_utils-1.0.0 lib/kono_utils/encoder.rb
kono_utils-0.15.16 lib/kono_utils/encoder.rb
kono_utils-0.15.15 lib/kono_utils/encoder.rb
kono_utils-0.15.14 lib/kono_utils/encoder.rb
kono_utils-0.15.13 lib/kono_utils/encoder.rb
kono_utils-0.15.12 lib/kono_utils/encoder.rb