From e2ef8ea7480fbf52bf28938c4b6eb8f744136ca0 Mon Sep 17 00:00:00 2001 From: Serge Bedzhik Date: Thu, 4 Apr 2013 11:03:39 +0300 Subject: [PATCH 1/2] Little patch to german.rb to fix issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It fixes issue — https://github.com/louismullie/treat/issues/39 with invalid multibyte char (US-ASCII) --- lib/treat/config/data/languages/german.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/treat/config/data/languages/german.rb b/lib/treat/config/data/languages/german.rb index ff013246..ed231091 100755 --- a/lib/treat/config/data/languages/german.rb +++ b/lib/treat/config/data/languages/german.rb @@ -1,3 +1,5 @@ +#encoding: UTF-8 + { dependencies: [ 'punkt-segmenter', From 1aa4df9566593813f11fe25c1550c7fd98ce966c Mon Sep 17 00:00:00 2001 From: Erol Fornoles Date: Wed, 1 May 2013 13:03:51 +0800 Subject: [PATCH 2/2] Add a general document reader class using Yomu. --- Gemfile | 3 ++- .../workers/formatters/readers/autoselect.rb | 2 +- .../workers/formatters/readers/document.rb | 17 +++++++++++++++++ spec/entities/document.rb | 4 ++-- .../english/mathematicians/pythagoras.docx | Bin 0 -> 22153 bytes treat.gemspec | 3 ++- 6 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 lib/treat/workers/formatters/readers/document.rb create mode 100644 spec/workers/examples/english/mathematicians/pythagoras.docx diff --git a/Gemfile b/Gemfile index dc1356ea..4ca422d2 100644 --- a/Gemfile +++ b/Gemfile @@ -4,10 +4,11 @@ gemspec gem 'birch' gem 'schiphol' +gem 'yomu' group :test do gem 'rspec' gem 'rake' gem 'terminal-table' gem 'simplecov' -end \ No newline at end of file +end diff --git a/lib/treat/workers/formatters/readers/autoselect.rb b/lib/treat/workers/formatters/readers/autoselect.rb index 20f8ab1b..f3dab48f 100644 --- a/lib/treat/workers/formatters/readers/autoselect.rb +++ b/lib/treat/workers/formatters/readers/autoselect.rb @@ -3,7 +3,7 @@ class Treat::Workers::Formatters::Readers::Autoselect ExtensionRegexp = /^.*?\.([a-zA-Z0-9]{2,5})$/ ImageExtensions = ['gif', 'jpg', 'jpeg', 'png'] DefaultOptions = { - :default_to => 'txt' + :default_to => 'document' } # Choose a reader to use. diff --git a/lib/treat/workers/formatters/readers/document.rb b/lib/treat/workers/formatters/readers/document.rb new file mode 100644 index 00000000..a40a9478 --- /dev/null +++ b/lib/treat/workers/formatters/readers/document.rb @@ -0,0 +1,17 @@ +require 'yomu' + +# This class is a wrapper for Yomu. +# Yomu is a library for extracting text and metadata from files and documents +# using the Apache Tika content analysis toolkit. +class Treat::Workers::Formatters::Readers::Document + # Extract the readable text from any document. + # + # Options: none. + def self.read(document, options = {}) + yomu = Yomu.new(document.file) + + document.value = yomu.text + document.set :format, yomu.mimetype.extensions.first + document + end +end diff --git a/spec/entities/document.rb b/spec/entities/document.rb index f8c34e00..7a15b465 100644 --- a/spec/entities/document.rb +++ b/spec/entities/document.rb @@ -9,10 +9,10 @@ module Treat::Specs::Entities it "opens the file and reads its " + "content into a document" do f = Treat.paths.spec + - 'workers/examples/english/mathematicians/leibniz.txt' + 'workers/examples/english/mathematicians/pythagoras.docx' d = Treat::Entities::Document.build(f) d.should be_an_instance_of Treat::Entities::Document - d.to_s.index('Gottfried Leibniz').should_not eql nil + d.to_s.index('Pythagoras of Samos').should_not eql nil end end diff --git a/spec/workers/examples/english/mathematicians/pythagoras.docx b/spec/workers/examples/english/mathematicians/pythagoras.docx new file mode 100644 index 0000000000000000000000000000000000000000..340dd6a201b005ea1741eeb5802dd34d67cfad52 GIT binary patch literal 22153 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

