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