Class: TextAlignment::CharMapping
- Inherits:
-
Object
- Object
- TextAlignment::CharMapping
- Defined in:
- lib/text_alignment/char_mapping.rb
Instance Attribute Summary collapse
-
#index_enmap ⇒ Object
readonly
Returns the value of attribute index_enmap.
-
#mapped_text ⇒ Object
readonly
Returns the value of attribute mapped_text.
Instance Method Summary collapse
- #demap_position(position) ⇒ Object
- #enmap_denotations(denotations) ⇒ Object
- #enmap_position(position) ⇒ Object
-
#initialize(_text, char_mapping = nil, to_ignore_whitespaces = false) ⇒ CharMapping
constructor
A new instance of CharMapping.
Constructor Details
#initialize(_text, char_mapping = nil, to_ignore_whitespaces = false) ⇒ CharMapping
Returns a new instance of CharMapping.
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/text_alignment/char_mapping.rb', line 116 def initialize(_text, char_mapping = nil, to_ignore_whitespaces = false) if to_ignore_whitespaces @method_get_positions_squeeze_ws = method(:get_positions_squeeze_ws_0) @method_squeeze_ws = method(:squeeze_ws_0!) else @method_get_positions_squeeze_ws = method(:get_positions_squeeze_ws_1) @method_squeeze_ws = method(:squeeze_ws_1!) end @text = _text # sort by the length of the spell-outs is important char_mapping ||= TextAlignment::CHAR_MAPPING.sort{|a, b| b[1].length <=> a[1].length} @mapped_text, offset_mapping = enmap_text(_text, char_mapping) @index_enmap = offset_mapping.to_h @index_demap = offset_mapping.map{|m| m.reverse}.to_h end |
Instance Attribute Details
#index_enmap ⇒ Object (readonly)
Returns the value of attribute index_enmap.
114 115 116 |
# File 'lib/text_alignment/char_mapping.rb', line 114 def index_enmap @index_enmap end |
#mapped_text ⇒ Object (readonly)
Returns the value of attribute mapped_text.
114 115 116 |
# File 'lib/text_alignment/char_mapping.rb', line 114 def mapped_text @mapped_text end |
Instance Method Details
#demap_position(position) ⇒ Object
138 139 140 |
# File 'lib/text_alignment/char_mapping.rb', line 138 def demap_position(position) @index_demap[position] end |
#enmap_denotations(denotations) ⇒ Object
142 143 144 145 146 147 148 |
# File 'lib/text_alignment/char_mapping.rb', line 142 def enmap_denotations(denotations) return nil if denotations.nil? denotations.map do |d| d.dup.merge(span:{begin:enmap_position(d[:span][:begin]), end:enmap_position(d[:span][:end])}) end end |
#enmap_position(position) ⇒ Object
134 135 136 |
# File 'lib/text_alignment/char_mapping.rb', line 134 def enmap_position(position) @index_enmap[position] end |