lib/semantics3.rb in semantics3-0.02 vs lib/semantics3.rb in semantics3-0.03
- old
+ new
@@ -39,13 +39,16 @@
end
end
class Products < Base
- @@data_query = {}
- @@query_result = {}
+ def initialize api_key, api_secret
+ super
+ clear()
+ end
+
MAX_LIMIT = 10
#Offers
def offers_field(*fields)
@@ -75,21 +78,21 @@
def get_products
run_query("products")
end
def all_products
- if not @@query_result.has_key?(results)
+ if not @query_result.has_key?(results)
raise Error.new('Undefined Query','Query result is undefined. You need to run a query first.')
end
- @@query_result['results']
+ @query_result['results']
end
def iterate_products
limit = MAX_LIMIT
- prodRef = @@data_query['products']
+ prodRef = @data_query['products']
- if (not ( @@query_result.has_key?('total_results_count') ) ) or ( @@query_result['offset'] >= @@query_result['total_results_count'] )
+ if (not ( @query_result.has_key?('total_results_count') ) ) or ( @query_result['offset'] >= @query_result['total_results_count'] )
return
end
if prodRef.has_key?('limit')
limit = prodRef['limit']
@@ -111,15 +114,15 @@
#-- If not defined endpoint, throw error
if not ( endpoint.kind_of? String and endpoint != '')
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products','endpoint')
end
- if not @@data_query.has_key?(endpoint)
- @@data_query[endpoint] = {}
+ if not @data_query.has_key?(endpoint)
+ @data_query[endpoint] = {}
end
- prodRef = @@data_query[endpoint]
+ prodRef = @data_query[endpoint]
for i in 1..(fields.length - 1)
if not prodRef.has_key?(fields[i-1])
prodRef[fields[i-1]] = {}
end
@@ -129,11 +132,11 @@
prodRef[ fields[i-1] ] = fields[i]
end
end
#-- To be removed
- #puts @@data_query.inspect
+ #puts @data_query.inspect
end
def remove(endpoint,*fields)
@@ -144,11 +147,11 @@
valid = 0
prodRef = {}
arrayCt = 0
- if @@data_query.has_key?(endpoint)
+ if @data_query.has_key?(endpoint)
prodRef = data_query[endpoint]
arrayCt = fields.length-1
valid = 1
for i in 0..(arrayCt-1)
@@ -167,39 +170,39 @@
#-- Throw error
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products', 'endpoint')
end
#-- To be removed
- #puts @@data_query.inspect
+ #puts @data_query.inspect
end
def get_query(endpoint)
- if not @@data_query.has_key?(endpoint)
+ if not @data_query.has_key?(endpoint)
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products', 'endpoint')
end
- @@data_query[endpoint]
+ @data_query[endpoint]
end
def get_query_json(endpoint)
- if not @@data_query.has_key?(endpoint)
+ if not @data_query.has_key?(endpoint)
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products', 'endpoint')
end
- @@data_query[endpoint].to_json
+ @data_query[endpoint].to_json
end
def get_results
- @@query_result
+ @query_result
end
def get_results_json
- @@query_result.to_json
+ @query_result.to_json
end
def clear
- @@data_query={}
- @@query_result={}
+ @data_query={}
+ @query_result={}
end
def run_query(endpoint,*params)
#-- If not defined endpoint, throw error
@@ -208,30 +211,30 @@
end
data = params[0]
if data == nil
- @@query_result = _make_request(endpoint,@@data_query[endpoint].to_json)
+ @query_result = _make_request(endpoint,@data_query[endpoint].to_json)
else
if not data.is_a?(Hash) and not data.is_a?(String)
#-- Throw error - neither string nor hash
raise Error.new('Invalid Input','You submitted an invalid input. Input has to be either JSON string or hash')
else
#-- Data is Hash ref. Great just send it.
if data.is_a?(Hash)
- @@query_result = _make_request(endpoint,data.to_json)
+ @query_result = _make_request(endpoint,data.to_json)
#-- Data is string
elsif data.is_a?(String)
#-- Check if it's valid JSON
if JSON.is_json?(data)
- @@query_result = _make_request(endpoint,data)
+ @query_result = _make_request(endpoint,data)
else
raise Error.new('Invalid Input','You submitted an invalid JSON query string')
end
end
end
end
- @@query_result
+ @query_result
end
end
class Error < StandardError