doctor_ninja 0.0.1 → 0.1.0

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
  SHA1:
3
- metadata.gz: ec64e692dfb01d06fbd09bb42162997d2b47bfb8
4
- data.tar.gz: 1b80f7d87e7f22966c3733587ade0fdeffceafae
3
+ metadata.gz: 5d4dbe54c2d34c2cc0481a10f0ce79d5cb5adb12
4
+ data.tar.gz: 3ff5d61d7881e9de0cb7dfe8bba073baba545d8b
5
5
  SHA512:
6
- metadata.gz: 9eaf28e4b06b699f63c9062e3f53b67c436817383178da6971479a643f57dfa697ea79d442631f35764712038f546d38a1e847f265f75d3a76602a0259b778b4
7
- data.tar.gz: 80c0b08e752ad68265d70db184ff38447ffcbfdcfd5d8850003ede10973a31bc961db8e5a573406b4009c6218bcd54a7e5985cd1b446e7fda9bd6f00629ad12d
6
+ metadata.gz: ae7621385d40e9fde469e28e0093ec0c2a430a3ea0279b94b76d5c878e2c8316a9ed20213a7f0fca3ddc8132056c3b71b6488e54dd52de71db39c494c50951bd
7
+ data.tar.gz: ee13e6c5bde4d8a2c41e1a1edca2f98f9a36be610d89fefc5406f04ef338d9980dbd15c8355a1368f7a5973e9c0be5f60fff276646e616c081d47ef3654f48d5
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ before_install: gem install bundler -v "~> 1.7"
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  Here be dragons! This is a WIP.
2
2
 
3
- # DoctorNinja
3
+ # DoctorNinja [![Build Status](https://travis-ci.org/bamorim/doctor_ninja.svg?branch=master)](https://travis-ci.org/bamorim/doctor_ninja) [![Gem Version](https://badge.fury.io/rb/doctor_ninja.svg)](http://badge.fury.io/rb/doctor_ninja) ![License](http://img.shields.io/badge/license-MIT-lightgrey.svg)
4
4
 
5
5
  DoctorNinja is a library to convert word documents into html files like a ninja.
6
6
 
File without changes
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  spec.add_development_dependency "minitest", "~> 5.4"
24
24
  spec.add_development_dependency "minitest-reporters", "~> 1.0"
25
+ spec.add_development_dependency "pry", "~>0.10"
26
+ spec.add_development_dependency "phashion", "~>1.1"
25
27
 
26
28
  spec.add_dependency "nokogiri", "~> 1.6"
27
29
  spec.add_dependency "rubyzip", "~> 1.1"
@@ -1,6 +1,7 @@
1
1
  require "zip"
2
2
  require "doctor_ninja/parser"
3
3
  require "doctor_ninja/relationships"
4
+ require "doctor_ninja/numbering"
4
5
 
5
6
  module DoctorNinja
6
7
  class Document
@@ -14,6 +15,10 @@ module DoctorNinja
14
15
  @relationships ||= DoctorNinja::Relationships.new(self)
15
16
  end
16
17
 
18
+ def numbering
19
+ @numbering ||= DoctorNinja::Numbering.new(self)
20
+ end
21
+
17
22
  def read file
18
23
  @file.read(file)
19
24
  end
@@ -0,0 +1,24 @@
1
+ module DoctorNinja
2
+ class Numbering
3
+ def initialize(doc)
4
+ @doc = doc
5
+ numbering = @doc.read "word/numbering.xml"
6
+ @numb = Nokogiri::XML numbering if numbering
7
+ end
8
+
9
+ def style level, num_id
10
+ abstract_num(num_id).xpath(".//w:lvl[@w:ilvl=\"#{level}\"]//w:numFmt/@w:val")[0].value
11
+ rescue
12
+ nil
13
+ end
14
+
15
+ protected
16
+ def abstract_num num_id
17
+ @numb.xpath("//w:abstractNum[@w:abstractNumId=\"#{abstract_num_id(num_id)}\"]")
18
+ end
19
+
20
+ def abstract_num_id num_id
21
+ @numb.xpath("//w:num[@w:numId=\"#{num_id}\"]/w:abstractNumId/@w:val")[0].value
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,48 @@
1
+ require_relative "./base"
2
+
3
+ class DoctorNinja::Parsers::List < DoctorNinja::Parsers::Base
4
+ def self.applicable_to?(node)
5
+ node.name == "p" && node.xpath("./w:pPr/w:numPr").length > 0
6
+ end
7
+
8
+ def parse
9
+ num_id = get_pr "w:numId", @node
10
+ lvl = get_pr "w:ilvl", @node
11
+ style = @document.numbering.style(lvl, num_id)
12
+ tag = style == "bullet" ? "ul" : "ol"
13
+
14
+ num_id_query = ".//w:numId/@w:val=\"#{num_id}\""
15
+
16
+ previous = @node.xpath("preceding-sibling::w:p[#{num_id_query}][1]")
17
+ following = @node.xpath("following-sibling::w:p[#{num_id_query}][1]")
18
+
19
+ prefix = ""
20
+ # Add <ul> if is start of new list
21
+ if previous.length == 0 || get_pr("w:ilvl", previous) < lvl
22
+ prefix += "<#{tag}>"
23
+ end
24
+
25
+ prefix += "<li>"
26
+
27
+ suffix = ""
28
+
29
+ if following.length == 0
30
+ suffix += "</li></#{tag}>"
31
+ else
32
+ f_lvl = get_pr("w:ilvl", following)
33
+ if f_lvl < lvl
34
+ suffix += "</li></#{tag}></li>"
35
+ elsif f_lvl == lvl
36
+ suffix += "</li>"
37
+ end
38
+ end
39
+
40
+ "#{prefix}#{parse_children}#{suffix}"
41
+ end
42
+
43
+ def get_pr pr, node
44
+ node.xpath(".//#{pr}/@w:val")[0].value
45
+ rescue
46
+ nil
47
+ end
48
+ end
@@ -8,7 +8,7 @@ class DoctorNinja::Parsers::Paragraph < DoctorNinja::Parsers::Base
8
8
  }
