doctor_ninja 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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