diff options
Diffstat (limited to 'Library/Formula')
| -rw-r--r-- | Library/Formula/yaz.rb | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/Library/Formula/yaz.rb b/Library/Formula/yaz.rb index f0fbf3473..6bee9a4b0 100644 --- a/Library/Formula/yaz.rb +++ b/Library/Formula/yaz.rb @@ -14,6 +14,7 @@ class Yaz < Formula end depends_on "pkg-config" => :build + depends_on "icu4c" => :recommended depends_on "gnutls" => :optional def install @@ -23,15 +24,49 @@ class Yaz < Formula system "make install" end - # This test converts between MARC8, an obscure mostly-obsolete library - # text encoding supported by yaz-iconv, and UTF8. test do - File.open("marc8.txt", "w") do |f| - f.write "$1!0-!L,i$3i$si$Ki$Ai$O!+=(B" - end - - result = `"#{bin}/yaz-iconv" -f marc8 -t utf8 marc8.txt`.chomp + # This test converts between MARC8, an obscure mostly-obsolete library + # text encoding supported by yaz-iconv, and UTF8. + marc8file = testpath/"marc8.txt" + marc8file.write "$1!0-!L,i$3i$si$Ki$Ai$O!+=(B" + result = `#{bin}/yaz-iconv -f marc8 -t utf8 #{marc8file}` result.force_encoding(Encoding::UTF_8) if result.respond_to?(:force_encoding) assert_equal "世界こんにちは!", result + + # Test ICU support if building with ICU by running yaz-icu + # with the example icu_chain from its man page. + if build.with? "icu4c" + # The input string should be transformed to be: + # * without control characters (tab) + # * split into tokens at word boundaries (including -) + # * without whitespace and Punctuation + # * xy transformed to z + # * lowercase + configurationfile = testpath/"icu-chain.xml" + configurationfile.write <<-EOS.undent + <?xml version="1.0" encoding="UTF-8"?> + <icu_chain locale="en"> + <transform rule="[:Control:] Any-Remove"/> + <tokenize rule="w"/> + <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/> + <transliterate rule="xy > z;"/> + <display/> + <casemap rule="l"/> + </icu_chain> + EOS + + inputfile = testpath/"icu-test.txt" + inputfile.write "yaz-ICU xy!" + + expectedresult = <<-EOS.undent + 1 1 'yaz' 'yaz' + 2 1 '' '' + 3 1 'icuz' 'ICUz' + 4 1 '' '' + EOS + + result = `#{bin}/yaz-icu -c #{configurationfile} #{inputfile}` + assert_equal expectedresult, result + end end end |
