Class: Findr::Encoder::String
- Inherits:
-
Object
- Object
- Findr::Encoder::String
- Defined in:
- lib/findr/encoder/string.rb
Class Method Summary collapse
-
.list ⇒ Object
Returns a list of valid encodings.
Instance Method Summary collapse
-
#decode(string) ⇒ Object
Encodes given
stringfrom @other_coding to utf8. -
#encode(string, coding) ⇒ Object
Encodes given utf8
stringintocoding. -
#initialize(other_coding) ⇒ String
constructor
A new instance of String.
Constructor Details
#initialize(other_coding) ⇒ String
Returns a new instance of String.
4 5 6 |
# File 'lib/findr/encoder/string.rb', line 4 def initialize( other_coding ) @other_coding = other_coding.split(',').map {|coding| Encoding.find(coding)} end |
Class Method Details
.list ⇒ Object
Returns a list of valid encodings
30 31 32 |
# File 'lib/findr/encoder/string.rb', line 30 def self.list return Encoding.list.map(&:to_s) end |
Instance Method Details
#decode(string) ⇒ Object
Encodes given string from @other_coding to utf8.
9 10 11 12 13 14 15 16 17 18 19 20 |
# 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) ⇒ Object
Encodes given utf8 string into coding.
23 24 25 26 27 |
# 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 |