Class: MojiBake::Mapper
- Inherits:
-
Object
- Object
- MojiBake::Mapper
- Extended by:
- VersionSupport
- Includes:
- EncodingSupport, JSONSupport
- Defined in:
- lib/mojibake.rb
Overview
Supports recovering Mojibake characters to the original text.
Constant Summary
Constants included from EncodingSupport
EncodingSupport::CANDIDATE_CHARS, EncodingSupport::HIGH_ORDER_CHARS, EncodingSupport::INTEREST_CHARS, EncodingSupport::INTEREST_CODEPOINTS, EncodingSupport::ISO8, EncodingSupport::UTF8, EncodingSupport::W252
Constants included from JSONSupport
Instance Attribute Summary
Attributes included from EncodingSupport
#map_iso_8859_1, #map_permutations, #map_windows_1252
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ Mapper
constructor
A new instance of Mapper.
-
#recover(input, recursive = true) ⇒ Object
Recover original characters from input using regexp, recursively.
Methods included from VersionSupport
jruby_version_a, ruby_version_a, ver_to_a
Methods included from EncodingSupport
#char_tree, #codepoints_hex, #hash, #regex_encode, #regexp, #table, #tree_flatten
Methods included from JSONSupport
#config, #create_regexp, #hash, #hash_to_json_object, #json, #regexp
Constructor Details
#initialize(opts = {}) ⇒ Mapper
Returns a new instance of Mapper.
37 38 39 40 |
# File 'lib/mojibake.rb', line 37 def initialize( opts = {} ) super() opts.map { |k,v| send( k.to_s + '=', v ) } end |
Instance Method Details
#recover(input, recursive = true) ⇒ Object
Recover original characters from input using regexp, recursively.
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mojibake.rb', line 43 def recover( input, recursive = true ) output = input.gsub( regexp ) { |moji| hash[moji] } # Only recurse if requested and substituted something (output # shorter) in this run. if recursive && ( output.length < input.length ) recover( output ) else output end end |