Sha256: 76f41687ed5fe467a63f2f9d6033fc4dde6a03e7f419d0b7854e6ca7666889c9

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

raise "You need to run JRuby to use Rika" unless RUBY_PLATFORM =~ /java/

require "rika/version"
require 'java' 

Dir[File.join(File.dirname(__FILE__), "*.jar")].each do |jar|
  require jar
end

module Rika
	import org.apache.tika.sax.BodyContentHandler
	import org.apache.tika.parser.AutoDetectParser
	import org.apache.tika.metadata.Metadata

  class Parser
  	
  	def initialize(filename)
  		if File.exists?(filename)
  			@filename = filename
				self.perform
			else
				raise IOError, "File does not exist"
			end
  	end

  	def content
  		@content.to_s
  	end

  	def metadata
  		metadata_hash = {}
  		
  		@metadata.names.each do |name|
  			metadata_hash[name] = @metadata.get(name) 
  		end

  		metadata_hash
  	end

  	def available_metadata
  		@metadata.names.to_a
  	end

  	def metadata_exists?(name)
  		if @metadata.get(name) == nil
  			false
  		else
  			true
  		end
  	end

  	protected
		
		def perform
			input_stream = java.io.FileInputStream.new(java.io.File.new(@filename))
			@metadata = Metadata.new
			@metadata.set("filename", File.basename(@filename))
			@parser = AutoDetectParser.new
			@content = BodyContentHandler.new
			@parser.parse(input_stream, @content, @metadata)
			input_stream.close
		end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rika-0.9.0-java lib/rika.rb