summaryrefslogtreecommitdiff
path: root/application.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2010-07-19 11:39:07 +0200
committerChristoph Helma <helma@in-silico.ch>2010-07-19 11:39:07 +0200
commit25f2fb2e55f8a0db9f3b22781a5bcfb3fbb1bf0e (patch)
treee9f401f74c1ed71d9768a2ac71a7118416bda4c0 /application.rb
parente910d126b452f3d9ca8a20107aee04ceece9bb11 (diff)
initial cdk structure visualizer added
Diffstat (limited to 'application.rb')
-rw-r--r--application.rb22
1 files changed, 19 insertions, 3 deletions
diff --git a/application.rb b/application.rb
index 6a7e4c6..cc0279b 100644
--- a/application.rb
+++ b/application.rb
@@ -1,9 +1,25 @@
+# Java environment
+ENV["JAVA_HOME"] = "/usr/lib/jvm/java-6-sun" unless ENV["JAVA_HOME"]
+java_dir = File.join File.expand_path(File.dirname(__FILE__)),"public/java"
+cdk = File.join java_dir, "cdk-1.3.5.jar"
+jchempaint = File.join java_dir, "cdk-jchempaint-15.jar"
+ENV["CLASSPATH"] = "#{ENV["CLASSPATH"]}:#{java_dir}:#{cdk}:#{jchempaint}"
+
require 'rubygems'
+require 'rjb'
gem "opentox-ruby-api-wrapper", "= 1.5.7"
require 'opentox-ruby-api-wrapper'
-set :lock, true
-CACTUS_URI="http://cactus.nci.nih.gov/chemical/structure/"
+#set :lock, true
+
+get %r{/(.+)/image} do |inchi| # catches all remaining get requests
+
+ smiles = OpenTox::Compound.new(:inchi => inchi).smiles
+ content_type "image/png"
+ attachment "#{smiles}.png"
+ Rjb::import('Display').new(smiles,600).image
+
+end
get %r{/(.+)} do |inchi| # catches all remaining get requests
inchi = URI.unescape request.env['REQUEST_URI'].sub(/^\//,'').sub(/.*compound\//,'') # hack to avoid sinatra's URI/CGI unescaping, splitting, ..."
@@ -28,7 +44,7 @@ get %r{/(.+)} do |inchi| # catches all remaining get requests
OpenTox::Compound.new(:inchi => inchi).png
when "text/plain"
response['Content-Type'] = "text/plain"
- uri = File.join CACTUS_URI,inchi,"names"
+ uri = File.join @@cactus_uri,inchi,"names"
RestClient.get(uri).body
else
halt 400, "Unsupported MIME type '#{request.env['HTTP_ACCEPT']}'"