From 6a2c3f2100d030c30b7d8ac8c95dcece7edb040c Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 8 Sep 2009 16:04:23 +0200 Subject: api separated into individual components, adapted for new webservice versions --- lib/feature.rb | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/feature.rb (limited to 'lib/feature.rb') diff --git a/lib/feature.rb b/lib/feature.rb new file mode 100644 index 0000000..0cad7c0 --- /dev/null +++ b/lib/feature.rb @@ -0,0 +1,45 @@ +module OpenTox + + # uri: /feature/:name/:property_name/:property_value/... + class Feature < OpenTox + + attr_accessor :name, :values + + def initialize(params) + if params[:uri] + @uri = params[:uri] + items = URI.split(@uri)[5].split(/\//) + @name = items[1] + @values = {} + i = 3 + while i < items.size + @values[items[i]] = items[i+1] + i += 2 + end + else + @name = URI.encode(URI.decode(params[:name])) + @values = params[:values] + @uri = File.join(@@config[:services]["opentox-dataset"],"feature",path) + end + end + + def values_path + path = '' + @values.each do |k,v| + path += '/' + URI.encode(k.to_s) + '/' + URI.encode(v.to_s) + end + path + end + + def path + File.join(@name,values_path) + end + + def value(property) + items = @uri.split(/\//) + i = items.index(property) + items[i+1] + end + + end +end -- cgit v1.2.3