plurimath 0.8.8 → 0.8.9

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.
data/Rakefile CHANGED
@@ -1,7 +1,8 @@
1
1
  require "erb"
2
2
  require "bundler/gem_tasks"
3
3
  require "rspec/core/rake_task"
4
- require 'opal/rspec/rake_task'
4
+ require "opal/rspec/rake_task"
5
+ require_relative "lib/plurimath"
5
6
 
6
7
  RSpec::Core::RakeTask.new(:spec)
7
8
 
@@ -14,4 +15,65 @@ rescue LoadError
14
15
  # script.
15
16
  end
16
17
 
18
+ DOC_FILES = {
19
+ "supported_parens_list.adoc" => :paren,
20
+ "supported_symbols_list.adoc" => :symbols,
21
+ }.freeze
22
+
23
+ DOC_FILES.each do |file_name, type|
24
+ file file_name => [] do
25
+ write_doc_file(file_name, type: type)
26
+ end
27
+ end
28
+
29
+ def write_doc_file(doc_file, type:)
30
+ File.open(doc_file, "a") do |file|
31
+ file.write(file_header)
32
+
33
+ Plurimath::Utility.send(:"#{type}_files").each do |symbol|
34
+ file_name = File.basename(symbol, ".rb")
35
+ klass = Plurimath::Utility.get_symbol_class(file_name)
36
+ next if klass::INPUT.empty?
37
+
38
+ file.write(documentation_content(file_name, klass))
39
+ end
40
+
41
+ file.write("|===")
42
+ end
43
+ end
44
+
45
+ def documentation_content(file_name, klass)
46
+ <<~DOCUMENTATION
47
+ | #{Plurimath::Utility.capitalize(file_name)}
48
+ | `#{Plurimath::Utility.hexcode_in_input(klass) || klass.input(:asciimath).first}`
49
+ #{input_for_formats(klass)}
50
+ DOCUMENTATION
51
+ end
52
+
53
+ def file_header
54
+ <<~HEADER
55
+ |===
56
+ | Math symbol name | Unicode character | AsciiMath | LaTeX | MathML | OMML | UnicodeMath
57
+
58
+ HEADER
59
+ end
60
+
61
+ def input_for_formats(klass)
62
+ %i[asciimath latex mathml omml unicodemath].map do |format|
63
+ <<~ROW
64
+ | #{format_input(format, klass)}
65
+ ROW
66
+ end.join("")
67
+ end
68
+
69
+ def format_input(format, klass)
70
+ klass.input(format).flatten.map do |s|
71
+ if [:latex, :unicodemath].include?(format)
72
+ "`\\#{s}`"
73
+ else
74
+ "`#{s}`"
75
+ end
76
+ end.join(", ").gsub(/\|/, "\\|")
77
+ end
78
+
17
79
  task :default => :spec
@@ -40,14 +40,16 @@ module Plurimath
40
40
 
41
41
  def digit_count_format(int, fraction, number)
42
42
  integer = int + "." + fraction
43
- float = integer.to_f
43
+ float = BigDecimal(integer)
44
44
  int_length = integer.length - 1
45
45
  @digit_count ||= int_length
46
46
  if int_length > @digit_count
47
47
  number_string = float.round(@digit_count - int.length)
48
- number_string.is_a?(Float) ? number_string.to_s.split(".").last : nil
48
+ @digit_count > int.length ? number_string.to_s("F").split(".").last : nil
49
49
  elsif int_length < @digit_count
50
- number += "0" * (@digit_count - int_length)
50
+ number + "0" * (@digit_count - int_length)
51
+ else
52
+ number
51
53
  end
52
54
  end
53
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Plurimath
4
- VERSION = "0.8.8"
4
+ VERSION = "0.8.9"
5
5
  end
@@ -1,441 +1,196 @@
1
1
  |===
2
- | | AsciiMath | LaTeX | MathML | OMML | UnicodeMath | Presentation
2
+ | Math symbol name | Unicode character | AsciiMath | LaTeX | MathML | OMML | UnicodeMath
3
3
 
