class Glowfish::API
Public Class Methods
new(sid = nil, token = nil)
click to toggle source
# File lib/glowfish.rb, line 12 def initialize(sid = nil, token = nil) @sid = sid @token = token end
Public Instance Methods
cluster(data_set = {}, params = {})
click to toggle source
# File lib/glowfish.rb, line 33 def cluster(data_set = {}, params = {}) data = Hash.new("data") data = {"data_set" => data_set} data.merge!(params) return _request("cluster", data) end
feature_select(data_set = {}, response = nil, params = {})
click to toggle source
# File lib/glowfish.rb, line 41 def feature_select(data_set = {}, response = nil, params = {}) data = Hash.new("data") data = {"data_set" => data_set, "response" => response} data.merge!(params) return _request("feature_select", data) end
filter_predict(userids = [], productids = [], ratings = [], params = {})
click to toggle source
# File lib/glowfish.rb, line 57 def filter_predict(userids = [], productids = [], ratings = [], params = {}) data = Hash.new("data") data = {"userid" => userids, "productid" => productids, "ratings" => ratings} data.merge!(params) return _request("filter_predict", data) end
filter_train(userids = [], productids = [], ratings = [], params = {})
click to toggle source
# File lib/glowfish.rb, line 49 def filter_train(userids = [], productids = [], ratings = [], params = {}) data = Hash.new("data") data = {"userid" => userids, "productid" => productids, "ratings" => ratings} data.merge!(params) return _request("filter_train", data) end
predict(data_set = {}, response = nil, params = {})
click to toggle source
# File lib/glowfish.rb, line 25 def predict(data_set = {}, response = nil, params = {}) data = Hash.new("data") data = {"data_set" => data_set, "response" => response} data.merge!(params) return _request("predict", data) end
train(data_set = {}, response = {}, params = {})
click to toggle source
# File lib/glowfish.rb, line 17 def train(data_set = {}, response = {}, params = {}) data = Hash.new("data") data = {"data_set" => data_set, "response" => response} data.merge!(params) return _request("train", data) end
Private Instance Methods
_request(endpoint, data)
click to toggle source
# File lib/glowfish.rb, line 67 def _request (endpoint, data) url = URI.parse("#{@@url}#{@@v}/#{endpoint}/") req = Net::HTTP::Post.new(url.path, initheader = {'Content-Type' =>'application/json'}) req.basic_auth @sid, @token #req.set_form_data(data.to_json) req.body = data.to_json sock = Net::HTTP.new(url.host, url.port) sock.use_ssl = true res = sock.start {|http| http.request(req) } begin result = JSON.parse(res.body) rescue JSON::ParserError => e return Response.new(400, "Unknown error occurred", nil, e, nil) end metrics = nil if result.has_key? 'result' and result['result'].has_key? 'metrics' metrics = result['result']['metrics'] end if result.has_key? 'status' and result['status'].has_key? 'code' if result['status']['code'].to_i < 300 return Response.new(result['status']['code'].to_i, "Success", result['result'], nil, metrics) else if result['status'].has_key? 'codeMessage' and result.has_key? 'errors' return Response.new(result['status']['code'].to_i, result['status']['codeMessage'], nil, result['errors'], metrics) elsif result['status'].has_key? 'codeMessage' return Response.new(400, "Unknown connection error", nil, {"global" => result['status']['codeMessage']}, metrics) else return Response.new(400, "Unknown connection error", nil, nil, metrics) end end end end