lib/cul-fedora/item.rb in cul-fedora-0.3.0 vs lib/cul-fedora/item.rb in cul-fedora-0.5.0

- old
+ new

@@ -34,18 +34,25 @@ def datastream(name) request(:request => name.to_s.upcase) end - def listMembers + def risearch_for_members() results = JSON::parse(@server.request(:method => "", :request => "risearch", :format => "json", :lang => "itql", :query => sprintf(@server.riquery, @pid)))["results"] results.collect { |r| @server.item(r["member"]) } end + def listMembers() + result = Nokogiri::XML(request(:sdef => "ldpd:sdef.Aggregator", :request => "listMembers", :format => "", :max => "", :start => "")) + result.css("sparql>results>result>member").collect do |result_node| + @server.item(result_node.attributes["uri"].value) + end + end + def describedBy begin result = request(:request => "describedBy", :sdef => "ldpd:sdef.Core") Nokogiri::XML(result).css("sparql>results>result>description").collect do |metadata| @server.item(metadata.attributes["uri"].value) @@ -173,12 +180,24 @@ end - listMembers.each_with_index do |member, i| - add_field.call("ac.fulltext_#{i}", "") + tika_directory = File.expand_path(File.join(File.expand_path(File.dirname(__FILE__)), "..", "tika")) + + resource_file_name = File.join(tika_directory, "scratch", Time.now.to_i.to_s + "_" + rand(10000000).to_s) + tika_jar = File.join(tika_directory, "tika-0.3.jar") + + File.open(resource_file_name, "w") { |f| f.puts(member.datastream("CONTENT")) } + + + tika_result = %x[java -jar #{tika_jar} -t #{resource_file_name}] + + + add_field.call("ac.fulltext_#{i}", tika_result) + + # File.delete(resource_file_name) end return results end