module CMess::GuessEncoding::Encoding

Namespace for our encodings.

Private Class Methods

included(base) click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 80
def self.included(base)
  base.extend(self)
end

Public Instance Methods

[](encoding) click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 46
def [](encoding)
  get_or_set_encoding_const(encoding)
end
all_encodings() click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 41
def all_encodings
  const_defined?(:ALL_ENCODINGS) ? ALL_ENCODINGS :
    const_set(:ALL_ENCODINGS, get_all_encodings)
end

Private Instance Methods

const_name_for(encoding) click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 56
def const_name_for(encoding)
  encoding.tr('-', '_').gsub(/\W/, '').sub(/\A\d/, 'ENC_\&').upcase
end
get_all_encodings() click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 52
def get_all_encodings
  Encoding.name_list.map { |encoding| get_or_set_encoding_const(encoding) }
end
get_or_set_encoding_const(encoding) click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 64
def get_or_set_encoding_const(encoding)
  const_defined?(const = const_name_for(encoding)) ?
    const_get(const) : set_encoding_const(encoding, const)
end
set_encoding_const(encoding, const = const_name_for(encoding)) click to toggle source
# File lib/cmess/guess_encoding/encoding.rb, line 60
def set_encoding_const(encoding, const = const_name_for(encoding))
  const_set(const, encoding.freeze)
end