k|<2OFfLOGCm)bq3` zq|fv)a&_&cc5QY@x~K^oUorM%po=V_CyB6OyjY$Ox%>+gTcm7MBfTrqW`zJ32p)7?yR z)VMR$I2pKY^l~-iGyH_y!+AoY`T#uh-Xq7Wz6AlDM~;hN@;dhXC@x{G={$TRJ8}F$ zqvthg+6S{VMPsd5!X>X+Cum$a9)UBySlmbgA4IV@)i1*6`+R&ipT?O(vvLto1;`WO zqcFap2{2y|y}A8_yaMx1+M z+Z|E(4rTl3y|pa3%kj9kVX zscs@U_$an_FCIutWheN^=vX1=Bm_lnGA^AxH{bVMmuzsNWnKZQJ~D<##;D{b*40Pe zR@ULeDTyf_qR6c;&`75p?-P98bcI?tRkjf)%eIpY?h=45iJ+&bG~%$8^YSZ~M)AQT zC^MVvQxtN{p9rbO|(iV@Va@IU_`sV5n$*T#5!BueJqm!qTcm1!#EJ(R3G? z1PyW_`y2|YfFOp1hhW6*$B@z60#MnP)F!f*GCW1g@#cy4ru%6T(ra@ak2X5V+Gy=V zM@H+t>BKF3T(T}xM{kWrQ*goul~sEUXBWi>GqaRhhBuww3UEVDWfQvurglgtIanh$ zj}H=x4i3Z3k^6k@xv>2Ijxpzn!+xOp-odDk9PaHy60HW(!B!c$M=x84+rBvTpa#%B z!1#hma-~F=9$RP_@^MLsCeXV!diGrmf<*2S?;?D)`+NsS#+1ap)#7#fwtX?8IVL}# z;60YcCbXX{pt~^82&JDVB~;2ceN%K?&U44ky6#m$EN+UF-YO0?|A1!^7D7Ug?@epB zemTB-%c`r6M=g#D?=x@U2v)0`mgr}j$zT=FY=1tWZu2~3tTopaMqgQ!m%Y*J>UG*7 z^u+PdCf4dpZNlW0x$9OFSLcM}D0yC~J7TF(^@q@4M5{$Oq!|%d@$N;uV;iR2#0%Iq zxlY#mf#YSt-Y!}qy$SrZ!OE;MUbW`I#wjt&?T%3$W`^O<=ZFs25s!r}#h*z9a2^cv z4`nb-(#)3U%uLUv#1*)aByN zxZej*EAaR?EmJdx%lY2ulLn`0PW&=N8+O=Nq;v9K93G5_LD5mCwxgB$&v)|%W za8O;pDZx1+i;G-lMX6{e%D#(NY^g$?>Do3c_>fCfsw!HbQ^uO)*;aIc(wir{$JwUv zxS|@DnoWjjDLn%dP1JZcJ_V?q?;xoKn{_knp{C7LU*T z$o(E z(7Y$U{8$Jnw7j-1u5-kz5#_F8yJ8VeHZ2OcnP-D{Kv1DW9xu!xM zszNTSlvBK~*bu2-{zlN6a-B|;q{XZvfPY^u7n$EX$mEG#X{Ae!tPd)tyMKZQfBKcA zUZgMjIR4v~PxcNP7!Gb}c)q*3r+862t3e2t+XBhcNZm1{X3u#R^u&j9Yf;=-0xznc zBNA%g`UnVG^BR@X96yca9F4GQIIfyKoijFZ<`Wal9&MP(IA8c6FJivdA|jL|?NVzd zRM+XfHJ~`j@&@WW(K5rfuWc`P_^)%egS&|g!Qd0dd(iE$e|^FLcP0OQzyMA5&y}vx zrZU5c-K4ujl{2GnjZ@5=dPA}ygi)p z5WF`gxVup&g22m`ozJD$OMjP0$TL5HQlgiwQZ(1GPrlsL7is&x2tyqb7s2*YuF4L4 zr&gwOltK-U07Gq^=w1bcidOdU~Tf`FY{FDTVWk^)GJa{#kCH2xHkq8gi>>?1wN zBg>f;3ziA}PEj-Bm;);Wzp%t=;pVMDMtG<~>sTz@ti)#&M-Qr|oYya6E$WtUh=h%O zQPk=gF?rL~d5sb4B&c}e>#OvDp&$`t=~O0xHvzcY@l;Gxu1xD|zQfN%E_fAF2S%7y`kwyFp_yt*zccv#gud^Du(TUo zO#J1%zCQ_nKb`DXLI@bQ|GTrw{^a!MDO5jsSzh^vSzzrSwz$pt)YK>8PJe1G}!C;6Yxzdsq&%l;+?EU^Ab{O8#J zllTPOHG64=-(~`T(*GXFe^LX06L`wNkCyx=tg9&@BEfJlz>f;(?hLS<|G@tOqzNVw literal 0 HcmV?d00001 diff --git a/treat.gemspec b/treat.gemspec index 56921df5..aa8d8527 100644 --- a/treat.gemspec +++ b/treat.gemspec @@ -25,6 +25,7 @@ Gem::Specification.new do |s| # Runtime dependencies s.add_runtime_dependency 'schiphol' s.add_runtime_dependency 'birch' + s.add_runtime_dependency 'yomu' # Development dependencies s.add_development_dependency 'rspec' @@ -36,4 +37,4 @@ Gem::Specification.new do |s| To complete the installation, run `require treat` in an IRB terminal, followed by `Treat::Core::Installer.install`. } -end \ No newline at end of file +end