9
9
 
10
10
  def self.applicable_to?(node)
11
- node.name == "p"
11
+ node.name == "p" && node.xpath("./w:pPr/w:numPr").length == 0
12
12
  end
13
13
 
14
14
  def parse
@@ -1,3 +1,3 @@
1
1
  module DoctorNinja
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,378 @@
1
+ <!doctype HTML>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <script type="text/javascript"
6
+ src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
7
+ </script>
8
+
9
+ </head>
10
+ <body>
11
+ <p style="text-align:center;"><img src="data:image/png;base64,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
68
+ bi4Swo3AmAkTsFcUCle9xtI4iWEhbiYSwg2coig4jX2J5Q/YAadZMWcppnNY
69
+ QTH73jWLhHWLeWbUvXTt1IlOnTrRa9gkQqPiqPmlvCzWPdkZLy8vnlqXBWQR
70
+ v2Im4/v2wNvbmx59R/PcJ/HX2i1IYdOS53jgbh98fHzw7TeemZ/Hm99uViLr
71
+ lzzP2P496dq1K127+jMy+EU+32tircQwQ70wEoHcpM2EPT8Svy5d6NLFjwcm
72
+ v876lGsHLyv+c16cMIA7DeUjnw9jc4r5F7ms+BXMnPwAd/vo96NHv9E8v2Qz
73
+ SSaG7BP/6YWXlxdPrsuCgnRiV7zAuD7d8fLyonO3e3kkNIr4SruTte5JOnfu
74
+ y9xd+v/vmtuHTp060WnquuuOV27KT0TNeJRhPTvSsWNHOna5h1FPL2ajXMxr
75
+ NCSEGwUnhi5ajj6HVzBnaVzNhyXSv2fOsD6Mm/s5O5LPUWhYfDF1L5uXPE6f
76
+ Xs+wKb2GbSpW+tC/uItlowcTHL6Fg+f1LReeT+aHd4IZPHM7WenbmTfmQWZ/
77
+ +SOplzCUH2Jr+BSGvrjD6MyP9B0v80DAo7y6cifH/irt7SXS9m1j6RMD8X9+
78
+ M+a6m7r5eYY+/BJf7UzjsqKgKJdJ2/c180eN5dOkXJI+ncDQJ/7F1kOlx+IS
79
+ qT9+yexRY/k0yUiDBSmsed6PAVP+xdb/pWLYDa6eP8YPX85ibL/xZi+gFSSt
80
+ Z27QYKaFXTtGytW/OLQ1nMn3Pck6IzujKOZeVAs4+vHD3DviKf65eS8nLhoW
81
+ F54jaccKXgi8h1FvJsjwVWOgigbqgPqGTqfqdDr1jQP6JTnb/qF663SqTjdE
82
+ feNAfqX6Z9Vvp3iqnp6e6pRvz1Ysyj+gLh3aUe3YsaPacehL6tojZ9XStXOO
83
+ rFVferCL2qlTJ7XTsMXqdc2adFZd+6SX6uVl+Ddirrr2aE5pq+rRVU+qPby9
84
+ VW/v+9TBg33UHqOXqJuOXytP+GSc6tuli9qly2D1k6OVupuwTH2gSxe1S5cu
85
+ 6gPz1qlHz+Zfa3fdPHXsnV3Vrl27qiOXJKoVupu4RO1iWK9LlzvVCW/Hq38Y
86
+ KuT/EasuHKkv8xkyRB3i46c+vyLhWvnxzerLDxjKZ25Xcyr0KEfdPtNX9fHx
87
+ UX18J6jLYlPKyvPPHlXXzQ1Su3t7q97dn1LX/VFxXxL+We4Y9X5WjUr4w9Dn
88
+ fPXs0VXq1G6d1c6dO6udQ7+vtM2z6tqpndROnTqpU9dWej5VVT278Qm1S8eO
89
+ aseOXdSHlu4p2w81/w91T8RE9U5PT9XT00ed8u0fqmjY5Ey4EXEaOp+l/e2A
90
+ E6yY8y4J1TzNyd3xKZ+mAnb3886X/2KMjyv2pW36jOFf33zG4+5A6ufMW3G0
91
+ Fj3ryz8/CWOMt1Npq3iPn8mzbRQUJYMzWcN5M2oe9+uulfs+tYBnWgNksO9Y
92
+ +TfZufz43yhOKgp2w98kcslovF3tr7U7eglfRUykNZC2cj5fVDhrVcrOHt0n
93
+ RRD5wt14GFa19+jHC88MQlEUrDIysJ8ZyXuP+14r141gzrOD9K1s+x8nyjeb
94
+ 9DVLtxYCPZi7diUv9utA6Z7Yu3ozOmw1Kya1h6s/8/pn8SbOPruzYPW/mezr
95
+ YTj29rh6j+ftsPv0xVv2VtymWUdZt2wXhUD7F7/mm9n+ZfuBvQf+07/i/8L7
96
+ AYXseu1NZHZjwyYh3Ki4MvJfS9Hn8CfMfa86bzez2LVuBwBerzzPA65Gqtj7
97
+ 8fwsfRikrvqZ6sZwaeAp9z/CYI/KpS1p2d7wMCiQ/k7Xl7t2MNbd3WzYCdCJ
98
+ OU+PwGh3736WFwYpQBrf7E42UsOdR4LuLnuhKeXU2t3wqDOTBnpft5ZT69ZG
99
+ 9zMx+gNOA3aPzOARY33GHt+nnqQvULhmK3srPCmG4YS+47lPd/2aTl798NIf
100
+ eU5cN9RtYigiYTPvnwYYzyvBPkareIydxaw2QOFmNsVJCjdkEsKNjetI3ljU
101
+ H3tF4cQnc4mqMjHTSTBc4LnbS2eyVmkYKBl7Sa3pVboWrjiZKfby9rguEIGy
102
+ jKnwS3j6ILsBuAvT3XWiU59OKIpCxv60Cher9C8M7WnZwlyHu9OmjfEOXT8O
103
+ e5rUY1dRFIX7+ngb3w8AVy/uaqMA69lrbEy5fXujLyg42eNqZuzX2PKs1GSu
104
+ KgpKf1+8TXZIh1c//aMdB1MQDZeN1h0QNecx9g3e2DSQubtOsOyFj+m3bTrl
105
+ z4cq/N1mnSEVgH74eJhp1BAGx6DGF3P6ercxXmDoR0u75ibXrRwyWRkn9cv7
106
+ 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
163
+ jbh5SAiLartw4YLJm/L4+PhY/G5izZo1o1OnTibLT58+XWUbv/76K8nJyUbL
164
+ Ro8eTceOHS3SVwcHB+666y6zfc3Pz7fo8RE3B5knLKrNXOi1adMGa2tri25P
165
+ URTatWtX6/ULCwtN3s9Cp9Nx3333WbTPnTt3xs/PDycnJ7p06UKnTp1o3bo1
166
+ Hh4eODk5WfTeF+LmIb8VotpGjRrFoEGD+PPPP8nMzOS3334jOTmZkydP1no2
167
+ RF26cOFChfsXl+fr62vxu7N5eXmxcuVKrXdbNDISwqLaFEWhefPmNG/eHE9P
168
+ T/r27Vvn2ywuLjZZVtVZ7NmzZ01eEPP19bXIWLAQN0rGhEWDVVxcTEpKisly
169
+ Nzc3s+ufPHmSrKwso2W1+dizEHVBQlg0WOfPn+fQoUNGy7p27UrLli3Nrm9q
170
+ JkfXrl3lY8SiwZDhCNFgJSQk8Msvvxgt8/T0NBvC+fn5/Pnnn0bLbrvtNrMz
171
+ OYqKikhNTeXnn38mPj6e48ePlwW6s7Mz3t7edOvWDT8/P3r27CnfMSduiISw
172
+ aJBycnL47rvvTJb36tXL7MXAK1eukJ6ebrTMw8ODJk2aXLf8woULfPfdd2a/
173
+ Hy8nJ4e4uDji4uL49NNPcXR0ZMSIETz11FPodDq5W5qoMQlh0eCoqsrOnTvZ
174
+ smWL0XKdTkfv3r3NtpGXl2fyU3LOzs7Y2tqW/b+wsJCtW7fy3nvv1firji5f
175
+ vsy3337Lli1bmDRpEtOmTcPFxUXrQygaERkTFg1OSkoKn3/+ucnygICAKucP
176
+ FxQUmLxpjoODQ9nMiuzsbBYvXswLL7xwQ981d/nyZT7++GOmTZvG4cOHtT6E
177
+ ohGREBYNyrlz53jzzTc5ePCg0XKdTseYMWOqvJdwTk4Of/zxh9Gy0vtRZGZm
178
+ MmfOHL766iuL9X///v2Ehoayd+9ejY6gaGwkhEWDkZeXx3vvvceOHTtM1nno
179
+ oYeq9VHj4uJik8MRLVq04Ny5cyxYsMDstmorNTWVl19+WYJYVIuEsGgQ8vPz
180
+ +c9//mP2rHTw4MGMGTOmWh81LikpMVmWl5fHv//97zoJ4FKpqaksW7bM5MVB
181
+ IUrJhTmhufz8fD755BPeffddk3Xc3d156qmnqpwbXCojI8Nk2bfffmvyrmaO
182
+ jo4MGjSIwMBAunXrhouLS9k9H/Lz88vuyvbNN9+YvC9Fqf379/Of//yHuXPn
183
+ 4uDgoPVhFg2UhLDQVF5eHh9++CEfffSRyTqlN17v1auXRbaZmJhodPno0aMJ
184
+ DQ01eU8JBwcHPD098fT05OGHH2bnzp28+eabZi/orVu3jj59+jBkyJD6O6ii
185
+ UZHhCKGZS5cu8eabb5oNYIBnnnmG+++/v87m4Do7O7N06VLCw8OrfVMfOzs7
186
+ hg0bxooVKxg6dKjJepcvX2bDhg3k5OTU3YEUjZqEsNDE+fPnWbBggdmpaAAz
187
+ ZswgODi4zm4D6e7uTlhYGGPGjKnVNtq0acOiRYsYPHiwyTqxsbEcOXKkTvov
188
+ Gj8JYVHv0tLSmDlzJtHR0WbrPf300zz55JN1Op76xBNPMHTo0Bs6y27ZsiWz
189
+ Z8/Gy8vLaPnly5fZvXu32TvCiVuXhLCoVwcOHODZZ5/l559/NltvxowZPPfc
190
+ c3V6u8kRI0YwZswYiwxz6HQ6HnvsMZPlCQkJnDt3rs72RTReEsKiXpSUlLB5
191
+ 82ZmzJhh8uuGSs2aNYuQkJA6n1Hw4IMPWuzmO4qi0KdPH3r06GG0/PDhw5w5
192
+ c6ZO90c0ThLCos7l5+fz4YcfMnfuXLNB5OjoyIIFC3jqqaeq/ERcVdq0aWO2
193
+ 3M/PD19fX4vuZ6tWrejZs6fRssuXL3Pq1CmLbk/cHGSKmqhT2dnZvP3221V+
194
+ NNjd3Z158+YxfPhwrKzq/tzA09PT4jfasbOzw8fHx2S5hLAwRs6ERZ05fPgw
195
+ 06ZNqzKAvby8eOeddxgxYoTFArhZs2Zmb/LTunVr7O3tLb7Pd9xxh8my/Px8
196
+ uTgnriMhLCxOVVV++uknQkND2b9/v9m6ffv25b333qN3794WnQdsZ2dndkzZ
197
+ 3d29Tvb9tttuo3PnzkbLcnJyuHr1ap1sVzReEsLCooqKivjmm294/vnnq7w1
198
+ ZFBQEMuWLUOn01m8H7fddhuurq71vv+KosiN3UWNyJiwsJjq3AMC9Bfgpk2b
199
+ VqdzgB0cHGjdurXWh0SIKkkIC4vIy8vjrbfeIioqymw9Z2dnXnnlFQIDA+vs
200
+ U3CgD2Fz38ZcVxfJzN3H2NXVtU7GoUXjJiEsblheXh7h4eHVugD3+uuv06tX
201
+ rzp/y64oCn//+99Nlp85c4YrV64Y/a65G3H58mWT9zG2s7OToQpxHRkTFjek
202
+ ugHct29fPvjgA4tfgDOnY8eOJseFjx8/zl9//WXxbf72228my8y9KIhbl4Sw
203
+ qLXq3IgdYNy4cbz77rtVfi+cpbVp0wZvb2+jZQcOHLD4d8FdunTJ5I16XF1d
204
+ adu2bb3uv2gcJIRFrRQXF/P5559XeRFuxowZvPbaa5p8A7Gzs7PZD09s376d
205
+ ixcvWmx7KSkp7N6922iZt7d3lZ/iE7cmCWFRK/v27eOLL74wWV76EeRnnnlG
206
+ s2+VsLa25p577jFZ/v333xMXF2eRbRUVFbF9+3aysrKMlvv4+FjsPhXi5iIh
207
+ LGosPT2dt956y+R9IBwdHZk/fz4TJ06s0xkQ1dGpUyfuvfdeo2WXL1/m008/
208
+ tcj3wO3du5dvv/3W5PHo06dPtb4bT9x6JIRFjRQWFvL555+b/STcM888U+ub
209
+ pFuaq6srgwYNMlm+f/9+PvzwQ7Kzs2u9jePHj7Ns2TKTZ8F9+vShS5cuWh8K
210
+ 0UBJCIsaiY+PZ/Xq1SbLH330UR5//PEGEcCgn6o2ZMgQs99Pt2bNGhYtWmQy
211
+ RM359ddfeemllzh48KDJOsOHD5ehCGGShLCotpycHNasWWNyHuzgwYP5xz/+
212
+ Uac3Yq+NNm3aMHHiRLN1oqOjmTBhAv/3f/9HYWFhlW3m5+cTHR3NM888YzaA
213
+ hw4dSt++fbU+BKIBU1RVVbXuhGgcdu3axbPPPmsyhOtbaGgozz//fLXqVnc+
214
+ M0Dnzp0JDAwkICCAtm3bll1YzM/PJysrix07dvDNN99w7Ngxs+24urry9ttv
215
+ mxyTFgLkE3OimvLz89m2bVuDCeCaatq0KY8//jiHDx82e+YKcOzYMZYuXcrS
216
+ pUtvaJvBwcHcfffdWu+6aOBkOEJUy6lTp9i7d6/W3bghnp6eLF261ORXEFlS
217
+ QxsbFw2XhLColt9++42UlBStu3HDPD09CQ8PN3uh7kaNGzeOmTNnNrixcdEw
218
+ SQiLKqmqelMEcKlOnTrxwQcf8NBDD1m0XUdHR1544QXNPiEoGicJYVGlgoKC
219
+ Wk3fashcXV1ZtGgR77zzDu3bt7/h9rp160ZERATPPvusZp8QFI2TDFiJW5ad
220
+ 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
296
+ gGdPFuqKeWH5JmKy9dvP3LONuXEwZ1zvsheKa1owPNiPMLIYvzyunv4Qq3qu
297
+ bsTf8O0GP+0vfRueTmIStHJ3rjqEsw8RFQfDHr2/7MVVfdmNVnmn2Jp0fXWX
298
+ tv0Jf7QZMV/tYHlSQVWt1zn9tYQmRP7r2snBnkFw8MdkTE6Iu5xO3Cnw8/aQ
299
+ s9sGoNEPR7jd9yAxtjtZ+PqXTCid9vToMMINsw/c7htLXNNtLPzka5QcwNaa
300
+ yYPuJXGS9/VnMo4dCNAd4uOmrfG1g+Qa9MPlnmFsPbWZkPkrmHIV2jo789HL
301
+ g6uedXD8BFF5EOzf8Vp/XLvohyS2HSHtvv5lIVo2FGJrzbBeXsQEdzWs04Kg
302
+ hfez5ZPdzJ25Qj9FzdmZ0NljCe1u4kzXsROh035n9ZtHCP2hI6srz9bQ4LnS
303
+ K/e236DClKeUZFo/Vu6ZGdQPdUonhk8L4KPluwh47HdOAn5eHdhadnxMr3tB
304
+ d5IVNCGye7lhJW8v5jbNJPzHw4R6d71uP9rdN5Dlu75jwgc7Gf72cHzrYWaJ
305
+ cYZrCa07ElDuhMK/3x30+PEU0fsL8O9lb3Tf/bp1JGpk+WsllY67YQjC6HEr
306
+ N21Q3DhFVVVV604IIcStqpEPRwghROMmISyEEBqSEBZCCA1JCAshhIYkhIUQ
307
+ QkMSwkIIoSEJYSGE0JAmH9YoPnuKyysWUnRkD1xpKHeiEuLmdPua9GrdjL8h
308
+ Wv/A/mrdDL8uOdlZMcDDiWUD29He2fIfVq/3M+His6fIeWkYRfu+lwAWQjR4
309
+ uYUlfHcim7u+OERqTv6NN1hJvYfw5agFEr5CiEYnt7CEF3emWbzdeg/hoqPa
310
+ vrUQQojaik3PtXib9X9hTs6ChRCNVG5hicXbbPR3URM3wK47X+ju5kKFhSkE
311
+ Ju2krZ0X0W39OWVjg3VBEiPTdtO2BLBqyxbdEH63yaNNxibGZucATUhoP4qL
312
+ Z9bQX/u7OwoLsjnnR5eM8yR3O47+qW3C3w4PpvWV0hoZpN61j1zAPqM/ndKd
313
+ weEEJ7oc4bIVkONL18yzHOl8hrq7U1gx7ld+Jlj1YknTVvpFahbDLx+ke0kR
314
+ NtiRYt+TaHsXCrjEPZd+YWAJnLPrzWcOt1MMdLiyg7tsBrLG1rr+j3G9b1E0
315
+ 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
376
+ gg==
377
+ "/></p> </body>
378
+ </html>
@@ -0,0 +1,457 @@
1
+ <!doctype HTML>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <script type="text/javascript"
6
+ src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
7
+ </script>
8
+
9
+ </head>
10
+ <body>
11
+ <p style="text-align:center;"></p><p style="text-align:center;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWAAAADiCAYAAABwbh0rAAAABGdBTUEAALGP
12
+ C/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUw
13
+ AADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlvRkZzAAAA
14
+ AAAAAGEApszsKAAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAAl2cEFnAAABYAAA
15
+ AUMAYcfPFgAATORJREFUeNrt3XecHMWB9/9PdffkzTlnaRVRzkIIJIJIwjLY
16
+ BION08/ndPiC7x7b99jni89z95w5Z/uAO4wxwZiMACEJEAjluNKuslabc5w8
17
+ 3V2/P1a7SNqVWMFKI0G9Xy958PZ0d01Pz3dqqqurkMolKCCPvf2Q/GJenlx4
18
+ +5fk0yfO/sxg/Rb56HcXy4ryClleVirnrPyy/PX20KnPkCfee0T+9ZXjZfkV
19
+ S+Rtf/Ub+fbRFtnT1yd7mg/JdY/8rfz0ovFy3IQb5Vd++Io8PqrymbL+3Yfl
20
+ X19bLBfe87fyD/siw5bXvf0b+VfXlsgr7/87+cea6LDltet/Kb9zbZlc+pV/
21
+ kM8dPGV5/wH54v/7prxq8iS54Navyv/7xx2yvqNP9vX1yIa9L8qffvs2ueSK
22
+ KXLGPf9bPryp5f31Ot+Tv/i722V5+Wfl3//XFtl1ZpE73pX/+b1Py3EVd8t/
23
+ fnS77D5zefvb8t/++jZZUX6P/D+P75I9Qwui8ujz/yq/ecMVctL06+TX/vEx
24
+ +c7hFtnZ2yf7ejplc/Vr8sFv3S4XT50kr/rqz+Wa6r6hNVte+4H8sxtKZPF9
25
+ D8rn9/fJYcK75cPful3OLbxe/uAP22STNbRA7n74G/LT84rl9Hv/TT63s0H2
26
+ 9vllJBobOHo1j8u/uPsqWVk+Xl79lQflczsbZUdfn+zrqZd7nvuhvHv5TDm+
27
+ Yrxc8Y9/lHvbTn9vrGhA+vt7ZW9vUEZilrTH4nRVPjQD5bLmyZvMkls/zy0b
28
+ /w8vNIEY9gw3BTNu5J4HWmn5xRPsXfcb/uLN3yLEwDOltDApZv7Ku/jat6+j
29
+ 6Dz3L8RI+zzjOeezQd84rrn9s3R2d/OHNXt57iff5oUHOVleibRMxPjr+MK9
30
+ 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
68
+ eCsfX6oXhHLeOjs7eemll3jjjTewLGvEMJJSous6Xq8Xn8+H0+lE1/XTLsrZ
69
+ tk0sFiMYDBIIBM5aG9V1naqqKh5//HHS09OZMmXKef+8t22b6upqfvOb37Bx
70
+ 48ZzPtftdpOQkIDH4xkq82B5o9Eofr+fYDA44msXQtDW1sazzz5LUVER11xz
71
+ zZi3XysfHyqAlfMSjUbZsmULr732GsFgcFgQSikxDIOEhASKi4tZvHgxixYt
72
+ ory8nOTkZJxOJzDQfhwIBKivr2fLli28+eabVFdX4/f7Rwxi27bZuXMna9as
73
+ IS8vj4yMjPMqd3t7O6+++iq7du1CSjls+1JK3G43mZmZzJ07lxtuuIGpU6eS
74
+ mpqKw+HAtm2CwSBHjx5l/fr1rF+/nuPHj5/WY2KQpmlUV1fz4osvUl5eTnl5
75
+ uWqKUEakLsIp5+X48eM8+OCDPPfcc8NqdlJKHA4HlZWVfPrTn+aGG24gOzt7
76
+ VNvt6+tj/fr1PPHEE+zdu5dIJDIstCzLYvLkyTzwwAMsW7Zs1LXgWCzGCy+8
77
+ wC9/+UuOHz8+bD0hBB6Ph6VLl/L5z3+e6dOnn7OtWUrJoUOHePzxx1mzZg0d
78
+ HR3Dmixs2yY/P58HHniAm2++GbfbHbf3TLl0qTZgZdRM02Tz5s288MIL9Pb2
79
+ nhaQg+E7b948HnjgAW666SYSExNHvW2Xy8WECROYOHEi3d3dnDhxYthPfCEE
80
+ wWCQjIwMJk+ejNfrHdW2jxw5wuOPP86uXbtGrIlmZ2fzuc99jj/7sz+jsrLy
81
+ A4NdCEFGRgbTpk1D0zRqa2vx+/3DntPd3Y3X62XKlCmkpqbG5T1TLm2qn4wy
82
+ al1dXezYsYPa2tphIaVpGnPnzuWBBx5g4cKFH7oL1pQpU/j617/OsmXLhl1s
83
+ G+xpsHv3bmpra0e1vWg0yrZt29i/fz+2bZ+2TEpJZmYmd911F/feey+5ubnn
84
+ Vda0tDRuv/12li9fjs/nG1YL1jSN48eP09DQMGzfigIqgJXz0NLSwuHDhzFN
85
+ 87S/27ZNcXExK1euZOrUqR95P5WVlaxatYqJEycOCy5N02hpaeH48eOjunGi
86
+ qamJLVu20NTUdNqXgpQSj8fDihUr+PSnP33ebcqDsrOzufbaa6moqBi2TNM0
87
+ GhoaOHbs2IhtxYqiAlgZFcuyaG1tpa2tbViQORwOpk2bxsKFC8fkir+macyY
88
+ MYP58+fjdrtPq1kO/rSvq6sjEAicczu2bVNTU8OhQ4dGrIHOmDGDG2+8kby8
89
+ vI9U3qlTpzJv3jySkpKGlbWjo4PDhw/T398/Zu+F8vGhAlgZlUgkQkNDA21t
90
+ bcPafjMzM5k+fTpZWVljtr/U1FRmzZpFUVHRaeE5GMANDQ0fWKvs6+tj7969
91
+ NDc3n/alYds2WVlZLF++nEmTJn3ksiYlJTF16lSysrKwbRsp5Wn/mpub6e3t
92
+ Hcu3Q/mYUAGsjEo4HKaxsZG2trbTwsW2bVJTUykuLv7Id6mdSghBbm4umZmZ
93
+ w9pWhRAEAoFhF77O1NzcTE1NDT09PcMu5k2fPp0FCxbg8/nGpLzl5eXk5eXh
94
+ 8XhITU0lJyeHoqIixo0bR0pKyrBmG0UB1Q9YGSXTNPH5fEyYMAEpJbFYjHA4
95
+ TCAQIDk5meTk5DHfZ2JiIsnJyaO6k+5MUkrq6+tpbW0dVvvNyMhg7ty5FBYW
96
+ jllZs7Ozueqqq8jPz6eoqIiysjJyc3PJysoiJSVlqP+zopxKBbAyKllZWXz7
97
+ 29/m/vvvp7Ozk+bmZmprazl27BgpKSnn1eXsfJwrfM91c0M4HKa2tpaOjo5h
98
+ TSb5+fmMHz9+1N3YRiMlJYX777//ghwD5eNLBbAyarquk5KSQkpKCuXl5Sxe
99
+ vPiC7m9wRoqzleVcY0L4/X7q6uqG9VcevEEiPz8/PgdRUU6h2oCVS5KUkra2
100
+ Njo6Oob1KdZ1ndTU1HPWuru7u2lqaiIcDp8WwIZhkJ2dTUpKSrxfoqKoGrBy
101
+ aQqFQhw8eJDGxsZhNdisrKwPHGmsq6tr2MW3wXWLi4vPue7guA9+v59QKEQk
102
+ Ehm6K8/lcuHxeIYGGVID7SgfhQpg5ZLU2NjI1q1baWlpOS3kpJRkZGRQXFx8
103
+ 1vEVpJR0dXWNOEaxz+cjLS1txItiwWCQzs5O6uvr2b9/P7t37+bIkSM0NDTg
104
+ 9/txuVzk5uZSUVHBxIkTmTp1KmVlZeTk5JCQkKAG3FHOmwpg5ZITDofZunUr
105
+ +/fvH/F25OLiYkpLS88aeKZpjhjAUkqSkpJITU09rVkjEonQ1NTE5s2befXV
106
+ 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
163
+ qqqKFStWcMUVV5CXl0dycvKwWn53dzf19fVs27aNl156ierqaizLGjFg58yZ
164
+ w9KlS9W09MpZCflRr0Aonwh1dXX8/Oc/55lnnhkxbKSUWJY14kWosWaaJgsW
165
+ LOD73/8+s2fPHtU6O3fu5Kc//SnvvvvusGnkT92uz+djypQpzJ49m5KSEhIS
166
+ EtA0DcuyCAaDHDt2jE2bNlFTU0MkEhlxHAvLsigsLOQb3/gGt9xyi2p+UM5K
167
+ 1YCVD2RZFocOHaKqqgrbtkcMHSHERRvvQNd1nE7nef2snzRpErfffjt9fX1U
168
+ VVWNWGs1DINwOMzWrVvZvHnziBfuNE1D1/WhxzPZtk1SUhI333wzS5cuVeGr
169
+ nJMKYOUD+f1+ampqqKuru2y7Urndbq677joAHnnkkbOGsBACXdc/1AhtlmWR
170
+ lJTErbfeOmaDyysfbyqAlQ/U29vLsWPH6O/vH3GUs8uF0+nk2muvxeFw8Pvf
171
+ /54dO3aMOF7x+ZJSIqUkMzOTm266ic997nOUlZXF++UqlwEVwMoH6u3tHXaL
172
+ 7eXK5XJx3XXXkZmZyVNPPcU777xDa2srlmWddxBLKbFtG6fTSUVFBbfeeisr
173
+ V64kNzc33i9TuUyoAFY+UDAYpL+/n1gsNmK76MVmmiaxWOxD38EmhGDmzJkU
174
+ FBQwffp03nrrLQ4cOEBTUxORSARN0xBCDP0bNFjTHQxer9dLcXEx06ZNY8WK
175
+ FcyfP/+CzLShfHypXhDKBzp69Cgvv/wyx44duyTagC3LoqKigltuueUjz6AM
176
+ 0NrayqZNm9iyZQt1dXV0dnbS09NDb28vwWBwaHhJn89HcnIyaWlpZGRkUFZW
177
+ xpVXXsm8efPUxTblQ1EBrCgnWZZFU1MTR44cob6+nqamJjo7OzFNE8MwyMjI
178
+ GBpYp7KykszMzHgXWbnMqQBWFEWJk/j/nlQURfmEUgGsKIoSJyqAFUVR4kQF
179
+ sKIoSpyoAFYURYkTFcCKoihxogJYURQlTlQAK4qixIkKYEVRlDhRAawoihIn
180
+ KoAVRVHiRAWwoihKnKgAVhRFiRMVwIqiKHGiAlhRFCVOVAAriqLEiQpgRVGU
181
+ OFEBrCiKEicqgJXRibRRvf1tXnnvMIGzPaV1P++9+xrvHA9e/PKF6tm6/l3e
182
+ 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
455
+ WAAAAABJRU5ErkJggg==
456
+ "/></p> </body>
457
+ </html>
@@ -0,0 +1,37 @@
1
+ # encoding: UTF-8
2
+ require_relative "./minitest_helper"
3
+ require "minitest/autorun"
4
+ require "doctor_ninja"
5
+ require "phashion"
6
+
7
+ class ImagesTest < MiniTest::Test
8
+ def test_normal_image
9
+ test_image "test/fixtures/img.docx", "test/fixtures/img.html"
10
+ end
11
+
12
+ def test_cropped_image
13
+ test_image "test/fixtures/img_crop.docx", "test/fixtures/img_crop.html"
14
+ end
15
+ private
16
+
17
+ def test_image docx_path, html_path
18
+ expected = Nokogiri::HTML File.read html_path
19
+ result = Nokogiri::HTML parse_file docx_path
20
+
21
+ with_image_from result do |result_img|
22
+ with_image_from expected do |expected_img|
23
+ assert(result_img.duplicate?(expected_img), "Image is not close enough")
24
+ end
25
+ end
26
+ end
27
+
28
+ def with_image_from htmldoc
29
+ img = Tempfile.new(["image",".png"])
30
+ img.close
31
+ File.open(img.path, "wb") do |f|
32
+ f.write Base64.decode64 htmldoc.xpath("//img").attribute("src").value.split(";base64,").last
33
+ end
34
+ yield Phashion::Image::new img.path
35
+ img.unlink
36
+ end
37
+ end
@@ -1,12 +1,10 @@
1
1
  # encoding: UTF-8
