summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormr <mr@mrautenberg.de>2010-01-25 09:29:21 +0100
committermr <mr@mrautenberg.de>2010-01-25 09:29:21 +0100
commita165822a7bd663916cff9484a76e6bb6bcf9a353 (patch)
tree4f33445db772b87ccead41b75e686be144ad3bb1
parent4c2ac1a90b686b0e4bc361403770e0756bbfbdf9 (diff)
internal authorization with first user of users.yaml
-rw-r--r--lib/algorithm.rb112
-rw-r--r--lib/authorization.rb2
-rw-r--r--lib/dataset.rb7
-rw-r--r--lib/environment.rb4
-rw-r--r--lib/model.rb6
-rw-r--r--lib/task.rb14
-rw-r--r--lib/templates/config.ru4
7 files changed, 82 insertions, 67 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb
index 6ae9e72..d5f85c7 100644
--- a/lib/algorithm.rb
+++ b/lib/algorithm.rb
@@ -1,66 +1,66 @@
module OpenTox
- module Algorithm
+ module Algorithm
- class Fminer
- include Owl
+ class Fminer
+ include Owl
- def initialize
- super
- self.uri = File.join(@@config[:services]["opentox-algorithm"],'fminer')
- self.title = "fminer"
- self.source = "http://github.com/amaunz/libfminer"
- self.parameters = {
- "Dataset URI" => { :scope => "mandatory", :value => "dataset_uri" },
- "Feature URI for dependent variable" => { :scope => "mandatory", :value => "feature_uri" }
- }
- end
+ def initialize
+ super
+ self.uri = File.join(@@config[:services]["opentox-algorithm"],'fminer')
+ self.title = "fminer"
+ self.source = "http://github.com/amaunz/libfminer"
+ self.parameters = {
+ "Dataset URI" => { :scope => "mandatory", :value => "dataset_uri" },
+ "Feature URI for dependent variable" => { :scope => "mandatory", :value => "feature_uri" }
+ }
+ end
- def self.create_feature_dataset(params)
- resource = RestClient::Resource.new(params[:feature_generation_uri], :user => request.username, :password => request.password)
- resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri]
- end
- end
+ def self.create_feature_dataset(params)
+ resource = RestClient::Resource.new(params[:feature_generation_uri], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri]
+ end
+ end
- class Lazar
- include Owl
+ class Lazar
+ include Owl
- def initialize
- super
- self.uri = File.join(@@config[:services]["opentox-algorithm"],'lazar')
- self.title = "lazar"
- self.source = "http://github.com/helma/opentox-algorithm"
- self.parameters = {
- "Dataset URI" =>
- { :scope => "mandatory", :value => "dataset_uri" },
- "Feature URI for dependent variable" =>
- { :scope => "mandatory", :value => "feature_uri" },
- "Feature generation URI" =>
- { :scope => "mandatory", :value => "feature_generation_uri" }
- }
- end
-
- def self.create_model(params)
- resource = RestClient::Resource.new(File.join(@@config[:services]["opentox-algorithm"], "lazar"), :user => request.username, :password => request.password)
- @uri = resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri], :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer")
- end
+ def initialize
+ super
+ self.uri = File.join(@@config[:services]["opentox-algorithm"],'lazar')
+ self.title = "lazar"
+ self.source = "http://github.com/helma/opentox-algorithm"
+ self.parameters = {
+ "Dataset URI" =>
+ { :scope => "mandatory", :value => "dataset_uri" },
+ "Feature URI for dependent variable" =>
+ { :scope => "mandatory", :value => "feature_uri" },
+ "Feature generation URI" =>
+ { :scope => "mandatory", :value => "feature_generation_uri" }
+ }
+ end
+
+ def self.create_model(params)
+ resource = RestClient::Resource.new(File.join(@@config[:services]["opentox-algorithm"], "lazar"), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ @uri = resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri], :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer")
+ end
- end
+ end
- class Similarity
- def self.weighted_tanimoto(fp_a,fp_b,p)
- common_features = fp_a & fp_b
- all_features = fp_a + fp_b
- common_p_sum = 0.0
- if common_features.size > 0
- common_features.each{|f| common_p_sum += p[f]}
- all_p_sum = 0.0
- all_features.each{|f| all_p_sum += p[f]}
- common_p_sum/all_p_sum
- else
- 0.0
- end
- end
- end
+ class Similarity
+ def self.weighted_tanimoto(fp_a,fp_b,p)
+ common_features = fp_a & fp_b
+ all_features = fp_a + fp_b
+ common_p_sum = 0.0
+ if common_features.size > 0
+ common_features.each{|f| common_p_sum += p[f]}
+ all_p_sum = 0.0
+ all_features.each{|f| all_p_sum += p[f]}
+ common_p_sum/all_p_sum
+ else
+ 0.0
+ end
+ end
+ end
- end
+ end
end
diff --git a/lib/authorization.rb b/lib/authorization.rb
index 6abbc91..372d52b 100644
--- a/lib/authorization.rb
+++ b/lib/authorization.rb
@@ -20,5 +20,5 @@ helpers do
end
before do
- #protected! unless env['REQUEST_METHOD'] == "GET"
+ protected! unless env['REQUEST_METHOD'] == "GET"
end \ No newline at end of file
diff --git a/lib/dataset.rb b/lib/dataset.rb
index f4372be..1aa3469 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -78,7 +78,8 @@ module OpenTox
end
def self.create(data, content_type = 'application/rdf+xml')
- uri = RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => request.username, :password => request.password).post data, :content_type => content_type
+ resource = RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ uri = resource.post data, :content_type => content_type
dataset = Dataset.new
dataset.read uri.to_s
dataset
@@ -168,12 +169,12 @@ module OpenTox
# Delete a dataset
def delete
- resource = RestClient::Resource.new(@uri, :user => request.username, :password => request.password)
+ resource = RestClient::Resource.new(@uri, :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
resource.delete
end
def save
- RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => request.username, :password => request.password).post(self.rdf, :content_type => "application/rdf+xml").to_s
+ RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0]).post(self.rdf, :content_type => "application/rdf+xml").to_s
end
def to_yaml
diff --git a/lib/environment.rb b/lib/environment.rb
index f7513c5..ee36366 100644
--- a/lib/environment.rb
+++ b/lib/environment.rb
@@ -25,6 +25,10 @@ else
puts "Please edit #{user_file} and restart your application."
exit
end
+if @@users.length < 1 or !@@users
+ puts "Please edit #{user_file} and restart your application."
+ exit
+end
# RDF namespaces
RDF = Redland::Namespace.new 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
diff --git a/lib/model.rb b/lib/model.rb
index b86b3fc..6bdbfd2 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -34,7 +34,8 @@ module OpenTox
# Predict a compound
def predict(compound)
- RestClient::Resource.new(@uri, :user => request.username, :password => request.password).post(:compound_uri => compound.uri)
+ resource = RestClient::Resource.new(@uri, :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.post(:compound_uri => compound.uri)
end
def self.base_uri
@@ -42,7 +43,8 @@ module OpenTox
end
def self.create(data)
- RestClient::Resource.new(@@config[:services]["opentox-model"], :user => request.username, :password => request.password).post(data, :content_type => "application/x-yaml").to_s
+ resource = RestClient::Resource.new(@@config[:services]["opentox-model"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.post(data, :content_type => "application/x-yaml").to_s
end
def endpoint
diff --git a/lib/task.rb b/lib/task.rb
index 5dd5e4c..23795dc 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -10,7 +10,8 @@ module OpenTox
end
def self.create
- uri = RestClient::Resource.new(@@config[:services]["opentox-task"], :user => request.username, :password => request.password).post nil
+ resource = RestClient::Resource.new(@@config[:services]["opentox-task"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ uri = resource.post(nil)
Task.new(uri)
end
@@ -23,16 +24,19 @@ module OpenTox
end
def started
- #LOGGER.info File.join(@uri,'started')
- RestClient::Resource.new(@uri, :user => request.username, :password => request.password).put File.join(@uri,'started'), {}
+ LOGGER.info File.join(@uri,'started')
+ resource = RestClient::Resource.new(File.join(@uri,'started'), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.put({})
end
def cancel
- RestClient::Resource.new(@uri, :user => request.username, :password => request.password).put File.join(@uri,'cancelled'), {}
+ resource = RestClient::Resource.new(@File.join(@uri,'cancelled'), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.put({})
end
def completed(uri)
- RestClient::Resource.new(@uri, :user => request.username, :password => request.password).put File.join(@uri,'completed'), :resource => uri
+ resource = RestClient::Resource.new(File.join(@uri,'completed'), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.put :resource => uri
end
def status
diff --git a/lib/templates/config.ru b/lib/templates/config.ru
index 63dd2ce..ffccbc1 100644
--- a/lib/templates/config.ru
+++ b/lib/templates/config.ru
@@ -8,6 +8,9 @@ FileUtils.mkdir_p 'log' unless File.exists?('log')
log = File.new("log/#{ENV["RACK_ENV"]}.log", "a")
$stdout.reopen(log)
$stderr.reopen(log)
+$stdout.sync = true
+$stderr.sync = true
+
if ENV['RACK_ENV'] == 'production'
use Rack::MailExceptions do |mail|
@@ -21,3 +24,4 @@ end
run Sinatra::Application
+set :raise_errors, true \ No newline at end of file