Ruby Tidy

Hi All,

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.

Mark D. wrote:

gem install tidy

And it reports that it went ok:

But when I issue ‘require ‘tidy’’ (in my rails ‘script/console’) it
reports false, as if it isn’t installed.

Try loading rubygems first:

require ‘rubygems’
require ‘tidy’ # or: require_gem ‘tidy’

On 12/19/06, Mark D. [email protected] wrote:

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?

Hola,

But when I issue ‘require ‘tidy’’ (in my rails ‘script/console’) it
reports false, as if it isn’t installed.

Are you sure you require ‘rubygems’ before requiring ‘tidy’?

Cheers,
Peter

__
http://www.rubyrailways.com

On 19 Dec 2006, at 16:21, Greg D. wrote:

On 12/19/06, Mark D. [email protected] wrote:

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?

Some systems have it already installed. For example, on my OS X it’s
here:

/usr/lib/libtidy.dylib

Regards,
Andy S.

On Tue, 19 Dec 2006 16:21:27 -0000, Greg D. [email protected]
wrote:

On 12/19/06, Mark D. [email protected] wrote:

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.

Try loading rubygems first:

require ‘rubygems’
require ‘tidy’ # or: require_gem ‘tidy’

As someone pointed out earlier, that would throw a LoadError - and
anyway, Rails has dependency on rubygems so this should not be the
problem…

Peter

__
http://www.rubyrailways.com

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

Suraj K. wrote:

require ‘tidy’ # or: require_gem ‘tidy’

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.

David V.

Mark D. wrote:

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>

Arie Kusuma A. wrote:

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

http://nanoblog.ath.cx
My weblog, powered by Ruby and BSD licensed.