2
- require "minitest/autorun"
2
+ require_relative "./minitest_helper"
3
3
  require "doctor_ninja"
4
4
 
5
5
  class IntegrationTest < MiniTest::Test
6
6
  def test_valid_file
7
- @doc = DoctorNinja::Document.new("test/fixtures/limites.docx")
8
- @parser = DoctorNinja::Parser.new(@doc)
9
- @result = @parser.parse
7
+ @result = parse_file "test/fixtures/limites.docx"
10
8
 
11
9
  assert_includes(@result, "<h1>Introdução aos Limites</h1>")
12
10
  assert_includes(@result, "<h2>Introdução</h2>")
@@ -28,6 +26,6 @@ class IntegrationTest < MiniTest::Test
28
26
  </math>
29
27
  MATH
30
28
 
31
- assert_includes(@result.gsub(/[\n ]/,""), math.gsub(/[\n ]/,""))
29
+ assert_includes strip_spaces(@result), strip_spaces(math)
32
30
  end
33
31
  end
@@ -0,0 +1,36 @@
1
+ # encoding: UTF-8
2
+ require_relative "./minitest_helper"
3
+ require "doctor_ninja"
4
+ require "phashion"
5
+
6
+ class ListsTest < MiniTest::Test
7
+ def test_unordered_list
8
+ result = parse_file "test/fixtures/unordered_list.docx"
9
+ bullet1 = "<li>Bullet 1</li>"
10
+ bullet2 = <<-HTML
11
+ <li>Bullet 2
12
+ <ul>
13
+ <li>Bullet 2.1</li>
14
+ <li>Bullet 2.2
15
+ <ul>
16
+ <li>Bullet 2.2.1
17
+ <ul><li>Bullet 2.2.1.1</li>
18
+ HTML
19
+ assert_includes result, bullet1
20
+ assert_includes strip_spaces(result), strip_spaces(bullet2)
21
+ end
22
+
23
+ def test_ordered_list
24
+ result = parse_file "test/fixtures/ordered_list.docx"
25
+ bullet2 = <<-HTML
26
+ <li>Bullet 2
27
+ <ol>
28
+ <li>Bullet 2.1</li>
29
+ <li>Bullet 2.2
30
+ <ol>
31
+ <li>Bullet 2.2.1
32
+ <ol><li>Bullet 2.2.1.1</li></ol>
33
+ HTML
34
+ assert_includes strip_spaces(result), strip_spaces(bullet2)
35
+ end
36
+ end
@@ -1,3 +1,16 @@
1
1
  require 'minitest/reporters'
