summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-05-12 12:37:32 +0200
committermguetlein <martin.guetlein@gmail.com>2011-05-12 12:37:32 +0200
commit3fe85157155ff6ed84253953c3bfa0596356085e (patch)
treeefabee6112444bfdaf09d455152693a2b91715db
parent303db64e0ffeddc280e8f01e5ad144d7a563732a (diff)
fix: split away html-params from inchi-uri, fix: to png via accept header
-rw-r--r--application.rb21
1 files 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"