From 5fa051cc0997a9f734d7c08968855da1a076f0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20G=C3=BCtlein?= Date: Tue, 16 Apr 2013 15:40:07 +0300 Subject: Update opentox.rb group review of opentox.rb accomplished --- lib/opentox.rb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'lib/opentox.rb') diff --git a/lib/opentox.rb b/lib/opentox.rb index db7ba5c..309a47d 100644 --- a/lib/opentox.rb +++ b/lib/opentox.rb @@ -48,6 +48,9 @@ module OpenTox @metadata[predicate] = [values].flatten end + # Object parameters (lazy loading) + # {http://opentox.org/dev/apis/api-1.2/interfaces OpenTox API} + # @return [Hash] Object parameters def parameters force_update=false if (@parameters.empty? or force_update) and URI.accessible? @uri get if @rdf.empty? or force_update @@ -66,12 +69,16 @@ module OpenTox end @parameters end - + + # Parameter value + # @param [String] title + # @return [String] value def parameter_value title @parameters.collect{|p| p[RDF::OT.paramValue] if p[RDF::DC.title] == title}.compact.first end # Get object from webservice + # @param [String,optional] mime_type def get mime_type="text/plain" bad_request_error "Mime type #{mime_type} is not supported. Please use 'text/plain' (default) or 'application/rdf+xml'." unless mime_type == "text/plain" or mime_type == "application/rdf+xml" response = RestClientWrapper.get(@uri,{},{:accept => mime_type, :subjectid => @subjectid}) @@ -84,6 +91,7 @@ module OpenTox end # Post object to webservice (append to object), rarely useful and deprecated + # @deprecated def post wait=true, mime_type="text/plain" bad_request_error "Mime type #{mime_type} is not supported. Please use 'text/plain' (default) or 'application/rdf+xml'." unless mime_type == "text/plain" or mime_type == "application/rdf+xml" case mime_type @@ -117,7 +125,7 @@ module OpenTox def service_uri self.class.service_uri end - + def create_rdf @rdf = RDF::Graph.new @metadata[RDF.type] ||= eval("RDF::OT."+self.class.to_s.split('::').last) @@ -132,7 +140,8 @@ module OpenTox parameter.each { |k,v| @rdf << [p_node, k, v] } end end - + + # as defined in opentox-client.rb RDF_FORMATS.each do |format| # rdf parse methods for all formats e.g. parse_rdfxml @@ -165,7 +174,8 @@ module OpenTox to_turtle.to_html end - { :title => RDF::DC.title, :dexcription => RDF::DC.description, :type => RDF.type }.each do |method,predicate| + # short access for metadata keys title, description and type + { :title => RDF::DC.title, :description => RDF::DC.description, :type => RDF.type }.each do |method,predicate| send :define_method, method do self.[](predicate) end @@ -175,6 +185,7 @@ module OpenTox end # create default OpenTox classes with class methods + # (defined in opentox-client.rb) CLASSES.each do |klass| c = Class.new do include OpenTox @@ -184,6 +195,8 @@ module OpenTox uris.collect{|uri| self.new(uri, subjectid)} end + #@example fetching a model + # OpenTox::Model.find() -> model-object def self.find uri, subjectid=nil URI.accessible?(uri) ? self.new(uri, subjectid) : nil end -- cgit v1.2.3