class Findr::Encoder::String

Public Class Methods

list() click to toggle source

Returns a list of valid encodings

# File lib/findr/encoder/string.rb, line 30
def self.list
  return Encoding.list.map(&:to_s)
end
new( other_coding ) click to toggle source
# File lib/findr/encoder/string.rb, line 4
def initialize( other_coding )
  @other_coding = other_coding.split(',').map {|coding| Encoding.find(coding)}
end

Public Instance Methods

decode( string ) click to toggle source

Encodes given string from +@other_coding+ to utf8.

# File lib/findr/encoder/string.rb, line 9
def decode( string )
  coding = nil
  have_valid_coding = @other_coding.any? do |c|
    string.force_encoding(c)
    coding = c
    string.valid_encoding?
  end
  fail Error.new("No valid coding given.") unless have_valid_coding
  return [string.encode('UTF-8'), coding.to_s]
rescue
  raise Error, "Error when decoding from '#{@other_coding}' into 'UTF-8': #{$!}"
end
encode( string, coding ) click to toggle source

Encodes given utf8 string into coding.

# File lib/findr/encoder/string.rb, line 23
def encode( string, coding )
  return string.encode(coding)
rescue
  raise Error, "Error when encoding from 'UTF-8' into '#{coding}'."
end