From 3fe85157155ff6ed84253953c3bfa0596356085e Mon Sep 17 00:00:00 2001 From: mguetlein Date: Thu, 12 May 2011 12:37:32 +0200 Subject: fix: split away html-params from inchi-uri, fix: to png via accept header --- application.rb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/application.rb b/application.rb index 0a3794a..0c19484 100644 --- a/application.rb +++ b/application.rb @@ -11,7 +11,8 @@ gem "opentox-ruby", "~> 1" require 'opentox-ruby' before do - @inchi = URI.unescape request.env['REQUEST_URI'].sub(/^\//,'').sub(/.*compound\//,'').sub(/\/smarts.*$/,'').sub(/\/image/,'') # hack to avoid sinatra's URI/CGI unescaping, splitting, ..." + @inchi = URI.unescape request.env['REQUEST_URI'].sub(/^\//,'').sub(/.*compound\//,'').sub(/\/smarts.*$/,'').sub(/\/image/,'').sub(/\?.*$/,'') # hack to avoid sinatra's URI/CGI unescaping, splitting, ..." + puts @inchi end # Display activating (red) and deactivating (green) substructures. Overlaps betwen activating and deactivating structures are marked in yellow. @@ -35,12 +36,7 @@ get %r{/(.+)/smarts/activating/(.*)/deactivating/(.*)$} do |inchi,activating,dea end end -# Get png image -# @return [image/png] Image data -get %r{/(.+)/image} do |inchi| # catches all remaining get requests - smiles = OpenTox::Compound.from_inchi(@inchi).to_smiles - content_type "image/png" - attachment "#{smiles}.png" +def png_from_smiles(smiles) begin Rjb.load(nil,["-Xmx64m"])# avoid JVM memory allocation problems Rjb::import('Structure').new(smiles,150).show @@ -49,6 +45,15 @@ get %r{/(.+)/image} do |inchi| # catches all remaining get requests end end +# Get png image +# @return [image/png] Image data +get %r{/(.+)/image} do |inchi| # catches all remaining get requests + smiles = OpenTox::Compound.from_inchi(@inchi).to_smiles + content_type "image/png" + attachment "#{smiles}.png" + png_from_smiles(smiles) +end + # Get compound representation # @param [optinal, HEADER] Accept one of `chemical/x-daylight-smiles, chemical/x-inchi, chemical/x-mdl-sdfile, chemical/x-mdl-molfile, text/plain, image/gif, image/png`, defaults to chemical/x-daylight-smiles # @example Get smiles @@ -76,7 +81,7 @@ get %r{/(.+)} do |inchi| # catches all remaining get requests OpenTox::Compound.from_inchi(@inchi).to_gif when "image/png" response['Content-Type'] = "image/png" - OpenTox::Compound.from_inchi(@inchi).to_png + png_from_smiles(OpenTox::Compound.from_inchi(@inchi).to_smiles) when "text/plain" response['Content-Type'] = "text/plain" uri = File.join @@cactus_uri,@inchi,"names" -- cgit v1.2.3 From 904a954b7c8ad21a2f0944055763c078946ad385 Mon Sep 17 00:00:00 2001 From: mr Date: Mon, 23 May 2011 13:27:17 +0200 Subject: configure new version requested opentox-ruby gem --- application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application.rb b/application.rb index 0c19484..eba06a4 100644 --- a/application.rb +++ b/application.rb @@ -7,7 +7,7 @@ ENV["CLASSPATH"] = "#{ENV["CLASSPATH"]}:#{java_dir}:#{cdk}:#{jchempaint}" require 'rubygems' require 'rjb' -gem "opentox-ruby", "~> 1" +gem "opentox-ruby", "~> 2" require 'opentox-ruby' before do -- cgit v1.2.3