2
2
  Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new)
3
3
  require 'minitest/autorun'
4
+
5
+ class MiniTest::Test
6
+ protected
7
+ def parse_file(file)
8
+ doc = DoctorNinja::Document.new(file)
9
+ parser = DoctorNinja::Parser.new(doc)
10
+ parser.parse
11
+ end
12
+
13
+ def strip_spaces str
14
+ str.gsub(/[\n ]/,"")
15
+ end
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doctor_ninja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernardo Amorim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-09 00:00:00.000000000 Z
11
+ date: 2014-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: phashion
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: nokogiri
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,24 +142,27 @@ description: DoctorNinja is built by the Responde Aí Team (www.respondeai.com.b
114
142
  email:
115
143
  - contato@bamorim.com
116
144
  executables:
117
- - ninjadoc
145
+ - doctor_ninja
118
146
  extensions: []
119
147
  extra_rdoc_files: []
120
148
  files:
121
149
  - ".gitignore"
150
+ - ".travis.yml"
122
151
  - Gemfile
123
152
  - LICENSE.txt
124
153
  - README.md
125
154
  - Rakefile
126
- - bin/ninjadoc
155
+ - bin/doctor_ninja
127
156
  - doctor_ninja.gemspec
128
157
  - lib/doctor_ninja.rb
129
158
  - lib/doctor_ninja/document.rb
130
159
  - lib/doctor_ninja/errors.rb
160
+ - lib/doctor_ninja/numbering.rb
131
161
  - lib/doctor_ninja/parser.rb
132
162
  - lib/doctor_ninja/parsers/base.rb
133
163
  - lib/doctor_ninja/parsers/blip_fill.rb
134
164
  - lib/doctor_ninja/parsers/drawing.rb
165
+ - lib/doctor_ninja/parsers/list.rb
135
166
  - lib/doctor_ninja/parsers/math.rb
136
167
  - lib/doctor_ninja/parsers/math_para.rb
137
168
  - lib/doctor_ninja/parsers/omml2mml.xsl
@@ -142,12 +173,18 @@ files:
142
173
  - lib/doctor_ninja/version.rb
143
174
  - test/document_test.rb
144
175
  - test/fixtures/img.docx
176
+ - test/fixtures/img.html
145
177
  - test/fixtures/img_crop.docx
178
+ - test/fixtures/img_crop.html
146
179
  - test/fixtures/img_rot.docx
147
180
  - test/fixtures/img_rot_crop.docx
148
181
  - test/fixtures/invalid_file.docx
149
182
  - test/fixtures/limites.docx
183
+ - test/fixtures/ordered_list.docx
184
+ - test/fixtures/unordered_list.docx
185
+ - test/images_test.rb
150
186
  - test/integration_test.rb
187
+ - test/lists_test.rb
151
188
  - test/minitest_helper.rb
152
189
  homepage: https://github.com/bamorim/doctor_ninja
153
190
  licenses:
@@ -177,10 +214,16 @@ summary: DoctorNinja is a library to convert word documents into html files like
177
214
  test_files:
178
215
  - test/document_test.rb
179
216
  - test/fixtures/img.docx
217
+ - test/fixtures/img.html
180
218
  - test/fixtures/img_crop.docx
219
+ - test/fixtures/img_crop.html
181
220
  - test/fixtures/img_rot.docx
182
221
  - test/fixtures/img_rot_crop.docx
183
222
  - test/fixtures/invalid_file.docx
184
223
  - test/fixtures/limites.docx
224
+ - test/fixtures/ordered_list.docx
225
+ - test/fixtures/unordered_list.docx
226
+ - test/images_test.rb
185
227
  - test/integration_test.rb
228
+ - test/lists_test.rb
186
229
  - test/minitest_helper.rb