mathematical 1.2.0 → 1.2.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/Rakefile +4 -0
  4. data/ext/mathematical/extconf.rb +9 -15
  5. data/ext/mathematical/mtex2MML/build/mtex2MML.h +73 -0
  6. data/ext/mathematical/mtex2MML/{src/deps → deps}/uthash/utarray.h +0 -0
  7. data/ext/mathematical/mtex2MML/{src/deps → deps}/uthash/uthash.h +0 -0
  8. data/ext/mathematical/mtex2MML/{src/deps → deps}/uthash/utlist.h +0 -0
  9. data/ext/mathematical/mtex2MML/{src/deps → deps}/uthash/utstring.h +0 -0
  10. data/ext/mathematical/mtex2MML/src/color_definitions.c +1 -1
  11. data/ext/mathematical/mtex2MML/src/lex.yy.c +1100 -1098
  12. data/ext/mathematical/mtex2MML/src/main.c +137 -0
  13. data/ext/mathematical/mtex2MML/src/mtex2MML.h +11 -1
  14. data/ext/mathematical/mtex2MML/src/parse_extras.c +2 -2
  15. data/ext/mathematical/mtex2MML/src/parse_extras.h +36 -36
  16. data/ext/mathematical/mtex2MML/src/string_extras.c +0 -6
  17. data/ext/mathematical/mtex2MML/src/string_extras.h +1 -1
  18. data/ext/mathematical/mtex2MML/src/y.tab.c +3904 -3583
  19. data/ext/mathematical/mtex2MML/tests/array.c +127 -0
  20. data/ext/mathematical/mtex2MML/tests/basic.c +85 -0
  21. data/ext/mathematical/mtex2MML/tests/clar.c +642 -0
  22. data/ext/mathematical/mtex2MML/tests/clar.h +163 -0
  23. data/ext/mathematical/mtex2MML/tests/clar/fixtures.h +38 -0
  24. data/ext/mathematical/mtex2MML/tests/clar/fs.h +333 -0
  25. data/ext/mathematical/mtex2MML/tests/clar/print.h +66 -0
  26. data/ext/mathematical/mtex2MML/tests/clar/sandbox.h +139 -0
  27. data/ext/mathematical/mtex2MML/tests/clar_test.h +20 -0
  28. data/ext/mathematical/mtex2MML/tests/cornercases.c +45 -0
  29. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.c +64 -0
  30. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.h +12 -0
  31. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.c +24 -0
  32. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.h +7 -0
  33. data/ext/mathematical/mtex2MML/tests/env.c +333 -0
  34. data/ext/mathematical/mtex2MML/tests/functions.c +45 -0
  35. data/ext/mathematical/mtex2MML/tests/helpers.c +27 -0
  36. data/ext/mathematical/mtex2MML/tests/helpers.h +8 -0
  37. data/ext/mathematical/mtex2MML/tests/main.c +35 -0
  38. data/ext/mathematical/mtex2MML/tests/maliciousness.c +82 -0
  39. data/ext/mathematical/mtex2MML/tests/mathjax.c +2030 -0
  40. data/ext/mathematical/mtex2MML/tests/numbered_equations.c +47 -0
  41. data/lib/mathematical.rb +3 -48
  42. data/lib/mathematical/validator.rb +52 -0
  43. data/lib/mathematical/version.rb +1 -1
  44. data/test/mathematical/basic_test.rb +7 -0
  45. data/test/mathematical/maliciousness_test.rb +26 -1
  46. data/test/mathematical/mathjax_test.rb +2 -2
  47. metadata +31 -7
  48. data/ext/mathematical/mtex2MML/ext/extconf.rb +0 -4