4
4
  | CloseParen
5
- l|
6
- :}
7
- &#x3017;
8
- __{end}
9
- l|
10
- &#x3017;
11
- __{end}
12
- __{:}}
13
- l|
14
- &#x3017;
15
- l|
16
- &#x3017;
17
- l|
18
- \\end
19
- &#x3017;
20
- __{:}}
21
5
  | `&#x3017;`
6
+ | `:}`, `&#x3017;`, `__{end}`
7
+ | `\&#x3017;`, `\__{end}`, `\__{:}}`
8
+ | `&#x3017;`
9
+ | `&#x3017;`
10
+ | `\end`, `\&#x3017;`, `\__{:}}`
22
11
 
23
12
  | Langle
24
- l|
25
- langle
26
- (:
27
- <<
28
- &#x2329;
29
- __{&#x27e8;}
30
- __{bra}
31
- l|
32
- \langle
33
- &#x2329;
34
- __{(:}
35
- __{<<}
36
- __{&#x27e8;}
37
- __{bra}
38
- l|
39
- &#x2329;
40
- &#x27e8;
41
- l|
42
- &#x2329;
43
- &#x27e8;
44
- l|
45
- &#x2329;
46
- &#x27e8;
47
- \\bra
48
- __{langle}
49
- __{(:}
50
- __{<<}
51
13
  | `&#x2329;`
14
+ | `langle`, `(:`, `<<`, `&#x2329;`, `__{&#x27e8;}`, `__{bra}`
15
+ | `\\langle`, `\&#x2329;`, `\__{(:}`, `\__{<<}`, `\__{&#x27e8;}`, `\__{bra}`
16
+ | `&#x2329;`, `&#x27e8;`
17
+ | `&#x2329;`, `&#x27e8;`
18
+ | `\&#x2329;`, `\&#x27e8;`, `\bra`, `\__{langle}`, `\__{(:}`, `\__{<<}`
52
19
 
53
20
  | Lbbrack
54
- l|
55
- &#x27e6;
56
- __{lbbrack}
57
- __{Lbrack}
58
- l|
59
- &#x27e6;
60
- __{lbbrack}
61
- __{Lbrack}
62
- l|
63
- &#x27e6;
64
- l|
65
- &#x27e6;
66
- l|
67
- &#x27e6;
68
- \\lbbrack
69
- \\Lbrack
70
21
  | `&#x27e6;`
22
+ | `&#x27e6;`, `__{lbbrack}`, `__{Lbrack}`
23
+ | `\&#x27e6;`, `\__{lbbrack}`, `\__{Lbrack}`
24
+ | `&#x27e6;`
25
+ | `&#x27e6;`
26
+ | `\&#x27e6;`, `\lbbrack`, `\Lbrack`
71
27
 
72
28
  | Lbrace
73
- l|
74
- &#x7b;
75
- __{lbrace}
76
- l|
77
- \lbrace
78
- &#x7b;
79
- l|
80
- &#x7b;
81
- l|
82
- &#x7b;
83
- l|
84
- &#x7b;
85
- \\lbrace
86
29
  | `&#x7b;`
30
+ | `&#x7b;`, `__{lbrace}`
31
+ | `\\lbrace`, `\&#x7b;`
32
+ | `&#x7b;`
33
+ | `&#x7b;`
34
+ | `\&#x7b;`, `\lbrace`
87
35
 
88
36
  | Lbrack
89
- l|
90
- &#x5b;
91
- __{lbrack}
92
- l|
93
- \lbrack
94
- &#x5b;
95
- l|
96
- &#x5b;
97
- l|
98
- &#x5b;
99
- l|
100
- &#x5b;
101
- \\lbrack
102
37
  | `&#x5b;`
38
+ | `&#x5b;`, `__{lbrack}`
39
+ | `\\lbrack`, `\&#x5b;`
40
+ | `&#x5b;`
41
+ | `&#x5b;`
42
+ | `\&#x5b;`, `\lbrack`
103
43
 
104
44
  | Lceil
105
- l|
106
- lceiling
107
- \|~
108
- &#x2308;
109
- __{lceil}
110
- l|
111
- \lceil
112
- &#x2308;
113
- __{lceiling}
114
- __{\|~}
115
- l|
116
- &#x2308;
117
- l|
118
- &#x2308;
119
- l|
120
- &#x2308;
121
- \\lceil
122
- __{lceiling}
123
- __{\|~}
124
45
  | `&#x2308;`
46
+ | `lceiling`, `\|~`, `&#x2308;`, `__{lceil}`
47
+ | `\\lceil`, `\&#x2308;`, `\__{lceiling}`, `\__{\|~}`
48
+ | `&#x2308;`
49
+ | `&#x2308;`
50
+ | `\&#x2308;`, `\lceil`, `\__{lceiling}`, `\__{\|~}`
125
51
 
126
52
  | Lcurly
127
- l|
128
- {
129
- l|
130
- \{
131
- l|
132
- {
133
- l|
134
- {
135
- l|
136
- {
137
53
  | `{`
54
+ | `{`
55
+ | `\\{`
56
+ | `{`
57
+ | `{`
58
+ | `\{`
138
59
 
139
60
  | Lfloor
140
- l|
141
- lfloor
142
- \|__
143
- &#x230a;
144
- l|
145
- \lfloor
146
- &#x230a;
147
- __{\|__}
148
- l|
149
- &#x230a;
150
- l|
151
- &#x230a;
152
- l|
153
- &#x230a;
154
- \\lfloor
155
- __{\|__}
156
61
  | `&#x230a;`
62
+ | `lfloor`, `\|__`, `&#x230a;`
63
+ | `\\lfloor`, `\&#x230a;`, `\__{\|__}`
64
+ | `&#x230a;`
65
+ | `&#x230a;`
66
+ | `\&#x230a;`, `\lfloor`, `\__{\|__}`
157
67
 
158
68
  | Lround
159
- l|
160
- (
161
- l|
162
- (
163
- l|
164
- (
165
- l|
166
- (
167
- l|
168
- (
169
69
  | `(`
70
+ | `(`
71
+ | `\(`
72
+ | `(`
73
+ | `(`
74
+ | `\(`
170
75
 
171
76
  | Lsquare
172
- l|
173
- [
174
- l|
175
- [
176
- l|
177
- [
178
- l|
179
- [
180
- l|
181
- [
182
77
  | `[`
78
+ | `[`
79
+ | `\[`
80
+ | `[`
81
+ | `[`
82
+ | `\[`
183
83
 
184
84
  | Norm
185
- l|
186
- &#x2016;
187
- __{Vert}
188
- __{norm}
189
- l|
190
- \Vert
191
- &#x2016;
192
- __{norm}
193
- l|
194
- &#x2016;
195
- l|
196
- &#x2016;
197
- l|
198
- \Vert
199
- \\Vert
200
- \\norm
201
- &#x2016;
202
85
  | `&#x2016;`
86
+ | `&#x2016;`, `__{Vert}`, `__{norm}`
87
+ | `\\Vert`, `\&#x2016;`, `\__{norm}`
88
+ | `&#x2016;`
89
+ | `&#x2016;`
90
+ | `\\Vert`, `\Vert`, `\norm`, `\&#x2016;`
203
91
 
204
92
  | OpenParen
205
- l|
206
- {:
207
- &#x3016;
208
- __{begin}
209
- l|
210
- &#x3016;
211
- __{begin}
212
- __{{:}
213
- l|
214
- &#x3016;
215
- l|
216
- &#x3016;
217
- l|
218
- \\begin
219
- &#x3016;
220
- __{{:}
221
93
  | `&#x3016;`
94
+ | `{:`, `&#x3016;`, `__{begin}`
95
+ | `\&#x3016;`, `\__{begin}`, `\__{{:}`
96
+ | `&#x3016;`
97
+ | `&#x3016;`
98
+ | `\begin`, `\&#x3016;`, `\__{{:}`
222
99
 
223
100
  | Rangle
224
- l|
225
- rangle
226
- :)
227
- >>
228
- &#x232a;
229
- &#x27e9;
230
- __{&#x27e9;}
231
- __{ket}
232
- l|
233
- \rangle
234
- &#x232a;
235
- &#x27e9;
236
- __{:)}
237
- __{>>}
238
- __{&#x27e9;}
239
- __{ket}
240
- l|
241
- &#x232a;
242
- &#x27e9;
243
- l|
244
- &#x232a;
245
- &#x27e9;
246
- l|
247
- &#x232a;
248
- &#x27e9;
249
- \\ket
250
- __{rangle}
251
- __{:)}
252
- __{>>}
253
- __{&#x27e9;}
254
101
  | `&#x232a;`
102
+ | `rangle`, `:)`, `>>`, `&#x232a;`, `&#x27e9;`, `__{&#x27e9;}`, `__{ket}`
103
+ | `\\rangle`, `\&#x232a;`, `\&#x27e9;`, `\__{:)}`, `\__{>>}`, `\__{&#x27e9;}`, `\__{ket}`
104
+ | `&#x232a;`, `&#x27e9;`
105
+ | `&#x232a;`, `&#x27e9;`
106
+ | `\&#x232a;`, `\&#x27e9;`, `\ket`, `\__{rangle}`, `\__{:)}`, `\__{>>}`, `\__{&#x27e9;}`
255
107
 
256
108
  | Rbbrack
257
- l|
258
- &#x27e7;
259
- __{rbbrack}
260
- __{Rbrack}
261
- l|
262
- &#x27e7;
263
- __{rbbrack}
264
- __{Rbrack}
265
- l|
266
- &#x27e7;
267
- l|
268
- &#x27e7;
269
- l|
270
- &#x27e7;
271
- \\rbbrack
272
- \\Rbrack
273
109
  | `&#x27e7;`
110
+ | `&#x27e7;`, `__{rbbrack}`, `__{Rbrack}`
111
+ | `\&#x27e7;`, `\__{rbbrack}`, `\__{Rbrack}`
112
+ | `&#x27e7;`
113
+ | `&#x27e7;`
114
+ | `\&#x27e7;`, `\rbbrack`, `\Rbrack`
274
115
 
275
116
  | Rbrace
276
- l|
277
- &#x7d;
278
- __{rbrace}
279
- l|
280
- \rbrace
281
- &#x7d;
282
- l|
283
- &#x7d;
284
- l|
285
- &#x7d;
286
- l|
287
- &#x7d;
288
- __{rbrace}
289
117
  | `&#x7d;`
118
+ | `&#x7d;`, `__{rbrace}`
119
+ | `\\rbrace`, `\&#x7d;`
120
+ | `&#x7d;`
121
+ | `&#x7d;`
122
+ | `\&#x7d;`, `\__{rbrace}`
290
123
 
291
124
  | Rbrack
292
- l|
293
- &#x5d;
294
- __{rbrack}
295
- l|
296
- \rbrack
297
- &#x5d;
298
- l|
299
- &#x5d;
300
- l|
301
- &#x5d;
302
- l|
303
- &#x5d;
304
- __{rbrack}
305
125
  | `&#x5d;`
126
+ | `&#x5d;`, `__{rbrack}`
127
+ | `\\rbrack`, `\&#x5d;`
128
+ | `&#x5d;`
129
+ | `&#x5d;`
130
+ | `\&#x5d;`, `\__{rbrack}`
306
131
 
307
132
  | Rceil
308
- l|
309
- rceiling
310
- ~\|
311
- &#x2309;
312
- __{rceil}
313
- l|
314
- \rceil
315
- &#x2309;
316
- __{rceiling}
317
- __{~\|}
318
- l|
319
- &#x2309;
320
- l|
321
- &#x2309;
322
- l|
323
- &#x2309;
324
- \\rceil
325
- __{rceiling}
326
- __{~\|}
327
133
  | `&#x2309;`
134
+ | `rceiling`, `~\|`, `&#x2309;`, `__{rceil}`
135
+ | `\\rceil`, `\&#x2309;`, `\__{rceiling}`, `\__{~\|}`
136
+ | `&#x2309;`
137
+ | `&#x2309;`
138
+ | `\&#x2309;`, `\rceil`, `\__{rceiling}`, `\__{~\|}`
328
139
 
329
140
  | Rcurly
330
- l|
331
- }
332
- l|
333
- \}
334
- l|
335
- }
336
- l|
337
- }
338
- l|
339
- }
340
141
  | `}`
142
+ | `}`
143
+ | `\\}`
144
+ | `}`
145
+ | `}`
146
+ | `\}`
341
147
 
342
148
  | Rfloor
343
- l|
344
- rfloor
345
- __\|
346
- &#x230b;
347
- l|
348
- \rfloor
349
- &#x230b;
350
- __{__\|}
351
- l|
352
- &#x230b;
353
- l|
354
- &#x230b;
355
- l|
356
- &#x230b;
357
- \\rfloor
358
- __{__\|}
359
149
  | `&#x230b;`
150
+ | `rfloor`, `__\|`, `&#x230b;`
151
+ | `\\rfloor`, `\&#x230b;`, `\__{__\|}`
152
+ | `&#x230b;`
153
+ | `&#x230b;`
154
+ | `\&#x230b;`, `\rfloor`, `\__{__\|}`
360
155
 
361
156
  | Rround
362
- l|
363
- )
364
- l|
365
- )
366
- l|
367
- )
368
- l|
369
- )
370
- l|
371
- )
372
157
  | `)`
158
+ | `)`
159
+ | `\)`
160
+ | `)`
161
+ | `)`
162
+ | `\)`
373
163
 
374
164
  | Rsquare
375
- l|
376
- ]
377
- l|
378
- ]
379
- l|
380
- ]
381
- l|
382
- ]
383
- l|
384
- ]
385
165
  | `]`
166
+ | `]`
167
+ | `\]`
168
+ | `]`
169
+ | `]`
170
+ | `\]`
386
171
 
387
172
  | UpcaseLangle
388
- l|
389
- &#x27ea;
390
- __{Langle}
391
- l|
392
- &#x27ea;
393
- __{Langle}
394
- l|
395
- &#x27ea;
396
- l|
397
- &#x27ea;
398
- l|
399
- &#x27ea;
400
- \\Langle
401
173
  | `&#x27ea;`
174
+ | `&#x27ea;`, `__{Langle}`
175
+ | `\&#x27ea;`, `\__{Langle}`
176
+ | `&#x27ea;`
177
+ | `&#x27ea;`
178
+ | `\&#x27ea;`, `\Langle`
402
179
 
403
180
  | UpcaseRangle
404
- l|
405
- &#x27eb;
406
- __{Langle}
407
- l|
408
- &#x27eb;
409
- __{Langle}
410
- l|
411
- &#x27eb;
412
- l|
413
- &#x27eb;
414
- l|
415
- &#x27eb;
416
- \\Langle
417
181
  | `&#x27eb;`
182
+ | `&#x27eb;`, `__{Langle}`
183
+ | `\&#x27eb;`, `\__{Langle}`
184
+ | `&#x27eb;`
185
+ | `&#x27eb;`
186
+ | `\&#x27eb;`, `\Langle`
418
187
 
419
188
  | Vert
420
- l|
421
- \|
422
- &#x7c;
423
- __{vert}
424
- l|
425
- \vert
426
- \|
427
- &#x7c;
428
- l|
429
- &#x7c;
430
- \|
431
- l|
432
- &#x7c;
433
- \|
434
- l|
435
- \vert
436
- &#x7c;
437
- \|
438
- __{\|}
439
189
  | `&#x7c;`
190
+ | `\|`, `&#x7c;`, `__{vert}`
191
+ | `\\vert`, `\\|`, `\&#x7c;`
192
+ | `&#x7c;`, `\|`
193
+ | `&#x7c;`, `\|`
194
+ | `\\vert`, `\&#x7c;`, `\\|`, `\__{\|}`
440
195
 
441
196
  |===