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