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