summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-01-19 16:12:21 +0100
committermguetlein <martin.guetlein@gmail.com>2011-01-19 16:12:21 +0100
commit7b06ce45180a5b2c0dd0095cd1a60ec974b46aa5 (patch)
tree39d34044b9879d1bd22df1cc9005fcbe6a0afb00 /lib
parentbba009c7c59655392236e1cdaf873117bb59600f (diff)
aa suport, rdf support
Diffstat (limited to 'lib')
-rwxr-xr-xlib/active_record_setup.rb8
-rw-r--r--lib/format_util.rb28
-rwxr-xr-xlib/validation_db.rb26
3 files changed, 55 insertions, 7 deletions
diff --git a/lib/active_record_setup.rb b/lib/active_record_setup.rb
index 404bfec..b43e692 100755
--- a/lib/active_record_setup.rb
+++ b/lib/active_record_setup.rb
@@ -33,11 +33,11 @@ class ActiveRecord::Base
key = key+"s"
unless self.column_names.include?(key)
err = "no attribute found: '"+k.to_s+"'"
- if $sinatra
- $sinatra.halt 400,err
- else
+# if $sinatra
+# $sinatra.halt 400,err
+# else
raise err
- end
+# end
end
end
end
diff --git a/lib/format_util.rb b/lib/format_util.rb
index c1f5e7c..3d3a3e6 100644
--- a/lib/format_util.rb
+++ b/lib/format_util.rb
@@ -4,6 +4,7 @@ class String
# :prediction_feature -> predictionFeature
# :test_dataset_uri -> testDataset
+ # :validation_uris -> validation
def to_rdf_format
s = gsub(/_uri(s|)$/,"")
s.gsub(/_./) do |m|
@@ -18,6 +19,18 @@ class String
end
end
+ DC_KEYS = [ "title", "creator", "date", "format" ]
+ RDF_KEYS = [ "type" ]
+
+ def to_owl_uri
+ if DC_KEYS.include?(self)
+ return DC.send(self)
+ elsif RDF_KEYS.include?(self)
+ return RDF.send(self)
+ else
+ return OT.send(self)
+ end
+ end
end
class Hash
@@ -36,5 +49,20 @@ class Hash
end
return res
end
+
+ def keys_to_owl_uris
+ res = {}
+ keys.each do |k|
+ v = self[k]
+ if v.is_a?(Hash)
+ v = v.keys_to_owl_uris
+ elsif v.is_a?(Array)
+ v = v.collect{ |vv| vv.is_a?(Hash) ? vv.keys_to_owl_uris : vv }
+ end
+ res[k.to_s.to_owl_uri] = v
+ end
+ return res
+ end
+
end
diff --git a/lib/validation_db.rb b/lib/validation_db.rb
index 83b7e2f..4b852f9 100755
--- a/lib/validation_db.rb
+++ b/lib/validation_db.rb
@@ -80,16 +80,26 @@ module Lib
property :regression_statistics, Object
property :finished, Boolean, :default => false
+ attr_accessor :subjectid
+
+ after :save, :check_policy
+ private
+ def check_policy
+ OpenTox::Authorization.check_policy(validation_uri, subjectid)
+ end
+
+ public
def date
created_at
end
def validation_uri
- $sinatra.url_for("/"+self.id.to_s, :full)
+ raise "no id" if self.id==nil
+ $url_provider.url_for("/"+self.id.to_s, :full)
end
def crossvalidation_uri
- $sinatra.url_for("/crossvalidation/"+self.crossvalidation_id.to_s, :full) if self.crossvalidation_id
+ $url_provider.url_for("/crossvalidation/"+self.crossvalidation_id.to_s, :full) if self.crossvalidation_id
end
def self.classification_property?( property )
@@ -120,12 +130,22 @@ module Lib
property :finished, Boolean, :default => false
property :stratified, Boolean, :default => false
+ attr_accessor :subjectid
+
+ after :save, :check_policy
+ private
+ def check_policy
+ OpenTox::Authorization.check_policy(crossvalidation_uri, subjectid)
+ end
+
+ public
def date
created_at
end
def crossvalidation_uri
- $sinatra.url_for("/crossvalidation/"+self.id.to_s, :full) if self.id
+ raise "no id" if self.id==nil
+ $url_provider.url_for("/crossvalidation/"+self.id.to_s, :full) if self.id
end
# convenience method to list all crossvalidations that are unique