endeca_on_demand 0.9.8 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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