module CMess::DecodeEntities

Constants

DEFAULT_FLAVOUR
ENCODING

HTMLEntities requires UTF-8

VERSION

Public Instance Methods

decode(options) click to toggle source
# File lib/cmess/decode_entities.rb, line 46
def decode(options)
  input, output, source = CMess.ensure_options!(options,
    :input, :output, :source_encoding
  )

  target, entities, encoding = options[:target_encoding] || source,
    HTMLEntities.new(options[:flavour] || DEFAULT_FLAVOUR), ENCODING

  skip_source, skip_target = source == encoding, target == encoding

  input.each { |line|
    line = encode(line, source, encoding) unless skip_source
    line = entities.decode(line)
    line = encode(line, encoding, target) unless skip_target

    output.puts(line)
  }
end

Private Instance Methods

encode(string, source, target) click to toggle source
# File lib/cmess/decode_entities.rb, line 67
def encode(string, source, target)
  string.encode(target, source)
end