@@ -0,0 +1,47 @@
1
+ #include "clar.h"
2
+ #include "clar_test.h"
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+
6
+ static char *fixture_tex;
7
+ static char *fixture_mml;
8
+ static char *result;
9
+
10
+ void test_numbered_equations__initialize(void)
11
+ {
12
+ global_test_counter++;
13
+ }
14
+
15
+ void test_numbered_equations__cleanup(void)
16
+ {
17
+ if (fixture_tex != NULL) {
18
+ free(fixture_tex);
19
+ }
20
+
21
+ if (fixture_mml != NULL) {
22
+ free(fixture_mml);
23
+ }
24
+
25
+ if (result != NULL) {
26
+ free(result);
27
+ }
28
+ }
29
+
30
+ void test_numbered_equations__single_equation(void)
31
+ {
32
+ fixture_tex = read_fixture_tex("numbered_equations/single_equation.txt");
33
+ fixture_mml = read_fixture_mml("numbered_equations/single_equation.html");
34
+ result = mtex2MML_global_parse(fixture_tex, strlen(fixture_tex), 1);
35
+
36
+ cl_assert_equal_s(fixture_mml, result);
37
+ }
38
+
39
+ void test_numbered_equations__multiple_equations(void)
40
+ {
41
+ fixture_tex = read_fixture_tex("numbered_equations/multiple_equations.txt");
42
+ fixture_mml = read_fixture_mml("numbered_equations/multiple_equations.html");
43
+ mtex2MML_filter(fixture_tex, strlen(fixture_tex));
44
+ result = mtex2MML_output();
45
+
46
+ cl_assert_equal_s(fixture_mml, result);
47
+ }
data/lib/mathematical.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  require 'mathematical/mathematical'
2
2
 
3
3
  require 'mathematical/corrections'
4
+ require 'mathematical/validator'
4
5
  require 'mathematical/version'
5
6
 
6
7
  require 'base64'
7
8
 
8
9
  class Mathematical
9
10
  include Corrections
10
-
11
- FORMAT_TYPES = [:svg, :png, :mathml]
11
+ include Validator
12
12
 
