amazon-product-advertising-api-prezjordan 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,70 @@
1
+ module AmazonProductAdvertisingApi #:nodoc:
2
+ module Operations #:nodoc:
3
+ module BrowseNode #:nodoc:
4
+
5
+ # A class to represent the BrowseNodeLookup Operation. See AmazonProductAdvertisingApi::Operations::Base::Request for info relating to all Requests.
6
+ class BrowseNodeLookup < AmazonProductAdvertisingApi::Operations::Base::Request
7
+
8
+ REQUEST_PARAMETERS = :browse_node_id, :response_group
9
+
10
+ REQUEST_PARAMETERS.each do |param|
11
+ self.send(:attr_accessor, param)
12
+ end
13
+
14
+ # BrowseNodeLookup only requires a browse_node_id to be specified.
15
+ def initialize(browse_node_id, region = :uk)
16
+ super()
17
+
18
+ self.browse_node_id = browse_node_id
19
+ self.operation = "BrowseNodeLookup"
20
+ self.region = region
21
+ end
22
+
23
+ # BrowseNode methods return xml consisting of a BrowseNodes tag with several BrowseNode tags inside.
24
+ def parse
25
+ self.response.add_element("BrowseNodes", AmazonProductAdvertisingApi::Operations::Base::Element.new)
26
+
27
+ (self.hpricot_data/'BrowseNodes > BrowseNode').each do |element|
28
+ new_element = AmazonProductAdvertisingApi::Operations::Base::Element.new
29
+ self.response.browse_nodes << new_element
30
+
31
+ queue = []
32
+ queue << [new_element, element.containers]
33
+
34
+ queue.each do |pair|
35
+ current_element = pair[0]
36
+ current_children = pair[1]
37
+
38
+ current_children.each do |child|
39
+ if child.containers.size == 0
40
+ current_element.add_element(child.name, child.inner_html)
41
+ else
42
+ if parent_a_container?(child)
43
+ new_element = AmazonProductAdvertisingApi::Operations::Base::Element.new
44
+ current_element << new_element
45
+ queue << [new_element, child.containers]
46
+ else
47
+ new_element = current_element.add_element(child.name, AmazonProductAdvertisingApi::Operations::Base::Element.new)
48
+ queue << [new_element, child.containers]
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ private
57
+ # This simply looks at the defined parameters and creates a hash of the ones that have values assigned.
58
+ # Need to work out a way of doing this so I don't need to keep defining exactly the same method in each class.
59
+ def params
60
+ REQUEST_PARAMETERS.inject({}) do |parameters, parameter|
61
+ parameters[parameter] = eval("self.#{parameter}") unless eval("self.#{parameter}.nil?")
62
+ parameters
63
+ end
64
+ end
65
+
66
+ end
67
+
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,133 @@
1
+ module AmazonProductAdvertisingApi #:nodoc:
2
+ module Operations #:nodoc:
3
+ module Item #:nodoc:
4
+
5
+ # Gets mixed into each of the classes in AmazonProductAdvertisingApi::Operations::Item for common behaviours.
6
+ module Common
7
+
8
+ # Item methods return xml consisting of an Items tag with several Item tags inside.
9
+ def parse
10
+ self.response.add_element("Items", AmazonProductAdvertisingApi::Operations::Base::Element.new)
11
+
12
+ (self.hpricot_data/'Items > Item').each do |element|
13
+ new_element = AmazonProductAdvertisingApi::Operations::Base::Element.new
14
+ self.response.items << new_element
15
+
16
+ queue = []
17
+ queue << [new_element, element.containers]
18
+
19
+ queue.each do |pair|
20
+ current_element = pair[0]
21
+ current_children = pair[1]
22
+
23
+ current_children.each do |child|
24
+ if child.containers.size == 0
25
+ current_element.add_element(child.name, child.inner_html)
26
+ else
27
+ if parent_a_container?(child)
28
+ new_element = AmazonProductAdvertisingApi::Operations::Base::Element.new
29
+ current_element << new_element
30
+ queue << [new_element, child.containers]
31
+ else
32
+ new_element = current_element.add_element(child.name, AmazonProductAdvertisingApi::Operations::Base::Element.new)
33
+ queue << [new_element, child.containers]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ protected
42
+
43
+ # This simply looks at the defined parameters and creates a hash of the ones that have values assigned.
44
+ # Need to work out a way of doing this so I don't need to keep defining exactly the same method in each class.
45
+ def params
46
+ self.class.const_get("REQUEST_PARAMETERS").inject({}) do |parameters, parameter|
47
+ parameters[parameter] = instance_variable_get("@#{parameter}") unless instance_variable_get("@#{parameter}").nil?
48
+ parameters
49
+ end
50
+ end
51
+
52
+ end
53
+
54
+ # A class to represent the ItemSearch Operation. See AmazonProductAdvertisingApi::Operations::Base::Request for info relating to all Requests.
55
+ #
56
+ # It mixes in AmazonProductAdvertisingApi::Operations::Item::Common for it's parse method.
57
+ class ItemSearch < AmazonProductAdvertisingApi::Operations::Base::Request
58
+
59
+ include Common
60
+
61
+ REQUEST_PARAMETERS = :actor, :artist, :audience_rating, :author, :availability, :brand, :browse_node, :city,
62
+ :composer, :condition, :conductor, :director, :item_page, :keywords, :manufacturer, :maximum_price,
63
+ :merchant_id, :minimum_price, :neighborhood, :orchestra, :postal_code, :power, :publisher, :related_items_page,
64
+ :relationship_type, :review_sort, :search_index, :sort, :tag_page, :tags_per_page, :tag_sort, :text_stream, :title,
65
+ :variation_page, :response_group
66
+
67
+ REQUEST_PARAMETERS.each do |param|
68
+ self.send(:attr_accessor, param)
69
+ end
70
+
71
+ # ItemSearch requires keywords and a search index to be specified.
72
+ def initialize(keywords, search_index = "Books", region = :uk)
73
+ super()
74
+
75
+ self.keywords = keywords
76
+ self.search_index = search_index
77
+ self.operation = "ItemSearch"
78
+ self.region = region
79
+ end
80
+ end
81
+
82
+ # A class to represent the ItemLookup Operation. See AmazonProductAdvertisingApi::Operations::Base::Request for info relating to all Requests.
83
+ #
84
+ # It mixes in AmazonProductAdvertisingApi::Operations::Item::Common for it's parse method.
85
+ class ItemLookup < AmazonProductAdvertisingApi::Operations::Base::Request
86
+
87
+ include Common
88
+
89
+ REQUEST_PARAMETERS = :condition, :id_type, :item_id, :merchant_id, :offer_page, :related_items_page, :relationship_type, :review_page,
90
+ :review_sort, :search_index, :tag_page, :tags_per_page, :tag_sort, :variation_page, :response_group
91
+
92
+ REQUEST_PARAMETERS.each do |param|
93
+ self.send(:attr_accessor, param)
94
+ end
95
+
96
+ # ItemLookup only requires an item id (ASIN) to be specified.
97
+ def initialize(item_id, region = :uk)
98
+ super
99
+
100
+ self.item_id = item_id
101
+ self.operation = "ItemLookup"
102
+ self.region = region
103
+ end
104
+ end
105
+
106
+ # A class to represent the SimilarityLookup Operation. See AmazonProductAdvertisingApi::Operations::Base::Request for info relating to all Requests.
107
+ #
108
+ # Despite not following the same naming convention of other classes in this module, it returns data structured the same way so has been put here.
109
+ #
110
+ # It mixes in AmazonProductAdvertisingApi::Operations::Item::Common for it's parse method.
111
+ class SimilarityLookup < AmazonProductAdvertisingApi::Operations::Base::Request
112
+
113
+ include Common
114
+
115
+ REQUEST_PARAMETERS = :condition, :item_id, :merchant_id, :similarity_type, :response_group
116
+
117
+ REQUEST_PARAMETERS.each do |param|
118
+ self.send(:attr_accessor, param)
119
+ end
120
+
121
+ # SimilarityLookup only requires an item id (ASIN) to be specified.
122
+ def initialize(item_id, region = :uk)
123
+ super()
124
+
125
+ self.item_id = item_id
126
+ self.operation = "SimilarityLookup"
127
+ self.region = region
128
+ end
129
+ end
130
+
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,560 @@
1
+ module AmazonProductAdvertisingApi #:nodoc:
2
+ module Operations #:nodoc:
3
+ module Base #:nodoc:
4
+
5
+ # This is a list of all response elements from the API docs dated 2009-03-31.
6
+ # It is used by the element object so that we can return a nil or an empty elements
7
+ # if an element is queried for something that isn't in the response.
8
+ RESPONSE_ELEMENTS = [
9
+ :about,
10
+ :about_me,
11
+ :actor,
12
+ :additional_name,
13
+ :address1,
14
+ :address2,
15
+ :address3,
16
+ :alternate_version,
17
+ :amazon_maximum_age,
18
+ :amazon_minimum_age,
19
+ :amount,
20
+ :aperture_modes,
21
+ :artist,
22
+ :asin,
23
+ :aspect_ratio,
24
+ :audience_rating,
25
+ :audio_format,
26
+ :author,
27
+ :availability,
28
+ :availability_attributes,
29
+ :average_feedback_rating,
30
+ :average_rating,
31
+ :back_finding,
32
+ :band_material_type,
33
+ :batteries,
34
+ :batteries_included,
35
+ :battery_description,
36
+ :battery_type,
37
+ :bed_id,
38
+ :bed_name,
39
+ :benefit,
40
+ :benefits,
41
+ :benefit_type,
42
+ :benefit_description,
43
+ :bezel_material_type,
44
+ :bin,
45
+ :binding,
46
+ :bin_item_count,
47
+ :bin_name,
48
+ :bin_parameter,
49
+ :birthday,
50
+ :body_style_id,
51
+ :body_style_name,
52
+ :brake_id,
53
+ :brake_name,
54
+ :brand,
55
+ :browse_node_id,
56
+ :calendar_type,
57
+ :camera_manual_features,
58
+ :cart_id,
59
+ :cart_item,
60
+ :cart_item_id,
61
+ :cart_items,
62
+ :case_diameter,
63
+ :case_material_type,
64
+ :case_thickness,
65
+ :case_type,
66
+ :category,
67
+ :cdrw_description,
68
+ :chain_type,
69
+ :city,
70
+ :clasp_type,
71
+ :clothing_size,
72
+ :code,
73
+ :collection,
74
+ :collection_item,
75
+ :collection_parent,
76
+ :collections,
77
+ :color,
78
+ :comment,
79
+ :compatability,
80
+ :compnent_tyype,
81
+ :condition,
82
+ :condition_note,
83
+ :content,
84
+ :corrected_query,
85
+ :country,
86
+ :coupon_combination_type,
87
+ :cpu_manufacturer,
88
+ :cpu_speed,
89
+ :cpu_type,
90
+ :creator,
91
+ :creation_date,
92
+ :currency_amount,
93
+ :currency_code,
94
+ :customer_id,
95
+ :customer_name,
96
+ :customer_nickname,
97
+ :customer_review,
98
+ :customer_reviews,
99
+ :date,
100
+ :date_added,
101
+ :date_created,
102
+ :day,
103
+ :delay_between_shots,
104
+ :department,
105
+ :details,
106
+ :detail_page_url,
107
+ :dewey_decimal_number,
108
+ :dial_color,
109
+ :dial_window_material_type,
110
+ :digital_zoom,
111
+ :director,
112
+ :display_size,
113
+ :distinct_users,
114
+ :drive_type_id,
115
+ :drive_type_name,
116
+ :dvd_layers,
117
+ :dvdrw_description,
118
+ :dvd_sides,
119
+ :ean,
120
+ :edition,
121
+ :editorial_reviews_link_suppressed,
122
+ :element,
123
+ :eligibility_requirement,
124
+ :eligibility_requirement_description,
125
+ :eligibility_requirements,
126
+ :eligibility_requirement_type,
127
+ :end_date,
128
+ :engine_id,
129
+ :engine_name,
130
+ :episode_sequence,
131
+ :exchange_id,
132
+ :esrb_age_rating,
133
+ :external_display_support_description,
134
+ :fabric_type,
135
+ :fax_number,
136
+ :feature,
137
+ :feedback,
138
+ :feedback_rating,
139
+ :first_issue_lead_time,
140
+ :first_tagging,
141
+ :fitment_attribute,
142
+ :fitment_attributes,
143
+ :fixed_amount,
144
+ :flavour_name,
145
+ :floppy_disk_drive_description,
146
+ :format,
147
+ :formatted_price,
148
+ :genre,
149
+ :gem_type,
150
+ :gem_type_set_element,
151
+ :glance_page,
152
+ :golf_club_flex,
153
+ :golf_club_loft,
154
+ :graphics_card_interface,
155
+ :graphics_description,
156
+ :graphics_memory_size,
157
+ :group_claim_code,
158
+ :hand_orientation,
159
+ :hard_disk_count,
160
+ :hard_disk_size,
161
+ :hardware_platform,
162
+ :has_auto_focus,
163
+ :has_burst_mode,
164
+ :has_in_camera_editing,
165
+ :has_redeye_reduction,
166
+ :has_self_timer,
167
+ :has_tripod_mode,
168
+ :has_video_out,
169
+ :has_viewfinder,
170
+ :height,
171
+ :helpful_votes,
172
+ :hmac,
173
+ :hours,
174
+ :hours_of_operation,
175
+ :image,
176
+ :included_software,
177
+ :includes_mp3_player,
178
+ :ingredients,
179
+ :ingredients_set_element,
180
+ :is_autographed,
181
+ :isbn,
182
+ :is_category_root,
183
+ :is_eligible_for_super_save_shipping,
184
+ :is_email_notify_available,
185
+ :is_fit,
186
+ :is_fragile,
187
+ :is_in_benefit_set,
188
+ :is_in_eligibility_requirement_set,
189
+ :is_lab_created,
190
+ :is_link_suppressed,
191
+ :is_memorabilia,
192
+ :is_next,
193
+ :is_previous,
194
+ :iso_equivalent,
195
+ :item,
196
+ :item_applicability,
197
+ :issues_per_year,
198
+ :is_valid,
199
+ :item_attributes,
200
+ :keyboard_description,
201
+ :keywords,
202
+ :label,
203
+ :large_image,
204
+ :last_modified,
205
+ :last_tagging,
206
+ :legal_disclaimer,
207
+ :length,
208
+ :line_voltage,
209
+ :list_id,
210
+ :listing_id,
211
+ :list_item_id,
212
+ :list_name,
213
+ :list_owner,
214
+ :list_type,
215
+ :list_url,
216
+ :location,
217
+ :long_synopsis,
218
+ :loyalty_points,
219
+ :macro_focus_range,
220
+ :magazine_type,
221
+ :make_id,
222
+ :make_name,
223
+ :manufacturer,
224
+ :manufacturer_labour_warranty_description,
225
+ :manufacturer_maximum_age,
226
+ :manufacturer_minimum_age,
227
+ :manufacturer_parts_warranty_description,
228
+ :material_type,
229
+ :material_type_set_element,
230
+ :maximum_aperture,
231
+ :maximum_color_depth,
232
+ :maximum_focal_length,
233
+ :maximum_high_resolution_images,
234
+ :maximum_hours,
235
+ :maximum_horizontal_resolution,
236
+ :maximum_low_resolution_images,
237
+ :maximum_resolution,
238
+ :maximum_shutter_speed,
239
+ :maximum_vertical_resolution,
240
+ :maximum_weight_recommendation,
241
+ :medium_image,
242
+ :memory_slots_available,
243
+ :merchandising_message,
244
+ :merchandising,
245
+ :message,
246
+ :metal_stamp,
247
+ :metal_type,
248
+ :minimum_hours,
249
+ :mini_movie_description,
250
+ :minimum_focal_length,
251
+ :minimum_shutter_speed,
252
+ :missing_vehicle_attributes,
253
+ :model,
254
+ :model_description,
255
+ :monitor_size,
256
+ :monitor_viewable_diagonal_size,
257
+ :mouse_description,
258
+ :mpn,
259
+ :name,
260
+ :native_resolution,
261
+ :neighborhood,
262
+ :network_interface_description,
263
+ :nickname,
264
+ :notebook_display_technology,
265
+ :notebook_pointing_device_description,
266
+ :number,
267
+ :number_of_disks,
268
+ :number_of_issues,
269
+ :number_of_items,
270
+ :number_of_pages,
271
+ :number_of_pearls,
272
+ :number_of_rapid_fire_shots,
273
+ :number_of_stones,
274
+ :number_of_tracks,
275
+ :occasion_date,
276
+ :offer_listing_id,
277
+ :operating_system,
278
+ :operation,
279
+ :optical_zoom,
280
+ :original_air_date,
281
+ :original_release_date,
282
+ :other_categories_similar_products,
283
+ :owning_merchant_id,
284
+ :package_quantity,
285
+ :part,
286
+ :parameter,
287
+ :paremter_name,
288
+ :parent_asin,
289
+ :part_brand_bins,
290
+ :part_browse_node_bins,
291
+ :partner_name,
292
+ :pearl_lustre,
293
+ :pearl_minimum_color,
294
+ :pearl_shape,
295
+ :pearl_stringing_method,
296
+ :pearl_surface_blemishes,
297
+ :pearl_type,
298
+ :pearl_uniformity,
299
+ :phone_number,
300
+ :photo_flash_type,
301
+ :picture_format,
302
+ :platform,
303
+ :postal_code,
304
+ :price,
305
+ :price_rating,
306
+ :processor_codes,
307
+ :product_group,
308
+ :product_type_subcategory,
309
+ :promotion,
310
+ :promotion_category,
311
+ :promotion_id,
312
+ :promotions,
313
+ :publication_date,
314
+ :publisher,
315
+ :purchase_url,
316
+ :quantity,
317
+ :quantity_desired,
318
+ :quantity_received,
319
+ :rating,
320
+ :reading_level,
321
+ :registry_number,
322
+ :region_code,
323
+ :registry_name,
324
+ :related_item,
325
+ :related_items,
326
+ :related_items_count,
327
+ :related_item_page,
328
+ :related_item_page_count,
329
+ :relationship,
330
+ :relationship_type,
331
+ :release_date,
332
+ :removeable_memory,
333
+ :request_id,
334
+ :resolution_modes,
335
+ :response_group,
336
+ :ring_size,
337
+ :role,
338
+ :running_time,
339
+ :sales_rank,
340
+ :saved_for_later_item,
341
+ :season_sequence,
342
+ :scent_name,
343
+ :search_bin_set,
344
+ :search_bin_sets,
345
+ :secondary_cache_size,
346
+ :seller_id,
347
+ :seller_legalname,
348
+ :seller_nick_name,
349
+ :setting_type,
350
+ :shaft_material_type,
351
+ :shipment_items,
352
+ :shipments,
353
+ :short_synopsis,
354
+ :similar_products,
355
+ :similar_viewed_products,
356
+ :single_merchant_id,
357
+ :size,
358
+ :size_per_pearl,
359
+ :sku,
360
+ :small_image,
361
+ :sound_card_description,
362
+ :source,
363
+ :speaker_description,
364
+ :special_features,
365
+ :spring_types_id,
366
+ :spring_types_name,
367
+ :start_date,
368
+ :start_year,
369
+ :state,
370
+ :status,
371
+ :stone_clarity,
372
+ :stone_color,
373
+ :stone_cut,
374
+ :stone_shape,
375
+ :stone_weight,
376
+ :store_id,
377
+ :store_name,
378
+ :steering_id,
379
+ :steering_name,
380
+ :studio,
381
+ :subject,
382
+ :subcondition,
383
+ :subscription_length,
384
+ :summary,
385
+ :supported_image_type,
386
+ :swatch_image,
387
+ :system_bus_speed,
388
+ :system_memory_size,
389
+ :system_memory_size_max,
390
+ :system_memory_type,
391
+ :tag,
392
+ :tagged_items,
393
+ :tag_name,
394
+ :tags,
395
+ :tag_type,
396
+ :terms_of_conditions,
397
+ :theatrical_release_date,
398
+ :thumbnail_image,
399
+ :time,
400
+ :tiny_image,
401
+ :title,
402
+ :top_item,
403
+ :top_item_set,
404
+ :total_collectible,
405
+ :total_diamond_weight,
406
+ :total_extenal_bays_free,
407
+ :total_feedback,
408
+ :total_feedback_pages,
409
+ :total_firewire_ports,
410
+ :total_fitments,
411
+ :total_gem_weight,
412
+ :total_internal_bays_free,
413
+ :total_items,
414
+ :total_metal_weight,
415
+ :total_new,
416
+ :total_ntscpal_ports,
417
+ :total_offer_pages,
418
+ :total_offers,
419
+ :total_pages,
420
+ :total_parallel_ports,
421
+ :total_pc_card_slots,
422
+ :total_pci_slots_free,
423
+ :total_ratings,
424
+ :total_refurbished,
425
+ :total_results,
426
+ :total_review_pages,
427
+ :total_reviews,
428
+ :totals,
429
+ :total_serial_ports,
430
+ :total_s_video_ports,
431
+ :total_times_read,
432
+ :total_usages,
433
+ :total_usb_ports,
434
+ :total_usb2_ports,
435
+ :total_used,
436
+ :total_vga_out_ports,
437
+ :total_votes,
438
+ :track,
439
+ :transaction_date,
440
+ :transaction_date_epoch,
441
+ :transaction_id,
442
+ :transaction_item,
443
+ :transaction_item_id,
444
+ :transaction_items,
445
+ :transmission_id,
446
+ :transmissio_name,
447
+ :trim_id,
448
+ :trim_name,
449
+ :type,
450
+ :unit,
451
+ :upc,
452
+ :url,
453
+ :url_encoded_hmac,
454
+ :user_ident,
455
+ :user_id,
456
+ :value,
457
+ :variation_denomination,
458
+ :variation_description,
459
+ :variation_dimension,
460
+ :vehicle_bed_options,
461
+ :vehicle_bed,
462
+ :vehicle_body_style_options,
463
+ :vehicle_body_style,
464
+ :vehicle_brakes_options,
465
+ :vehicle_brakes,
466
+ :vehicle_drive_type_options,
467
+ :vehicle_drive_type,
468
+ :vehicle_engine_options,
469
+ :vehicle_engine,
470
+ :vehicle_make,
471
+ :vehicle_makes,
472
+ :vehicle_mfr_body_code_options,
473
+ :vehicle_mfr_body_code,
474
+ :vehicle_model,
475
+ :vehicle_models,
476
+ :vehicle_options,
477
+ :vehicle_parts,
478
+ :vehicle_spring_type_options,
479
+ :vehicle_spring_types,
480
+ :vehicle_steering_options,
481
+ :vehicle_steering,
482
+ :vehicle_transmission_options,
483
+ :vehicle_transmission,
484
+ :vehicle_wheelbase_options,
485
+ :vehicle_wheelbase,
486
+ :vehicle_year,
487
+ :vehicle_years,
488
+ :versions,
489
+ :warranty,
490
+ :watch_movement_type,
491
+ :water_resistant_depth,
492
+ :weight,
493
+ :wheelbase,
494
+ :wheelbase_id,
495
+ :wheelbase_name,
496
+ :width,
497
+ :will_ship_expedited,
498
+ :will_ship_international,
499
+ :wish_list_id,
500
+ :year
501
+ ]
502
+
503
+ # A list of all the container response elements.
504
+ CONTAINER_RESPONSE_ELEMENTS = [
505
+ :alternate_version,
506
+ :availability_attributes,
507
+ :benefit,
508
+ :benefits,
509
+ :bin_parameter,
510
+ :collection,
511
+ :collections,
512
+ :customer_reviews,
513
+ :details,
514
+ :eligibility_requirement,
515
+ :eligibility_requirements,
516
+ :first_tagging,
517
+ :fitment_attribute,
518
+ :fitment_attributes,
519
+ :item,
520
+ :item_applicability,
521
+ :item_attributes,
522
+ :large_image,
523
+ :last_tagging,
524
+ :medium_image,
525
+ :promotion,
526
+ :promotions,
527
+ :related_item,
528
+ :related_items,
529
+ :search_bin_sets,
530
+ :tagged_items,
531
+ :tags,
532
+ :thumbnail_image,
533
+ :top_item,
534
+ :top_item_set,
535
+ :totals,
536
+ :transaction_item,
537
+ :transaction_items,
538
+ :variation_dimension,
539
+ :vehicle_bed_options,
540
+ :vehicle_body_style_options,
541
+ :vehicle_brakes_options,
542
+ :vehicle_drive_type_options,
543
+ :vehicle_engine_options,
544
+ :vehicle_make,
545
+ :vehicle_makes,
546
+ :vehicle_mfr_body_code_options,
547
+ :vehicle_model,
548
+ :vehicle_models,
549
+ :vehicle_options,
550
+ :vehicle_parts,
551
+ :vehicle_spring_type_options,
552
+ :vehicle_steering_options,
553
+ :vehicle_transmission_options,
554
+ :vehicle_wheelbase_options,
555
+ :vehicle_year,
556
+ :vehicle_years
557
+ ]
558
+ end
559
+ end
560
+ end