Sha256: 4c6b121babe84d50bb5cd0a5e17714aa6ace917d0cc85e381651a3dd9ba57563
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
require 'active_support/all' require 'active_support/version' require 'ensure_valid_encoding' require 'gigo/transcoders' require 'gigo/transcoders/charlock_holmes' if ActiveSupport::VERSION::STRING < '3.0' require 'gigo/transcoders/active_support' require 'gigo/transcoders/blind' require 'gigo/version' module GIGO mattr_accessor :encoding def self.load(data, options = {}) return data if data.nil? || !data.acts_like?(:string) tcoders = options[:transcoders] || transcoders encoded_string = transcode(data, tcoders) return data if data.encoding == GIGO.encoding && data == encoded_string encoded_string end def self.reset_encoding! self.encoding = Encoding.default_internal || Encoding::UTF_8 end reset_encoding! protected def self.transcode(data, tcoders) string = data tcoders.detect do |t| begin string = t.transcode(string) rescue Exception => e false end end string = EnsureValidEncoding.ensure_valid_encoding string, invalid: :replace, replace: "?" string end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gigo-2.2.0 | lib/gigo.rb |
gigo-2.1.0 | lib/gigo.rb |