text_alignment 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc90a3ea0092a4e2672fd40a3bf3e6bb25fba612fc663fc7c249741e79b7a990
4
- data.tar.gz: 8676468d98902404d400b78711668930c9aaed268ddc1f555283b67fb731e2dd
3
+ metadata.gz: '097a3da5324e29b872a7927e2725ce82120f328ce1961cb24aaa5e058cf1b265'
4
+ data.tar.gz: 727bcfbffe4c30535a3b0bd01f4d14cdd1f4ccf64c5f337549da116e484e5e35
5
5
  SHA512:
6
- metadata.gz: 8194112635d7ffebe3983ae4393c05183ea86e3beab2efe645d512cb56c59f38187ab62d5d7bb7fb589ca20989a6763d42af0d881fdff4bb94be69954d9cb3c2
7
- data.tar.gz: 2907241a5a589b2ab3bfee5e08ebf3c498af79f18ba3bd4d2ae3ef543681d251db2213f3d3dffe441aa39263136b7ea755fa4376fa46acc02af0beca379d2a5e
6
+ metadata.gz: 0bb88bc2f353bca72b1cc1488063c3ac3d9f3164c3d877bbef8b17876311a99f08143fced8d8ccaa7283cce1b4e6a1ba265435ef71d6c30979da0a5045462290
7
+ data.tar.gz: ef1a61192ade8cabe0b8960619f3200e1312b3cb6766d4b4dfc4a4685ab8af8397c9647cbc6e50cc6047b5ca4a2daaf7b47e669655616082fa99c06f6d3f1e26
@@ -91,6 +91,8 @@ class TextAlignment::CharMapping
91
91
  @method_squeeze_ws = method(:squeeze_ws_1!)
92
92
  end
93
93
 
94
+ @text = _text
95
+
94
96
  char_mapping ||= TextAlignment::CHAR_MAPPING.sort{|a, b| b[1].length <=> a[1].length}
95
97
  @mapped_text, offset_mapping = enmap_text(_text, char_mapping)
96
98
  @index_enmap = offset_mapping.to_h
@@ -98,11 +100,11 @@ class TextAlignment::CharMapping
98
100
  end
99
101
 
100
102
  def enmap_position(position)
101
- @index_enmap[position] || raise(ArgumentError, "Unusual position for annotation: #{position}")
103
+ @index_enmap[position] || raise(ArgumentError, "Unusual position of annotation: #{position}")
102
104
  end
103
105
 
104
106
  def demap_position(position)
105
- @index_demap[position] || raise(ArgumentError, "Unusual position for annotation: #{position}")
107
+ @index_demap[position] || raise(ArgumentError, "Unusual position of annotation: #{position}")
106
108
  end
107
109
 
108
110
  def enmap_denotations(denotations)
@@ -110,6 +112,23 @@ class TextAlignment::CharMapping
110
112
 
111
113
  denotations.map do |d|
112
114
  d.dup.merge(span:{begin:enmap_position(d[:span][:begin]), end:enmap_position(d[:span][:end])})
115
+ rescue ArgumentError => e
116
+ snippet_begin = d[:span][:begin] - 5
117
+ if snippet_begin < 0
118
+ snippet_begin = 0
119
+ end
120
+ snippet_end = d[:span][:end] + 5
121
+ if snippet_end > @text.length
122
+ snippet_end = @text.length
123
+ end
124
+ snippet = @text[snippet_begin ... d[:span][:begin]] + '[' + @text[d[:span][:begin] ... d[:span][:end]] + ']' + @text[d[:span][:end] ... snippet_end]
125
+ if snippet_begin > 0
126
+ snippet = '...' + snippet
127
+ end
128
+ if snippet_end < @text.length
129
+ snippet = snippet + '...'
130
+ end
131
+ raise ArgumentError, e.message + " (#{snippet})"
113
132
  end
114
133
  end
115
134
 
@@ -1,3 +1,3 @@
1
1
  class TextAlignment
2
- VERSION = '0.12.0'
2
+ VERSION = '0.12.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: text_alignment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jin-Dong Kim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-21 00:00:00.000000000 Z
11
+ date: 2023-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-dictionary