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.
@@ -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 |key, value|
10
- self.instance_variable_set(:"@#{key.downcase}", value)
11
- self.class_eval("attr_reader :#{key.downcase}")
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 |key, value|
6
- self.instance_variable_set(:"@#{key.downcase}", value)
7
- self.class_eval("attr_reader :#{key.downcase}")
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 |key, value|
6
- self.instance_variable_set(:"@#{key.downcase}", value)
7
- self.class_eval("attr_reader :#{key.downcase}")
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
 
@@ -1,5 +1,5 @@
1
1
  class EndecaOnDemand
2
- class DimensionValueId < Proxy
2
+ class SelectedDimensionValueId < Proxy
3
3
 
4
4
  def initialize(id)
5
5
  id.each do |key, value|
@@ -1,3 +1,3 @@
1
1
  class EndecaOnDemand
2
- VERSION = "0.9.8"
2
+ VERSION = "0.9.9"
3
3
  end
@@ -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 'crackoid'
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(Crackoid::XML.parse(@raw_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['Final']
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 |dimension|
118
- @body.tag!('DimensionValueId', dimension)
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 |profile|
172
- @body.tag!('UserProfile', profile)
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
- record_set = @response['RecordsSet']
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
- @record_offset = record_set.fetch('offset')
204
- @records_per_page = record_set.fetch('recordsperpage')
205
- @total_record_count = record_set.fetch('totalrecordcount')
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
- breadcrumbs = @response['Breadcrumbs']
226
- unless breadcrumbs.nil?
227
- breads = @response['Breadcrumbs']['Breads']
228
- if breads.instance_of?(Hash)
229
- bread = breads['Bread']
230
- if bread.instance_of?(Hash)
231
- bread.each do |key, value|
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
- dimensions = @response['Dimensions']
296
- unless @response['Dimensions'].nil?
297
- dimension = @response['Dimensions']['Dimension']
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
- @business_rules = []
245
+ @business_rules_results = []
331
246
 
332
- business_rules_result = @response['BusinessRulesResult']
333
- unless business_rules_result.nil?
334
- business_rules = @response['BusinessRulesResult']['BusinessRules']
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['AppliedFilters'].nil?
369
- unless @response['AppliedFilters']['SearchReports'].nil?
370
- build_search_reports
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
- unless @response['AppliedFilters']['SelectedDimensionValueIds'].nil?
375
- build_selected_dimension_value_ids
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
- date: 2011-08-22 00:00:00 Z
14
- dependencies:
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
- prerelease: false
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: "0"
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
- requirement: &id002 !ruby/object:Gem::Requirement
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: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
- version_requirements: *id002
37
- description: EndecaOnDemand will take a query-string and construct an XML query and send it to an hosted Endeca On-Demand Cluster. It will then parse the response and expose an API for using the response data.
38
- email:
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/business_rule.rb
55
- - lib/endeca_on_demand/business_rule_property.rb
56
- - lib/endeca_on_demand/crumb.rb
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: "0"
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: "0"
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.6
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 use the Thanx Media, Endeca On-Demand Web API
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 BusinessRuleProperty < Proxy
3
-
4
- def initialize(property)
5
- property.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
@@ -1,12 +0,0 @@
1
- class EndecaOnDemand
2
- class Crumb < Proxy
3
-
4
- def initialize(crumb)
5
- crumb.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
@@ -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