endeca_on_demand 0.9.8 → 0.9.9
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.
- data/lib/endeca_on_demand/Business_Rules_Result/property.rb +14 -0
- data/lib/endeca_on_demand/Dimension/dimension_value.rb +14 -0
- data/lib/endeca_on_demand/bread_crumb.rb +12 -0
- data/lib/endeca_on_demand/business_rules_result.rb +32 -0
- data/lib/endeca_on_demand/dimension.rb +11 -3
- data/lib/endeca_on_demand/record.rb +3 -3
- data/lib/endeca_on_demand/search.rb +3 -3
- data/lib/endeca_on_demand/{dimension_value_id.rb → selected_dimension_value_id.rb} +1 -1
- data/lib/endeca_on_demand/version.rb +1 -1
- data/lib/endeca_on_demand.rb +52 -176
- metadata +46 -51
- data/lib/endeca_on_demand/business_rule.rb +0 -17
- data/lib/endeca_on_demand/business_rule_property.rb +0 -12
- data/lib/endeca_on_demand/crumb.rb +0 -12
- data/lib/endeca_on_demand/dimension_value.rb +0 -12
@@ -0,0 +1,14 @@
|
|
1
|
+
class EndecaOnDemand
|
2
|
+
class BusinessRulesResult
|
3
|
+
class Property < Proxy
|
4
|
+
|
5
|
+
def initialize(property)
|
6
|
+
property.children.each do |node|
|
7
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
8
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class EndecaOnDemand
|
2
|
+
class Dimension
|
3
|
+
class DimensionValue < Proxy
|
4
|
+
|
5
|
+
def initialize(dimension_value)
|
6
|
+
dimension_value.children.each do |node|
|
7
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
8
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class EndecaOnDemand
|
2
|
+
class BreadCrumb < Proxy
|
3
|
+
|
4
|
+
def initialize(bread_crumb)
|
5
|
+
bread_crumb.children.each do |node|
|
6
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
7
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class EndecaOnDemand
|
2
|
+
class BusinessRulesResult < Proxy
|
3
|
+
|
4
|
+
attr_reader :properties
|
5
|
+
|
6
|
+
require 'endeca_on_demand/business_rules_result/property'
|
7
|
+
|
8
|
+
def initialize(business_rules_result)
|
9
|
+
@properties = []
|
10
|
+
@records = []
|
11
|
+
|
12
|
+
business_rules_result.children.each do |node|
|
13
|
+
|
14
|
+
if node.name == "properties"
|
15
|
+
node.xpath("./properties").each do |node|
|
16
|
+
@properties.push(EndecaOnDemand::BusinessRulesResult::Property.new(node))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
if node.name == "RecordSet"
|
21
|
+
node.xpath("./RecordSet//Record").each do |node|
|
22
|
+
@records.push(EndecaOnDemand::Record.new(node))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
27
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -1,14 +1,22 @@
|
|
1
1
|
class EndecaOnDemand
|
2
2
|
class Dimension < Proxy
|
3
|
+
|
4
|
+
require 'endeca_on_demand/dimension/dimension_value'
|
3
5
|
|
4
6
|
attr_reader :dimension_values
|
5
7
|
|
6
8
|
def initialize(dimension)
|
7
9
|
@dimension_values = []
|
8
10
|
|
9
|
-
dimension.each do |
|
10
|
-
|
11
|
-
|
11
|
+
dimension.children.each do |node|
|
12
|
+
if node.name == "DimensionValues"
|
13
|
+
node.xpath("./DimensionValue").each do |node|
|
14
|
+
@dimension_values.push(EndecaOnDemand::Dimension::DimensionValue.new(node))
|
15
|
+
end
|
16
|
+
else
|
17
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
18
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
19
|
+
end
|
12
20
|
end
|
13
21
|
end
|
14
22
|
|
@@ -2,9 +2,9 @@ class EndecaOnDemand
|
|
2
2
|
class Record < Proxy
|
3
3
|
|
4
4
|
def initialize(record)
|
5
|
-
record.each do |
|
6
|
-
self.instance_variable_set(:"@#{
|
7
|
-
self.class_eval("attr_reader :#{
|
5
|
+
record.children.each do |node|
|
6
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
7
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -2,9 +2,9 @@ class EndecaOnDemand
|
|
2
2
|
class Search < Proxy
|
3
3
|
|
4
4
|
def initialize(report)
|
5
|
-
report.each do |
|
6
|
-
self.instance_variable_set(:"@#{
|
7
|
-
self.class_eval("attr_reader :#{
|
5
|
+
report.children.each do |node|
|
6
|
+
self.instance_variable_set(:"@#{node.name.downcase}", node.content)
|
7
|
+
self.class_eval("attr_reader :#{node.name.downcase}")
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
data/lib/endeca_on_demand.rb
CHANGED
@@ -3,7 +3,7 @@ require 'endeca_on_demand/proxy'
|
|
3
3
|
Dir["#{File.dirname(__FILE__)}/endeca_on_demand/*"].each { |file| require(file)}
|
4
4
|
|
5
5
|
require 'builder'
|
6
|
-
require '
|
6
|
+
require 'nokogiri'
|
7
7
|
require 'net/http'
|
8
8
|
require 'uri'
|
9
9
|
|
@@ -68,7 +68,7 @@ class EndecaOnDemand
|
|
68
68
|
|
69
69
|
begin
|
70
70
|
@request, @raw_response = @http.post(@uri.path, @query.target!, 'Content-type' => 'application/xml')
|
71
|
-
handle_response(
|
71
|
+
handle_response(Nokogiri::XML(@raw_response))
|
72
72
|
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, Errno::ECONNREFUSED, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => error
|
73
73
|
@error = error
|
74
74
|
end
|
@@ -77,12 +77,8 @@ class EndecaOnDemand
|
|
77
77
|
## HANDLE RESPONSE
|
78
78
|
|
79
79
|
def handle_response(response)
|
80
|
-
@response = response
|
80
|
+
@response = response
|
81
81
|
|
82
|
-
build_data
|
83
|
-
end
|
84
|
-
|
85
|
-
def build_data
|
86
82
|
build_records
|
87
83
|
build_breadcrumbs
|
88
84
|
build_filtercrumbs
|
@@ -114,8 +110,8 @@ class EndecaOnDemand
|
|
114
110
|
# NOTE: If the optional CategoryId (CID) is passed, all DVIDs must belong to the category.
|
115
111
|
def add_dimension_value_id_navigation(options)
|
116
112
|
@body.SelectedDimensionValueIds do
|
117
|
-
options.each do |
|
118
|
-
@body.tag!('DimensionValueId',
|
113
|
+
options.each do |option|
|
114
|
+
@body.tag!('DimensionValueId', option)
|
119
115
|
end
|
120
116
|
end
|
121
117
|
end
|
@@ -168,8 +164,8 @@ class EndecaOnDemand
|
|
168
164
|
# Adds UserProfile(s) to the request.
|
169
165
|
def add_profiles(options)
|
170
166
|
@body.UserProfiles do
|
171
|
-
options.each do |
|
172
|
-
@body.tag!('UserProfile',
|
167
|
+
options.each do |option|
|
168
|
+
@body.tag!('UserProfile', option)
|
173
169
|
end
|
174
170
|
end
|
175
171
|
end
|
@@ -198,20 +194,13 @@ class EndecaOnDemand
|
|
198
194
|
def build_records
|
199
195
|
@records = []
|
200
196
|
|
201
|
-
|
197
|
+
@record_offset = @response.xpath("//RecordsSet//offset")
|
198
|
+
@records_per_page = @response.xpath("//RecordsSet//recordsperpage")
|
199
|
+
@total_record_count = @response.xpath("//RecordsSet//totalrecordcount")
|
202
200
|
|
203
|
-
@
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
unless record_set.nil?
|
208
|
-
record = @response['RecordsSet']['Record']
|
209
|
-
if record.instance_of?(Hash)
|
210
|
-
@records.push(EndecaOnDemand::Record.new(record_set))
|
211
|
-
elsif record.instance_of?(Array)
|
212
|
-
record.each do |record|
|
213
|
-
@records.push(EndecaOnDemand::Record.new(record))
|
214
|
-
end
|
201
|
+
unless @response.xpath("//RecordsSet").nil?
|
202
|
+
@response.xpath("//RecordsSet//Record").each do |record|
|
203
|
+
@records.push(EndecaOnDemand::Record.new(record))
|
215
204
|
end
|
216
205
|
else
|
217
206
|
puts 'There are no records with this response!'
|
@@ -220,159 +209,76 @@ class EndecaOnDemand
|
|
220
209
|
|
221
210
|
# Builds an array of BREADCRUMBS
|
222
211
|
def build_breadcrumbs
|
212
|
+
@filtercrumbs = []
|
223
213
|
@breadcrumbs = []
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
@breadcrumbs.push(EndecaOnDemand::Crumb.new(bread))
|
233
|
-
end
|
234
|
-
elsif bread.instance_of?(Array)
|
235
|
-
bread.each do |crumb|
|
236
|
-
@breadcrumbs.push(EndecaOnDemand::Crumb.new(crumb))
|
237
|
-
end
|
238
|
-
end
|
239
|
-
elsif breads.instance_of?(Array)
|
240
|
-
breads.each do |breadz|
|
241
|
-
bread = breadz['Bread']
|
242
|
-
if breadz.instance_of?(Hash)
|
243
|
-
if bread.instance_of?(Hash)
|
244
|
-
bread.each do |key, value|
|
245
|
-
@breadcrumbs.push(EndecaOnDemand::Crumb.new(bread))
|
246
|
-
end
|
247
|
-
elsif bread.instance_of?(Array)
|
248
|
-
bread.each do |crumb|
|
249
|
-
@breadcrumbs.push(EndecaOnDemand::Crumb.new(crumb))
|
250
|
-
end
|
251
|
-
end
|
252
|
-
elsif breadz.instance_of?(Array)
|
253
|
-
bread.each do |crumb|
|
254
|
-
@breadcrumbs.push(EndecaOnDemand::Crumb.new(crumb))
|
255
|
-
end
|
256
|
-
end
|
214
|
+
|
215
|
+
unless @response.xpath("//Breadcrumbs").nil?
|
216
|
+
@response.xpath("//Breadcrumbs//Breads").each do |node|
|
217
|
+
filtercrumbs = []
|
218
|
+
node.xpath("./Bread").each do |node|
|
219
|
+
breadcrumb = EndecaOnDemand::BreadCrumb.new(node)
|
220
|
+
filtercrumbs.push(breadcrumb)
|
221
|
+
@breadcrumbs.push(breadcrumb)
|
257
222
|
end
|
223
|
+
@filtercrumbs.push(filtercrumbs)
|
258
224
|
end
|
259
225
|
else
|
260
226
|
puts 'There are no breadcrumbs with this response!'
|
261
227
|
end
|
262
228
|
end
|
263
229
|
|
264
|
-
# Builds an array of FILTERCRUMBS (BREADCRUMBS used as left nav filterables)
|
265
|
-
def build_filtercrumbs
|
266
|
-
@filtercrumbs = []
|
267
|
-
|
268
|
-
breadcrumbs = @response['Breadcrumbs']
|
269
|
-
unless breadcrumbs.nil?
|
270
|
-
breads = @response['Breadcrumbs']['Breads']
|
271
|
-
if breads.instance_of?(Hash)
|
272
|
-
breads.each do |key, value|
|
273
|
-
@filtercrumbs.push(value)
|
274
|
-
end
|
275
|
-
elsif breads.instance_of?(Array)
|
276
|
-
breads.each do |bread|
|
277
|
-
if bread.instance_of?(Hash)
|
278
|
-
@filtercrumbs.push(bread)
|
279
|
-
elsif bread.instance_of?(Array)
|
280
|
-
bread['Bread'].each do |crumb|
|
281
|
-
@filtercrumbs.push(crumb)
|
282
|
-
end
|
283
|
-
end
|
284
|
-
end
|
285
|
-
end
|
286
|
-
else
|
287
|
-
puts 'There are no filtercrumbs (breadcrumbs) with this response!'
|
288
|
-
end
|
289
|
-
end
|
290
|
-
|
291
230
|
# Builds an array of DIMENSIONS
|
292
231
|
def build_dimensions
|
293
232
|
@dimensions = []
|
294
233
|
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
if dimension.instance_of?(Hash)
|
299
|
-
@dimension = EndecaOnDemand::Dimension.new(dimensions)
|
300
|
-
add_dimension_values(dimension)
|
301
|
-
elsif dimension.instance_of?(Array)
|
302
|
-
dimension.each do |dimension|
|
303
|
-
@dimension = EndecaOnDemand::Dimension.new(dimension)
|
304
|
-
add_dimension_values(dimension)
|
305
|
-
end
|
234
|
+
unless @response.xpath("//Dimensions").nil?
|
235
|
+
@response.xpath("//Dimensions//Dimension").each do |node|
|
236
|
+
@dimensions.push(EndecaOnDemand::Dimension.new(node))
|
306
237
|
end
|
307
238
|
else
|
308
239
|
puts 'There are no dimensions with this response!'
|
309
240
|
end
|
310
241
|
end
|
311
242
|
|
312
|
-
# Adds an array of DIMENSION VALUES to each DIMENSION
|
313
|
-
def add_dimension_values(dimension)
|
314
|
-
unless dimension['DimensionValues'].nil?
|
315
|
-
if dimension['DimensionValues']['DimensionValue'].instance_of?(Hash)
|
316
|
-
@dimension.dimension_values.push(EndecaOnDemand::DimensionValue.new(dimension['DimensionValues']['DimensionValue']))
|
317
|
-
elsif dimension['DimensionValues']['DimensionValue'].instance_of?(Array)
|
318
|
-
dimension['DimensionValues']['DimensionValue'].each do |dimension_value|
|
319
|
-
@dimension.dimension_values.push(EndecaOnDemand::DimensionValue.new(dimension_value))
|
320
|
-
end
|
321
|
-
end
|
322
|
-
@dimensions.push(@dimension)
|
323
|
-
else
|
324
|
-
puts "There are no dimension values on this dimension!"
|
325
|
-
end
|
326
|
-
end
|
327
|
-
|
328
243
|
# Builds an array of BUSINESS RULES
|
329
244
|
def build_business_rules
|
330
|
-
@
|
245
|
+
@business_rules_results = []
|
331
246
|
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
if business_rules.instance_of?(Hash)
|
336
|
-
business_rule = EndecaOnDemand::BusinessRule.new(business_rules)
|
337
|
-
business_rules.each do |key, value|
|
338
|
-
add_business_rule_properties(value) if key == 'properties'
|
339
|
-
add_business_rule_records(value) if key == 'RecordSet'
|
340
|
-
end
|
341
|
-
elsif business_rules.instance_of?(Array)
|
342
|
-
@response['BusinessRulesResult']['BusinessRules']['BusinessRule'].each do |rule|
|
343
|
-
business_rule = EndecaOnDemand::BusinessRule.new(rule)
|
344
|
-
rule.each do |key, value|
|
345
|
-
add_business_rule_properties(key) if key == 'properties'
|
346
|
-
add_business_rule_records(key) if key == 'RecordSet'
|
347
|
-
end
|
348
|
-
end
|
247
|
+
unless @response.xpath("//BusinessRulesResult").nil?
|
248
|
+
@response.xpath("//BusinessRulesResult//BusinessRules//BusinessRule").each do |node|
|
249
|
+
@business_rules_results.push(EndecaOnDemand::BusinessRulesResult.new(node))
|
349
250
|
end
|
350
|
-
@business_rules.push(business_rule)
|
351
251
|
else
|
352
252
|
puts 'There are no business rules with this response!'
|
353
253
|
end
|
354
254
|
end
|
355
|
-
|
356
|
-
# Adds an array of PROPERTIES to each BUSINESS RULE
|
357
|
-
def add_business_rule_properties(value)
|
358
|
-
@business_rule.properties_array.push(EndecaOnDemand::BusinessRuleProperty.new(value)) unless value.nil?
|
359
|
-
end
|
360
|
-
|
361
|
-
# Adds an array of RECORDS to each BUSINESS RULE
|
362
|
-
def add_business_rule_records(value)
|
363
|
-
@business_rule.records.push(EndecaOnDemand::Record.new(value['Record'])) unless value.nil?
|
364
|
-
end
|
365
|
-
|
255
|
+
|
366
256
|
# Builds the SEARCH REPORTS and SELECTED DIMENSION VALUE IDS if included in response
|
367
257
|
def build_applied_filters
|
368
|
-
unless @response
|
369
|
-
|
370
|
-
|
258
|
+
unless @response.xpath("//AppliedFilters").nil?
|
259
|
+
|
260
|
+
# Builds an array of SEARCH REPORTS
|
261
|
+
unless @response.xpath("//AppliedFilters//SearchReports").nil?
|
262
|
+
@searchs = []
|
263
|
+
|
264
|
+
@matchedrecordcount = @response.xpath("//AppliedFilters//SearchReports//SearchReport//matchedrecordcount")
|
265
|
+
@matchedmode = @response.xpath("//AppliedFilters//SearchReports//SearchReport//matchedmode")
|
266
|
+
@matchedtermscount = @response.xpath("//AppliedFilters//SearchReports//SearchReport//matchedtermscount")
|
267
|
+
@applied_search_adjustments = @response.xpath("//AppliedFilters//SearchReports//SearchReport//AppliedSearchAdjustments")
|
268
|
+
@suggested_search_adjustments = @response.xpath("//AppliedFilters//SearchReports//SearchReport//SuggestedSearchAdjustments")
|
269
|
+
|
270
|
+
@searchs.push(EndecaOnDemand::Search.new(@response.xpath("//AppliedFilters//SearchReports//SearchReport//Search")))
|
371
271
|
else
|
372
272
|
puts 'There are no search reports with this response!'
|
373
273
|
end
|
374
|
-
|
375
|
-
|
274
|
+
|
275
|
+
# Builds an array of SELECTED DIMENSION VALUE IDS
|
276
|
+
unless @response.xpath("//AppliedFilters//SelectedDimensionValueIds").nil?
|
277
|
+
@selected_dimension_value_ids = []
|
278
|
+
|
279
|
+
@response.xpath("//AppliedFilters//SelectedDimnesionValueIds").each do |node|
|
280
|
+
@selected_dimension_value_ids.push(EndecaOnDemand::SelectedDimensionValueId.new(node))
|
281
|
+
end
|
376
282
|
else
|
377
283
|
puts "There are no selected dimension value ids with this response!"
|
378
284
|
end
|
@@ -381,34 +287,4 @@ class EndecaOnDemand
|
|
381
287
|
end
|
382
288
|
end
|
383
289
|
|
384
|
-
# Builds an array of SEARCH REPORTS
|
385
|
-
def build_search_reports
|
386
|
-
@searchs = []
|
387
|
-
|
388
|
-
search_report = @response['AppliedFilters']['SearchReports']['SearchReport']
|
389
|
-
|
390
|
-
@matchedrecordcount = search_report.fetch('matchedrecordcount')
|
391
|
-
@matchedmode = search_report.fetch('matchedmode')
|
392
|
-
@matchedtermscount = search_report.fetch('matchedtermscount')
|
393
|
-
@applied_search_adjustments = search_report.fetch('AppliedSearchAdjustments')
|
394
|
-
@suggested_search_adjustments = search_report.fetch('SuggestedSearchAdjustments')
|
395
|
-
|
396
|
-
@searchs.push(EndecaOnDemand::Search.new(search_report.fetch('Search')))
|
397
|
-
end
|
398
|
-
|
399
|
-
# Builds an array of SELECTED DIMENSION VALUE IDS
|
400
|
-
def build_selected_dimension_value_ids
|
401
|
-
@selected_dimension_value_ids = []
|
402
|
-
|
403
|
-
selected_dimension_value_ids = @response['AppliedFilters']['SelectedDimensionValueIds']
|
404
|
-
if selected_dimension_value_ids.instance_of?(Hash)
|
405
|
-
selected_dimension_value_id = EndecaOnDemand::DimensionValueId.new(selected_dimension_value_ids)
|
406
|
-
elsif selected_dimension_value_ids.instance_of?(Array)
|
407
|
-
selected_dimension_value_ids.each do |key, value|
|
408
|
-
selected_dimension_value_id = EndecaOnDemand::DimensionValueId.new(value)
|
409
|
-
end
|
410
|
-
end
|
411
|
-
@selected_dimension_value_ids.push(selected_dimension_value_id)
|
412
|
-
end
|
413
|
-
|
414
290
|
end
|
metadata
CHANGED
@@ -1,49 +1,47 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: endeca_on_demand
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.9
|
4
5
|
prerelease:
|
5
|
-
version: 0.9.8
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- sdomino
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-09-07 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: crackoid
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70233395263500 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: rspec
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70233395263500
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70233395262300 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
35
33
|
type: :development
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70233395262300
|
36
|
+
description: EndecaOnDemand will take a query-string and construct an XML query and
|
37
|
+
send it to an hosted Endeca On-Demand Cluster. It will then parse the response and
|
38
|
+
expose an API for using the response data.
|
39
|
+
email:
|
39
40
|
- sdomino@pagodabox.com
|
40
41
|
executables: []
|
41
|
-
|
42
42
|
extensions: []
|
43
|
-
|
44
43
|
extra_rdoc_files: []
|
45
|
-
|
46
|
-
files:
|
44
|
+
files:
|
47
45
|
- .gitignore
|
48
46
|
- Gemfile
|
49
47
|
- LICENSE.txt
|
@@ -51,42 +49,39 @@ files:
|
|
51
49
|
- Rakefile
|
52
50
|
- endeca_on_demand.gemspec
|
53
51
|
- lib/endeca_on_demand.rb
|
54
|
-
- lib/endeca_on_demand/
|
55
|
-
- lib/endeca_on_demand/
|
56
|
-
- lib/endeca_on_demand/
|
52
|
+
- lib/endeca_on_demand/Business_Rules_Result/property.rb
|
53
|
+
- lib/endeca_on_demand/Dimension/dimension_value.rb
|
54
|
+
- lib/endeca_on_demand/bread_crumb.rb
|
55
|
+
- lib/endeca_on_demand/business_rules_result.rb
|
57
56
|
- lib/endeca_on_demand/dimension.rb
|
58
|
-
- lib/endeca_on_demand/dimension_value.rb
|
59
|
-
- lib/endeca_on_demand/dimension_value_id.rb
|
60
57
|
- lib/endeca_on_demand/proxy.rb
|
61
58
|
- lib/endeca_on_demand/record.rb
|
62
59
|
- lib/endeca_on_demand/search.rb
|
60
|
+
- lib/endeca_on_demand/selected_dimension_value_id.rb
|
63
61
|
- lib/endeca_on_demand/version.rb
|
64
62
|
homepage: http://github.com/sdomino/endeca_on-demand
|
65
63
|
licenses: []
|
66
|
-
|
67
64
|
post_install_message:
|
68
65
|
rdoc_options: []
|
69
|
-
|
70
|
-
require_paths:
|
66
|
+
require_paths:
|
71
67
|
- lib
|
72
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
69
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
75
|
none: false
|
80
|
-
requirements:
|
81
|
-
- -
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version:
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
84
80
|
requirements: []
|
85
|
-
|
86
81
|
rubyforge_project: endeca_on_demand
|
87
|
-
rubygems_version: 1.8.
|
82
|
+
rubygems_version: 1.8.10
|
88
83
|
signing_key:
|
89
84
|
specification_version: 3
|
90
|
-
summary: Formerly EndecaXml (endeca_xml), This gem provides an easy way for you to
|
85
|
+
summary: Formerly EndecaXml (endeca_xml), This gem provides an easy way for you to
|
86
|
+
use the Thanx Media, Endeca On-Demand Web API
|
91
87
|
test_files: []
|
92
|
-
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class EndecaOnDemand
|
2
|
-
class BusinessRule < Proxy
|
3
|
-
|
4
|
-
attr_reader :properties_array
|
5
|
-
|
6
|
-
def initialize(business_rule)
|
7
|
-
@properties_array = []
|
8
|
-
@records = []
|
9
|
-
|
10
|
-
business_rule.each do |key, value|
|
11
|
-
self.instance_variable_set(:"@#{key.downcase}", value)
|
12
|
-
self.class_eval("attr_reader :#{key.downcase}")
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
class EndecaOnDemand
|
2
|
-
class DimensionValue < Proxy
|
3
|
-
|
4
|
-
def initialize(dimension_value)
|
5
|
-
dimension_value.each do |key, value|
|
6
|
-
self.instance_variable_set(:"@#{key.downcase}", value)
|
7
|
-
self.class_eval("attr_reader :#{key.downcase}")
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
end
|
12
|
-
end
|