From fc6b99b835a612b6c96158e0868d4b704f61aa96 Mon Sep 17 00:00:00 2001 From: Eugene Pimenov Date: Tue, 14 Feb 2012 12:24:39 +0100 Subject: [PATCH] Support Fedora systems without libtidy-devel package. libtidy-devel creates a symlink from libtidy.so to libtidy.so.MAJOR. --- lib/tidy_ffi/lib_tidy.rb | 9 ++++++++- lib/tidy_ffi/tidy_ffi_extensions.rb | 11 ++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/tidy_ffi/lib_tidy.rb b/lib/tidy_ffi/lib_tidy.rb index 821a41d..ea7d6e9 100644 --- a/lib/tidy_ffi/lib_tidy.rb +++ b/lib/tidy_ffi/lib_tidy.rb @@ -3,7 +3,14 @@ # This file must be lazy loaded! class TidyFFI::LibTidy #:nodoc: extend FFI::Library - ffi_lib TidyFFI.library_path + + paths = Array(TidyFFI.library_path || Dir['/{opt,usr}/{,local/}lib{,64}/libtidy.{dylib,so*}']) + begin + ffi_lib(*paths) + rescue LoadError + raise TidyFFI::LibTidyNotInstalled, "didn't find tidy libs on your system. Please install tidy (http://tidy.sourceforge.net/)" + end + attach_function :tidyReleaseDate, [], :string diff --git a/lib/tidy_ffi/tidy_ffi_extensions.rb b/lib/tidy_ffi/tidy_ffi_extensions.rb index b62c88a..aefe625 100644 --- a/lib/tidy_ffi/tidy_ffi_extensions.rb +++ b/lib/tidy_ffi/tidy_ffi_extensions.rb @@ -1,12 +1,5 @@ module TidyFFI::TidyFFIExtensions #:nodoc: - # Sets path to libtidy.{dylib,so} - def library_path=(path) - @libtidy_path = path - end - - # Returns path to libtidy.{dylib,so} - def library_path - @libtidy_path ||= 'tidy' - end + # Sets and gets path to libtidy.{dylib,so} + attr_accessor :library_path end TidyFFI.extend TidyFFI::TidyFFIExtensions