summaryrefslogtreecommitdiff
path: root/lib/dataset.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2010-12-16 16:55:23 +0100
committerChristoph Helma <helma@in-silico.ch>2010-12-16 16:55:23 +0100
commitc923250bccd4023447feb46935f3b59ce5cfb843 (patch)
tree0a692283d175f0a3f1d4024bc102ce9133ccb2b0 /lib/dataset.rb
parent2d692f13d3bd0b894f1ec67c4b860a09de3e746c (diff)
parentb22110ae0d8e902d700e0a3dc629ebfde1edfe10 (diff)
Merge branch 'development' of https://github.com/rautenberg/opentox-ruby into development
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r--lib/dataset.rb36
1 files changed, 16 insertions, 20 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index bbd8b8b..aba7754 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -6,7 +6,6 @@ module OpenTox
include OpenTox
attr_reader :features, :compounds, :data_entries, :metadata
- attr_accessor :token_id
# Create dataset with optional URI. Does not load data into the dataset - you will need to execute one of the load_* methods to pull data from a service or to insert it from other representations.
# @example Create an empty dataset
@@ -15,9 +14,8 @@ module OpenTox
# dataset = OpenTox::Dataset.new("http:://webservices.in-silico/ch/dataset/1")
# @param [optional, String] uri Dataset URI
# @return [OpenTox::Dataset] Dataset object
- def initialize(uri=nil,token_id=nil)
+ def initialize(uri=nil)
super uri
- @token_id = token_id
@features = {}
@compounds = []
@data_entries = {}
@@ -28,10 +26,9 @@ module OpenTox
# dataset = OpenTox::Dataset.create
# @param [optional, String] uri Dataset URI
# @return [OpenTox::Dataset] Dataset object
- def self.create(uri=CONFIG[:services]["opentox-dataset"], token_id=nil)
+ def self.create(uri=CONFIG[:services]["opentox-dataset"], subjectid=nil)
dataset = Dataset.new
- dataset.token_id = token_id if token_id
- dataset.save
+ dataset.save(subjectid)
dataset
end
@@ -41,12 +38,12 @@ module OpenTox
# - you will have to set remaining metadata manually
# @param [String] file CSV file path
# @return [OpenTox::Dataset] Dataset object with CSV data
- def self.create_from_csv_file(file)
- dataset = Dataset.create
+ def self.create_from_csv_file(file, subjectid=nil)
+ dataset = Dataset.create(CONFIG[:services]["opentox-dataset"], subjectid)
parser = Parser::Spreadsheets.new
parser.dataset = dataset
parser.load_csv(File.open(file).read)
- dataset.save
+ dataset.save(subjectid)
dataset
end
@@ -92,8 +89,8 @@ module OpenTox
# - you will have to set remaining metadata manually
# @param [String] csv CSV representation of the dataset
# @return [OpenTox::Dataset] Dataset object with CSV data
- def load_csv(csv)
- save unless @uri # get a uri for creating features
+ def load_csv(csv, subjectid=nil)
+ save(subjectid) unless @uri # get a uri for creating features
parser = Parser::Spreadsheets.new
parser.dataset = self
parser.load_csv(csv)
@@ -105,8 +102,8 @@ module OpenTox
# - you will have to set remaining metadata manually
# @param [Excel] book Excel workbook object (created with roo gem)
# @return [OpenTox::Dataset] Dataset object with Excel data
- def load_spreadsheet(book)
- save unless @uri # get a uri for creating features
+ def load_spreadsheet(book, subjectid=nil)
+ save(subjectid) unless @uri # get a uri for creating features
parser = Parser::Spreadsheets.new
parser.dataset = self
parser.load_spreadsheet(book)
@@ -250,29 +247,29 @@ module OpenTox
# - creates a new dataset if uri is not set
# - overwrites dataset if uri exists
# @return [String] Dataset URI
- def save
+ def save(subjectid=nil)
# TODO: rewrite feature URI's ??
@compounds.uniq!
if @uri
if (CONFIG[:yaml_hosts].include?(URI.parse(@uri).host))
- RestClientWrapper.post(@uri,{:content_type => "application/x-yaml", :token_id => @token_id},self.to_yaml)
+ RestClientWrapper.post(@uri,{:content_type => "application/x-yaml", :subjectid => subjectid},self.to_yaml)
else
File.open("ot-post-file.rdf","w+") { |f| f.write(self.to_rdfxml); @path = f.path }
- task_uri = RestClient.post(@uri, {:file => File.new(@path)},{:accept => "text/uri-list"}).to_s.chomp
+ task_uri = RestClient.post(@uri, {:file => File.new(@path)},{:accept => "text/uri-list" , :subjectid => subjectid}).to_s.chomp
#task_uri = `curl -X POST -H "Accept:text/uri-list" -F "file=@#{@path};type=application/rdf+xml" http://apps.ideaconsult.net:8080/ambit2/dataset`
Task.find(task_uri).wait_for_completion
self.uri = RestClientWrapper.get(task_uri,:accept => 'text/uri-list')
end
else
# create dataset if uri is empty
- self.uri = RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:token_id => @token_id}).to_s.chomp
+ self.uri = RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:subjectid => subjectid}).to_s.chomp
end
@uri
end
# Delete dataset at the dataset service
- def delete
- RestClientWrapper.delete @uri
+ def delete(subjectid=nil)
+ RestClientWrapper.delete(@uri, :subjectid => subjectid)
end
private
@@ -282,7 +279,6 @@ module OpenTox
@data_entries = dataset.data_entries
@compounds = dataset.compounds
@features = dataset.features
- @token_id = dataset.token_id
if @uri
self.uri = @uri
else