13
13
  DEFAULT_OPTS = {
14
14
  :ppi => 72.0,
@@ -23,7 +23,7 @@ class Mathematical
23
23
  def initialize(opts = {})
24
24
  @config = DEFAULT_OPTS.merge(opts)
25
25
 
26
- validate_config
26
+ validate_config(@config)
27
27
 
28
28
  @config[:formatInt] = FORMAT_TYPES.index(@config[:format])
29
29
 
@@ -43,53 +43,8 @@ class Mathematical
43
43
  end
44
44
  end
45
45
 
46
- def validate_content(maths)
47
- if !maths.is_a?(String) && !maths.is_a?(Array)
48
- fail(TypeError, 'input must be a string or an array!')
49
- end
50
-
51
- if maths.is_a? String
52
- validate_string(maths)
53
- else
54
- validate_array(maths)
55
- end
56
- end
57
-
58
46
  private
59
47
 
60
- def validate_config
61
- fail(TypeError, 'maxsize must be an integer!') unless @config[:maxsize].is_a? Fixnum
62
- fail(TypeError, 'maxsize cannot be less than 0!') if @config[:maxsize] < 0
63
- fail(TypeError, 'format must be a symbol!') unless @config[:format].is_a? Symbol
64
- fail(TypeError, "format type must be one of the following formats: #{FORMAT_TYPES.join(', ')}") unless FORMAT_TYPES.include?(@config[:format])
65
- end
66
-
67
- def validate_string(maths)
68
- maths = maths.strip
69
- unless valid_math_string(maths)
70
- fail(ArgumentError, 'input must be in tex format (`$...$` or `$$...$$`)!')
71
- end
72
-
73
- maths
74
- end
75
-
76
- def validate_array(maths)
77
- unless maths.all? { |m| m.is_a?(String) }
78
- fail(ArgumentError, 'every element in array must be a string in tex format (`$...$` or `$$...$$`)!')
79
- end
80
-
81
- maths = maths.map(&:strip)
82
- unless maths.all? { |m| valid_math_string(m) }
83
- fail(ArgumentError, 'every element in array must be a string in tex format (`$...$` or `$$...$$`)!')
84
- end
85
-
86
- maths
87
- end
88
-
89
- def valid_math_string(maths)
90
- maths =~ /\A\${1,2}/
91
- end
92
-
93
48
  def format_data(result_hash)
94
49
  # we passed in an array of math, and found an unprocessable element
95
50
  return result_hash if result_hash[:exception]
@@ -0,0 +1,52 @@
1
+ class Mathematical
2
+ module Validator
3
+ # explanation can be found at http://git.io/vJRBj
4
+ DOLLAR_MATCHER = /\A(?<!\\)(?:((?<!\$)\${1,2}(?!\$))(.*?(\g<1>)?.*?)(?<!\\)(?(1)(?<!\$)\1(?!\$)))\z/xm
5
+
6
+ FORMAT_TYPES = [:svg, :png, :mathml].freeze
7
+
8
+ def validate_config(config)
9
+ fail(TypeError, 'maxsize must be an integer!') unless config[:maxsize].is_a? Fixnum
10
+ fail(TypeError, 'maxsize cannot be less than 0!') if config[:maxsize] < 0
11
+ fail(TypeError, 'format must be a symbol!') unless config[:format].is_a? Symbol
12
+ fail(TypeError, "format type must be one of the following formats: #{FORMAT_TYPES.join(', ')}") unless FORMAT_TYPES.include?(config[:format])
13
+ end
14
+
15
+ def validate_content(maths)
16
+ if !maths.is_a?(String) && !maths.is_a?(Array)
17
+ fail(TypeError, 'input must be a string or an array!')
18
+ end
19
+
20
+ if maths.is_a? String
21
+ validate_string(maths)
22
+ else
23
+ validate_array(maths)
24
+ end
25
+ end
26
+
27
+ def validate_string(maths)
28
+ maths = maths.strip
29
+ unless valid_math_string(maths)
30
+ fail(ArgumentError, 'input must be in tex format (`$...$` or `$$...$$`)!')
31
+ end
32
+
33
+ maths
34
+ end
35
+
36
+ def validate_array(maths)
37
+ maths.map do |m|
38
+ unless m.is_a?(String)
39
+ fail(ArgumentError, 'every element in array must be a string in tex format (`$...$` or `$$...$$`)!')
40
+ end
41
+ validate_string(m)
42
+ end
43
+
44
+ maths
45
+ end
46
+
47
+ def valid_math_string(maths)
48
+ maths =~ DOLLAR_MATCHER
49
+ end
50
+
51
+ end
52
+ end
@@ -1,3 +1,3 @@
1
1
  class Mathematical
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'
3
3
  end
@@ -13,4 +13,11 @@ class Mathematical::BasicTest < MiniTest::Test
13
13
  assert_equal 1, output.scan(/<svg/).size, 'should only contain one svg'
14
14
  end
15
15
 
16
+ def test_handles_line_breaks
17
+ s = "$$x\ny$$"
18
+ render = Mathematical.new
19
+ output = render.render(s)[:data]
20
+ assert_equal 1, output.scan(/<svg/).size, 'should only contain one svg'
21
+ end
22
+
16
23
  end
@@ -73,6 +73,26 @@ class Mathematical::MaliciousnessTest < MiniTest::Test
73
73
  Mathematical.new.render('No dollars')
74
74
  end
75
75
 
76
+ assert_raises ArgumentError do
77
+ Mathematical.new.render('$$x')
78
+ end
79
+
80
+ assert_raises ArgumentError do
81
+ Mathematical.new.render('x$$')
82
+ end
83
+
84
+ assert_raises ArgumentError do
85
+ Mathematical.new.render('$$x$')
86
+ end
87
+
88
+ assert_raises ArgumentError do
89
+ Mathematical.new.render('$x$$')
90
+ end
91
+
92
+ assert_raises ArgumentError do
93
+ Mathematical.new.render('blah blah $x$ blah')
94
+ end
95
+
76
96
  assert_raises ArgumentError do
77
97
  array = %w(foof poof)
78
98
  Mathematical.new.render(array)
@@ -82,13 +102,18 @@ class Mathematical::MaliciousnessTest < MiniTest::Test
82
102
  array = ['$foof$', nil, '$poof$']
83
103
  Mathematical.new.render(array)
84
104
  end
105
+
106
+ assert_raises ArgumentError do
107
+ array = ['$x$', 4]
108
+ Mathematical.new.render(array)
109
+ end
85
110
  end
86
111
 
87
112
  def test_it_returns_unmodified_string_for_max_parsing
88
113
  render = Mathematical.new
89
114
  output = nil
90
115
  # Much like above, this fails in mtx2MML, but should do nothing here
91
- text = '$\Huge \sqrt\sqrt\sqrt\sqrt\sqrt\sqrt\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}'
116
+ text = '$\Huge \sqrt\sqrt\sqrt\sqrt\sqrt\sqrt\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$'
92
117
  output = render.render(text)
93
118
  assert_equal output[:data], text
94
119
  assert_equal output[:exception].class, Mathematical::ParseError
@@ -5,11 +5,11 @@ class Mathematical::MathJaxTest < MiniTest::Test
5
5
 
6
6
  render_svg = Mathematical.new
7
7
 
8
- MATHJAX_TEST_TEST_DIR = File.join('ext', 'mathematical', 'mtex2MML', 'test', 'fixtures', 'MathJax')
8
+ MATHJAX_TEST_TEST_DIR = File.join('ext', 'mathematical', 'mtex2MML', 'tests', 'fixtures', 'MathJax')
9
9
  MATHJAX_TEST_TEX_DIR = File.join(MATHJAX_TEST_TEST_DIR, 'LaTeXToMathML-tex')
10
10
 
11
11
  SKIPPED = []
12
- Dir["#{MATHJAX_TEST_TEX_DIR}/**/*.tex"].each do |tex|
12
+ Dir["#{MATHJAX_TEST_TEX_DIR}/**/*.txt"].each do |tex|
13
13
  define_method "test_#{tex}" do
14
14
  tex_contents = File.read(tex)
15
15
  data = render_svg.render(tex_contents)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mathematical
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-27 00:00:00.000000000 Z
11
+ date: 2015-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -338,13 +338,14 @@ files:
338
338
  - ext/mathematical/lasem_overrides.h
339
339
  - ext/mathematical/mathematical.c
340
340
  - ext/mathematical/mathematical.h
341
- - ext/mathematical/mtex2MML/ext/extconf.rb
341
+ - ext/mathematical/mtex2MML/build/mtex2MML.h
342
+ - ext/mathematical/mtex2MML/deps/uthash/utarray.h
343
+ - ext/mathematical/mtex2MML/deps/uthash/uthash.h
344
+ - ext/mathematical/mtex2MML/deps/uthash/utlist.h
345
+ - ext/mathematical/mtex2MML/deps/uthash/utstring.h
342
346
  - ext/mathematical/mtex2MML/src/color_definitions.c
343
- - ext/mathematical/mtex2MML/src/deps/uthash/utarray.h
344
- - ext/mathematical/mtex2MML/src/deps/uthash/uthash.h
345
- - ext/mathematical/mtex2MML/src/deps/uthash/utlist.h
346
- - ext/mathematical/mtex2MML/src/deps/uthash/utstring.h
347
347
  - ext/mathematical/mtex2MML/src/lex.yy.c
348
+ - ext/mathematical/mtex2MML/src/main.c
348
349
  - ext/mathematical/mtex2MML/src/mtex2MML.h
349
350
  - ext/mathematical/mtex2MML/src/parse_extras.c
350
351
  - ext/mathematical/mtex2MML/src/parse_extras.h
@@ -352,8 +353,31 @@ files:
352
353
  - ext/mathematical/mtex2MML/src/string_extras.h
353
354
  - ext/mathematical/mtex2MML/src/y.tab.c
354
355
  - ext/mathematical/mtex2MML/src/y.tab.h
356
+ - ext/mathematical/mtex2MML/tests/array.c
357
+ - ext/mathematical/mtex2MML/tests/basic.c
358
+ - ext/mathematical/mtex2MML/tests/clar.c
359
+ - ext/mathematical/mtex2MML/tests/clar.h
360
+ - ext/mathematical/mtex2MML/tests/clar/fixtures.h
361
+ - ext/mathematical/mtex2MML/tests/clar/fs.h
362
+ - ext/mathematical/mtex2MML/tests/clar/print.h
363
+ - ext/mathematical/mtex2MML/tests/clar/sandbox.h
364
+ - ext/mathematical/mtex2MML/tests/clar_test.h
365
+ - ext/mathematical/mtex2MML/tests/cornercases.c
366
+ - ext/mathematical/mtex2MML/tests/deps/file2str/file2str.c
367
+ - ext/mathematical/mtex2MML/tests/deps/file2str/file2str.h
368
+ - ext/mathematical/mtex2MML/tests/deps/trim/trim.c
369
+ - ext/mathematical/mtex2MML/tests/deps/trim/trim.h
370
+ - ext/mathematical/mtex2MML/tests/env.c
371
+ - ext/mathematical/mtex2MML/tests/functions.c
372
+ - ext/mathematical/mtex2MML/tests/helpers.c
373
+ - ext/mathematical/mtex2MML/tests/helpers.h
374
+ - ext/mathematical/mtex2MML/tests/main.c
375
+ - ext/mathematical/mtex2MML/tests/maliciousness.c
376
+ - ext/mathematical/mtex2MML/tests/mathjax.c
377
+ - ext/mathematical/mtex2MML/tests/numbered_equations.c
355
378
  - lib/mathematical.rb
356
379
  - lib/mathematical/corrections.rb
380
+ - lib/mathematical/validator.rb
357
381
  - lib/mathematical/version.rb
358
382
  - mathematical.gemspec
359
383
  - test/mathematical/basic_test.rb
@@ -1,4 +0,0 @@
1
- require 'mkmf'
2
-
3
- $CFLAGS << ' -Dmtex2MML_CAPTURE'
4
- create_makefile('mtex2MML')