I’m trying to get the Ruby Tidy gem installed but I am having problems.
I downloaded and installed HTML Tidy from source first, then installed
Ruby Tidy from the gem:
gem install tidy
And it reports that it went ok:
Bulk updating Gem source index for: http://gems.rubyforge.org
irbSuccessfully installed tidy-1.1.2
Installing ri documentation for tidy-1.1.2…
Installing RDoc documentation for tidy-1.1.2…
But when I issue ‘require ‘tidy’’ (in my rails ‘script/console’) it
reports false, as if it isn’t installed.
Any ideas? I’m on OS X 10.4.8 on my workstation and FC5 on my server.
But when I issue ‘require ‘tidy’’ (in my rails ‘script/console’) it
reports false, as if it isn’t installed.
Don’t you have to have libtidy installed in addition to the gem?
Yes, but that would have caused a failure at the ‘Building native
extensions’ phase of the gem install?
The false result the OP is seeing means that either tidy was already
required, or an (old?) gems bug has reared it’s head. Generally, I find
it
best to ignore the return value from Kernel#require, since it will throw
a
LoadError if the library cannot be loaded. In this case, I suspect the
library is loading just fine, despite the ‘false’ return from require.
It was required already then. If you are requireing something for the
first time in that interpreter, it returns true, if you are doing it
for the second+ time, it returns false, if it wasn’t installed, it
would result in a load error
require_gem ‘tidy’ is not supposed to do anything. If I got the threads
in which that occured right, require_gem only specifies the preferred
version of a gem, you still have to require files from inside them.
Bulk updating Gem source index for: http://gems.rubyforge.org
irbSuccessfully installed tidy-1.1.2
Installing ri documentation for tidy-1.1.2…
Installing RDoc documentation for tidy-1.1.2…
But when I issue ‘require ‘tidy’’ (in my rails ‘script/console’) it
reports false, as if it isn’t installed.
Any ideas? I’m on OS X 10.4.8 on my workstation and FC5 on my server.
Hi Mark,
I’m on Mac OS X 10.4.8 as well (Powerbook). and i’ve got no problems
with Tidy here
sayang:~/mo/tau/direktori/gw/aja/lu/huh/hwek arie$ irb
irb(main):001:0> require ‘tidy’
=> true
irb(main):004:0> Tidy.path = ‘/usr/lib/libtidy.dylib’
=> “/usr/lib/libtidy.dylib”
irb(main):005:0> html = ‘titleBody akeh pokoke
isine merene mrono das des dos i\ntes
tes tes \n\n adfdfdfdfd’
=> “titleBody akeh pokoke isine merene mrono das des dos i\ntes tes tes \n\n adfdfdfdfd”
irb(main):006:0> xml = Tidy.open(:show_warnings => true) do |tidy|
irb(main):007:1* tidy.options.output_xml = true
irb(main):008:1> puts tidy.options.show_warnings
irb(main):009:1> xml = tidy.clean(html)
irb(main):010:1> puts tidy.errors
irb(main):011:1> puts tidy.diagnostics
irb(main):012:1> xml
irb(main):013:1> end
true
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 9 - Warning: plain text isn’t allowed in elements
Info: Document content looks like XHTML 1.0 Transitional
2 warnings, 0 errors were found!
=> “\n\n<meta name=“generator”\ncontent=“HTML Tidy for Mac
OS X (vers 1st December 2004), see www.w3.org”
/>\ntitle\n\nBody akeh pokoke isine merene
mrono \n das des dos \ni\ntes tes
tes\n \n\n\n \nadfdfdfdfd\n\n”
irb(main):014:0> puts xml
title
Body akeh pokoke isine merene mrono
das des dos
i\ntes tes tes
\n\n
adfdfdfdfd
=> nil
irb(main):015:0>
isine merene mrono das des dos i\ntes
irb(main):012:1> xml
mrono \n das des dos \ni\ntes tes
das des dos
i\ntes tes tes
\n\n
adfdfdfdfd
=> nil
irb(main):015:0>
I’ve had similar problems before, but require doesn’t return false on an
error. It returns false if the file has been included before and there
is not loaded again. When an error occurs, require will throw an Error.
Try and use some of the methods from Tidy and see if they work.
Kind regards,
Wim
–
Wim Vander S.
Bachelor Computer Science, University Ghent