aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/yaz.rb49
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