semantics3 0.02 → 0.03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/Changes +6 -0
- data/lib/semantics3.rb +27 -24
- data/semantics3.gemspec +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA512:
|
3
|
-
data.tar.gz: 7a35268c671e071cb8442871430c4573b62bf4b7a2fcf16a17640e929b7d75b8df3c0fe220a4cb0b6998f00ab96341a940589c1073eda17364a6da6807c34f40
|
4
|
-
metadata.gz: 6980c9b8e8606a08867f22e720ef7f0c6ca8c4da9ccd279236bef74df4c3bd54a879db1dbdc525cd045e3f6f41a7e383d14b8f930859ce6555f16476f13f32f4
|
5
2
|
SHA1:
|
6
|
-
data.tar.gz:
|
7
|
-
metadata.gz:
|
3
|
+
data.tar.gz: 94cd2416099186ac9473a42d472f9a6e87688adc
|
4
|
+
metadata.gz: 2d2546ddf78dd461a0bb92224a0786df0ed7a3d4
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 7ab76290fea5adb2da17155f8369dc0931a1cb95a39d8347d8f2396599236fa9f990c8f7bbfe567a95da7a7b329a91fabc7f4b40bb581b1d521ec4c2d4429840
|
7
|
+
metadata.gz: 57b29c4925b1d2bb272c4fc6c84f4b06d0cfe0115fd9d94a6e41dd9eba05d85a2fd264b3053288ff1e4c45ca33b31b3f5c67b89915da2145ce8bb111510ff266
|
data/Changes
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
Revision history for semantics3-ruby
|
2
2
|
|
3
|
+
0.03 07-02-2014
|
4
|
+
Made library thread safe [Thanks to Mark Evans/ShopGenius App (mark@shopgeniusapp.com)]
|
5
|
+
|
6
|
+
0.02 13-01-2014
|
7
|
+
Bumped json min. requirements.
|
8
|
+
|
3
9
|
0.01 31-01-2013
|
4
10
|
First version, released on an unsuspecting world.
|
5
11
|
|
data/lib/semantics3.rb
CHANGED
@@ -41,8 +41,11 @@ module Semantics3
|
|
41
41
|
end
|
42
42
|
|
43
43
|
class Products < Base
|
44
|
-
|
45
|
-
|
44
|
+
|
45
|
+
def initialize api_key, api_secret
|
46
|
+
super
|
47
|
+
clear()
|
48
|
+
end
|
46
49
|
|
47
50
|
MAX_LIMIT = 10
|
48
51
|
|
@@ -77,17 +80,17 @@ module Semantics3
|
|
77
80
|
end
|
78
81
|
|
79
82
|
def all_products
|
80
|
-
if not
|
83
|
+
if not @query_result.has_key?(results)
|
81
84
|
raise Error.new('Undefined Query','Query result is undefined. You need to run a query first.')
|
82
85
|
end
|
83
|
-
|
86
|
+
@query_result['results']
|
84
87
|
end
|
85
88
|
|
86
89
|
def iterate_products
|
87
90
|
limit = MAX_LIMIT
|
88
|
-
prodRef =
|
91
|
+
prodRef = @data_query['products']
|
89
92
|
|
90
|
-
if (not (
|
93
|
+
if (not ( @query_result.has_key?('total_results_count') ) ) or ( @query_result['offset'] >= @query_result['total_results_count'] )
|
91
94
|
return
|
92
95
|
end
|
93
96
|
|
@@ -113,11 +116,11 @@ module Semantics3
|
|
113
116
|
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products','endpoint')
|
114
117
|
end
|
115
118
|
|
116
|
-
if not
|
117
|
-
|
119
|
+
if not @data_query.has_key?(endpoint)
|
120
|
+
@data_query[endpoint] = {}
|
118
121
|
end
|
119
122
|
|
120
|
-
prodRef =
|
123
|
+
prodRef = @data_query[endpoint]
|
121
124
|
|
122
125
|
for i in 1..(fields.length - 1)
|
123
126
|
if not prodRef.has_key?(fields[i-1])
|
@@ -131,7 +134,7 @@ module Semantics3
|
|
131
134
|
end
|
132
135
|
|
133
136
|
#-- To be removed
|
134
|
-
#puts
|
137
|
+
#puts @data_query.inspect
|
135
138
|
|
136
139
|
end
|
137
140
|
|
@@ -146,7 +149,7 @@ module Semantics3
|
|
146
149
|
prodRef = {}
|
147
150
|
arrayCt = 0
|
148
151
|
|
149
|
-
if
|
152
|
+
if @data_query.has_key?(endpoint)
|
150
153
|
prodRef = data_query[endpoint]
|
151
154
|
arrayCt = fields.length-1
|
152
155
|
valid = 1
|
@@ -169,35 +172,35 @@ module Semantics3
|
|
169
172
|
end
|
170
173
|
|
171
174
|
#-- To be removed
|
172
|
-
#puts
|
175
|
+
#puts @data_query.inspect
|
173
176
|
|
174
177
|
end
|
175
178
|
|
176
179
|
def get_query(endpoint)
|
177
|
-
if not
|
180
|
+
if not @data_query.has_key?(endpoint)
|
178
181
|
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products', 'endpoint')
|
179
182
|
end
|
180
|
-
|
183
|
+
@data_query[endpoint]
|
181
184
|
end
|
182
185
|
|
183
186
|
def get_query_json(endpoint)
|
184
|
-
if not
|
187
|
+
if not @data_query.has_key?(endpoint)
|
185
188
|
raise Error.new('Undefined Endpoint','Query Endpoint was not defined. You need to provide one. Eg: products', 'endpoint')
|
186
189
|
end
|
187
|
-
|
190
|
+
@data_query[endpoint].to_json
|
188
191
|
end
|
189
192
|
|
190
193
|
def get_results
|
191
|
-
|
194
|
+
@query_result
|
192
195
|
end
|
193
196
|
|
194
197
|
def get_results_json
|
195
|
-
|
198
|
+
@query_result.to_json
|
196
199
|
end
|
197
200
|
|
198
201
|
def clear
|
199
|
-
|
200
|
-
|
202
|
+
@data_query={}
|
203
|
+
@query_result={}
|
201
204
|
end
|
202
205
|
|
203
206
|
def run_query(endpoint,*params)
|
@@ -210,7 +213,7 @@ module Semantics3
|
|
210
213
|
data = params[0]
|
211
214
|
|
212
215
|
if data == nil
|
213
|
-
|
216
|
+
@query_result = _make_request(endpoint,@data_query[endpoint].to_json)
|
214
217
|
else
|
215
218
|
if not data.is_a?(Hash) and not data.is_a?(String)
|
216
219
|
#-- Throw error - neither string nor hash
|
@@ -218,19 +221,19 @@ module Semantics3
|
|
218
221
|
else
|
219
222
|
#-- Data is Hash ref. Great just send it.
|
220
223
|
if data.is_a?(Hash)
|
221
|
-
|
224
|
+
@query_result = _make_request(endpoint,data.to_json)
|
222
225
|
#-- Data is string
|
223
226
|
elsif data.is_a?(String)
|
224
227
|
#-- Check if it's valid JSON
|
225
228
|
if JSON.is_json?(data)
|
226
|
-
|
229
|
+
@query_result = _make_request(endpoint,data)
|
227
230
|
else
|
228
231
|
raise Error.new('Invalid Input','You submitted an invalid JSON query string')
|
229
232
|
end
|
230
233
|
end
|
231
234
|
end
|
232
235
|
end
|
233
|
-
|
236
|
+
@query_result
|
234
237
|
end
|
235
238
|
|
236
239
|
end
|
data/semantics3.gemspec
CHANGED
@@ -2,9 +2,9 @@ $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |s|
|
4
4
|
s.name = 'semantics3'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.03'
|
6
6
|
s.summary = 'Ruby bindings for the Semantics3 API'
|
7
|
-
s.description = 'Get access to a constantly updated database of product and price
|
7
|
+
s.description = 'Get access to a constantly updated database of product and price data. See https://semantics3.com/ for more information.'
|
8
8
|
s.authors = ['Sivamani Varun']
|
9
9
|
s.email = ['varun@semantics3.com']
|
10
10
|
s.homepage = 'https://semantics3.com'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantics3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.03"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sivamani Varun
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-02-08 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -37,7 +37,7 @@ dependencies:
|
|
37
37
|
version: 0.4.6
|
38
38
|
type: :runtime
|
39
39
|
version_requirements: *id002
|
40
|
-
description: Get access to a constantly updated database of product and price
|
40
|
+
description: Get access to a constantly updated database of product and price data. See https://semantics3.com/ for more information.
|
41
41
|
email:
|
42
42
|
- varun@semantics3.com
|
43
43
|
executables: []
|
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements: []
|
78
78
|
|
79
79
|
rubyforge_project:
|
80
|
-
rubygems_version: 2.2.
|
80
|
+
rubygems_version: 2.2.2
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: Ruby bindings for the Semantics3 API
|