ebayapi 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (856) hide show
  1. data/CHANGELOG +0 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README +0 -0
  4. data/examples/add_item.rb +50 -0
  5. data/examples/config.rb +10 -0
  6. data/examples/end_item.rb +18 -0
  7. data/examples/get_api_usage.rb +21 -0
  8. data/examples/get_attributes_xsl.rb +26 -0
  9. data/examples/get_ebay_details.rb +22 -0
  10. data/examples/get_ebay_time.rb +33 -0
  11. data/examples/get_ebay_time_raw.rb +31 -0
  12. data/examples/get_item.rb +25 -0
  13. data/examples/get_item_transactions.rb +36 -0
  14. data/examples/get_items_selling.rb +26 -0
  15. data/examples/get_my_messages.rb +21 -0
  16. data/examples/get_my_messages_folders.rb +20 -0
  17. data/examples/get_notification_preferences.rb +36 -0
  18. data/examples/get_notifications_usage.rb +23 -0
  19. data/examples/get_user.rb +26 -0
  20. data/examples/mark_my_messages_message_as_read.rb +22 -0
  21. data/examples/revise_item.rb +34 -0
  22. data/examples/set_notification_preferences.rb +27 -0
  23. data/examples/verify_add_item.rb +37 -0
  24. data/init.rb +2 -0
  25. data/lib/ebay/api.rb +179 -0
  26. data/lib/ebay/ebay.rb +26 -0
  27. data/lib/ebay/enumeration.rb +7 -0
  28. data/lib/ebay/initializer.rb +19 -0
  29. data/lib/ebay/notification.rb +109 -0
  30. data/lib/ebay/request/base.rb +18 -0
  31. data/lib/ebay/request/connection.rb +66 -0
  32. data/lib/ebay/request.rb +1 -0
  33. data/lib/ebay/requests/abstract.rb +28 -0
  34. data/lib/ebay/requests/add_dispute.rb +16 -0
  35. data/lib/ebay/requests/add_dispute_response.rb +18 -0
  36. data/lib/ebay/requests/add_item.rb +16 -0
  37. data/lib/ebay/requests/add_live_auction_item.rb +14 -0
  38. data/lib/ebay/requests/add_member_message.rb +15 -0
  39. data/lib/ebay/requests/add_member_message_aaq_to_partner.rb +15 -0
  40. data/lib/ebay/requests/add_member_message_rtq.rb +15 -0
  41. data/lib/ebay/requests/add_member_messages_aaq_to_bidder.rb +14 -0
  42. data/lib/ebay/requests/add_order.rb +14 -0
  43. data/lib/ebay/requests/add_second_chance_item.rb +19 -0
  44. data/lib/ebay/requests/add_to_item_description.rb +14 -0
  45. data/lib/ebay/requests/add_to_watch_list.rb +13 -0
  46. data/lib/ebay/requests/add_transaction_confirmation_item.rb +20 -0
  47. data/lib/ebay/requests/approve_live_auction_bidders.rb +17 -0
  48. data/lib/ebay/requests/complete_sale.rb +18 -0
  49. data/lib/ebay/requests/delete_my_messages.rb +14 -0
  50. data/lib/ebay/requests/end_item.rb +15 -0
  51. data/lib/ebay/requests/fetch_token.rb +13 -0
  52. data/lib/ebay/requests/get_account.rb +22 -0
  53. data/lib/ebay/requests/get_ad_format_leads.rb +13 -0
  54. data/lib/ebay/requests/get_all_bidders.rb +15 -0
  55. data/lib/ebay/requests/get_api_access_rules.rb +12 -0
  56. data/lib/ebay/requests/get_attributes_cs.rb +16 -0
  57. data/lib/ebay/requests/get_attributes_xsl.rb +14 -0
  58. data/lib/ebay/requests/get_best_offers.rb +15 -0
  59. data/lib/ebay/requests/get_bidder_list.rb +17 -0
  60. data/lib/ebay/requests/get_categories.rb +16 -0
  61. data/lib/ebay/requests/get_category2_cs.rb +14 -0
  62. data/lib/ebay/requests/get_category2_finance_offer.rb +14 -0
  63. data/lib/ebay/requests/get_category_features.rb +16 -0
  64. data/lib/ebay/requests/get_category_listings.rb +32 -0
  65. data/lib/ebay/requests/get_category_mappings.rb +13 -0
  66. data/lib/ebay/requests/get_challenge_token.rb +12 -0
  67. data/lib/ebay/requests/get_charities.rb +19 -0
  68. data/lib/ebay/requests/get_contextual_keywords.rb +15 -0
  69. data/lib/ebay/requests/get_cross_promotions.rb +15 -0
  70. data/lib/ebay/requests/get_description_templates.rb +15 -0
  71. data/lib/ebay/requests/get_dispute.rb +13 -0
  72. data/lib/ebay/requests/get_ebay_details.rb +13 -0
  73. data/lib/ebay/requests/get_ebay_official_time.rb +12 -0
  74. data/lib/ebay/requests/get_feedback.rb +16 -0
  75. data/lib/ebay/requests/get_finance_offers.rb +14 -0
  76. data/lib/ebay/requests/get_high_bidders.rb +13 -0
  77. data/lib/ebay/requests/get_item.rb +16 -0
  78. data/lib/ebay/requests/get_item_recommendations.rb +14 -0
  79. data/lib/ebay/requests/get_item_shipping.rb +16 -0
  80. data/lib/ebay/requests/get_item_transactions.rb +20 -0
  81. data/lib/ebay/requests/get_items_awaiting_feedback.rb +15 -0
  82. data/lib/ebay/requests/get_live_auction_bidders.rb +16 -0
  83. data/lib/ebay/requests/get_live_auction_catalog_details.rb +12 -0
  84. data/lib/ebay/requests/get_member_messages.rb +21 -0
  85. data/lib/ebay/requests/get_my_ebay.rb +22 -0
  86. data/lib/ebay/requests/get_my_ebay_buying.rb +22 -0
  87. data/lib/ebay/requests/get_my_ebay_reminders.rb +15 -0
  88. data/lib/ebay/requests/get_my_ebay_selling.rb +17 -0
  89. data/lib/ebay/requests/get_my_messages.rb +15 -0
  90. data/lib/ebay/requests/get_notification_preferences.rb +13 -0
  91. data/lib/ebay/requests/get_notifications_usage.rb +15 -0
  92. data/lib/ebay/requests/get_order_transactions.rb +15 -0
  93. data/lib/ebay/requests/get_orders.rb +20 -0
  94. data/lib/ebay/requests/get_picture_manager_details.rb +15 -0
  95. data/lib/ebay/requests/get_picture_manager_options.rb +12 -0
  96. data/lib/ebay/requests/get_popular_keywords.rb +17 -0
  97. data/lib/ebay/requests/get_product_family_members.rb +14 -0
  98. data/lib/ebay/requests/get_product_finder.rb +14 -0
  99. data/lib/ebay/requests/get_product_finder_xsl.rb +14 -0
  100. data/lib/ebay/requests/get_product_search_page.rb +14 -0
  101. data/lib/ebay/requests/get_product_search_results.rb +14 -0
  102. data/lib/ebay/requests/get_product_selling_pages.rb +15 -0
  103. data/lib/ebay/requests/get_promotion_rules.rb +15 -0
  104. data/lib/ebay/requests/get_recommendations.rb +21 -0
  105. data/lib/ebay/requests/get_return_url.rb +12 -0
  106. data/lib/ebay/requests/get_ru_name.rb +13 -0
  107. data/lib/ebay/requests/get_search_results.rb +58 -0
  108. data/lib/ebay/requests/get_search_results_express.rb +34 -0
  109. data/lib/ebay/requests/get_seller_events.rb +21 -0
  110. data/lib/ebay/requests/get_seller_list.rb +24 -0
  111. data/lib/ebay/requests/get_seller_payments.rb +17 -0
  112. data/lib/ebay/requests/get_seller_transactions.rb +19 -0
  113. data/lib/ebay/requests/get_store.rb +15 -0
  114. data/lib/ebay/requests/get_store_category_update_status.rb +13 -0
  115. data/lib/ebay/requests/get_store_custom_page.rb +13 -0
  116. data/lib/ebay/requests/get_store_options.rb +12 -0
  117. data/lib/ebay/requests/get_store_preferences.rb +12 -0
  118. data/lib/ebay/requests/get_suggested_categories.rb +13 -0
  119. data/lib/ebay/requests/get_tax_table.rb +12 -0
  120. data/lib/ebay/requests/get_user.rb +15 -0
  121. data/lib/ebay/requests/get_user_contact_details.rb +15 -0
  122. data/lib/ebay/requests/get_user_disputes.rb +18 -0
  123. data/lib/ebay/requests/get_user_preferences.rb +20 -0
  124. data/lib/ebay/requests/get_want_it_now_post.rb +13 -0
  125. data/lib/ebay/requests/get_want_it_now_search_results.rb +18 -0
  126. data/lib/ebay/requests/issue_refund.rb +18 -0
  127. data/lib/ebay/requests/leave_feedback.rb +17 -0
  128. data/lib/ebay/requests/place_offer.rb +16 -0
  129. data/lib/ebay/requests/relist_item.rb +17 -0
  130. data/lib/ebay/requests/remove_from_watch_list.rb +14 -0
  131. data/lib/ebay/requests/respond_to_best_offer.rb +18 -0
  132. data/lib/ebay/requests/respond_to_feedback.rb +18 -0
  133. data/lib/ebay/requests/respond_to_want_it_now_post.rb +14 -0
  134. data/lib/ebay/requests/revise_checkout_status.rb +34 -0
  135. data/lib/ebay/requests/revise_item.rb +17 -0
  136. data/lib/ebay/requests/revise_live_auction_item.rb +17 -0
  137. data/lib/ebay/requests/revise_my_messages.rb +17 -0
  138. data/lib/ebay/requests/revise_my_messages_folders.rb +15 -0
  139. data/lib/ebay/requests/seller_reverse_dispute.rb +14 -0
  140. data/lib/ebay/requests/send_invoice.rb +27 -0
  141. data/lib/ebay/requests/set_notification_preferences.rb +20 -0
  142. data/lib/ebay/requests/set_picture_manager_details.rb +15 -0
  143. data/lib/ebay/requests/set_promotion_rules.rb +15 -0
  144. data/lib/ebay/requests/set_return_url.rb +16 -0
  145. data/lib/ebay/requests/set_store.rb +14 -0
  146. data/lib/ebay/requests/set_store_categories.rb +17 -0
  147. data/lib/ebay/requests/set_store_custom_page.rb +14 -0
  148. data/lib/ebay/requests/set_store_preferences.rb +14 -0
  149. data/lib/ebay/requests/set_tax_table.rb +14 -0
  150. data/lib/ebay/requests/set_user_notes.rb +15 -0
  151. data/lib/ebay/requests/set_user_preferences.rb +28 -0
  152. data/lib/ebay/requests/validate_challenge_input.rb +15 -0
  153. data/lib/ebay/requests/validate_test_user_registration.rb +18 -0
  154. data/lib/ebay/requests/verify_add_item.rb +17 -0
  155. data/lib/ebay/requests/verify_add_second_chance_item.rb +19 -0
  156. data/lib/ebay/requests.rb +123 -0
  157. data/lib/ebay/response/base.rb +27 -0
  158. data/lib/ebay/responses/abstract.rb +27 -0
  159. data/lib/ebay/responses/add_dispute.rb +13 -0
  160. data/lib/ebay/responses/add_dispute_response.rb +12 -0
  161. data/lib/ebay/responses/add_item.rb +19 -0
  162. data/lib/ebay/responses/add_live_auction_item.rb +17 -0
  163. data/lib/ebay/responses/add_member_message.rb +12 -0
  164. data/lib/ebay/responses/add_member_message_aaq_to_partner.rb +12 -0
  165. data/lib/ebay/responses/add_member_message_rtq.rb +12 -0
  166. data/lib/ebay/responses/add_member_messages_aaq_to_bidder.rb +14 -0
  167. data/lib/ebay/responses/add_order.rb +14 -0
  168. data/lib/ebay/responses/add_second_chance_item.rb +17 -0
  169. data/lib/ebay/responses/add_to_item_description.rb +12 -0
  170. data/lib/ebay/responses/add_to_watch_list.rb +14 -0
  171. data/lib/ebay/responses/add_transaction_confirmation_item.rb +15 -0
  172. data/lib/ebay/responses/approve_live_auction_bidders.rb +14 -0
  173. data/lib/ebay/responses/complete_sale.rb +12 -0
  174. data/lib/ebay/responses/delete_my_messages.rb +12 -0
  175. data/lib/ebay/responses/end_item.rb +13 -0
  176. data/lib/ebay/responses/fetch_token.rb +14 -0
  177. data/lib/ebay/responses/get_account.rb +23 -0
  178. data/lib/ebay/responses/get_ad_format_leads.rb +15 -0
  179. data/lib/ebay/responses/get_all_bidders.rb +17 -0
  180. data/lib/ebay/responses/get_api_access_rules.rb +14 -0
  181. data/lib/ebay/responses/get_attributes_cs.rb +14 -0
  182. data/lib/ebay/responses/get_attributes_xsl.rb +14 -0
  183. data/lib/ebay/responses/get_best_offers.rb +16 -0
  184. data/lib/ebay/responses/get_bidder_list.rb +16 -0
  185. data/lib/ebay/responses/get_categories.rb +23 -0
  186. data/lib/ebay/responses/get_category2_cs.rb +18 -0
  187. data/lib/ebay/responses/get_category2_finance_offer.rb +15 -0
  188. data/lib/ebay/responses/get_category_features.rb +20 -0
  189. data/lib/ebay/responses/get_category_listings.rb +24 -0
  190. data/lib/ebay/responses/get_category_mappings.rb +15 -0
  191. data/lib/ebay/responses/get_challenge_token.rb +15 -0
  192. data/lib/ebay/responses/get_charities.rb +14 -0
  193. data/lib/ebay/responses/get_contextual_keywords.rb +14 -0
  194. data/lib/ebay/responses/get_cross_promotions.rb +14 -0
  195. data/lib/ebay/responses/get_description_templates.rb +20 -0
  196. data/lib/ebay/responses/get_dispute.rb +14 -0
  197. data/lib/ebay/responses/get_ebay_details.rb +32 -0
  198. data/lib/ebay/responses/get_ebay_official_time.rb +12 -0
  199. data/lib/ebay/responses/get_feedback.rb +18 -0
  200. data/lib/ebay/responses/get_finance_offers.rb +15 -0
  201. data/lib/ebay/responses/get_high_bidders.rb +15 -0
  202. data/lib/ebay/responses/get_item.rb +14 -0
  203. data/lib/ebay/responses/get_item_recommendations.rb +14 -0
  204. data/lib/ebay/responses/get_item_shipping.rb +14 -0
  205. data/lib/ebay/responses/get_item_transactions.rb +23 -0
  206. data/lib/ebay/responses/get_items_awaiting_feedback.rb +14 -0
  207. data/lib/ebay/responses/get_live_auction_bidders.rb +20 -0
  208. data/lib/ebay/responses/get_live_auction_catalog_details.rb +14 -0
  209. data/lib/ebay/responses/get_member_messages.rb +17 -0
  210. data/lib/ebay/responses/get_my_ebay.rb +23 -0
  211. data/lib/ebay/responses/get_my_ebay_buying.rb +27 -0
  212. data/lib/ebay/responses/get_my_ebay_reminders.rb +15 -0
  213. data/lib/ebay/responses/get_my_ebay_selling.rb +20 -0
  214. data/lib/ebay/responses/get_my_messages.rb +18 -0
  215. data/lib/ebay/responses/get_notification_preferences.rb +20 -0
  216. data/lib/ebay/responses/get_notifications_usage.rb +20 -0
  217. data/lib/ebay/responses/get_order_transactions.rb +14 -0
  218. data/lib/ebay/responses/get_orders.rb +20 -0
  219. data/lib/ebay/responses/get_picture_manager_details.rb +14 -0
  220. data/lib/ebay/responses/get_picture_manager_options.rb +16 -0
  221. data/lib/ebay/responses/get_popular_keywords.rb +17 -0
  222. data/lib/ebay/responses/get_product_family_members.rb +16 -0
  223. data/lib/ebay/responses/get_product_finder.rb +14 -0
  224. data/lib/ebay/responses/get_product_finder_xsl.rb +14 -0
  225. data/lib/ebay/responses/get_product_search_page.rb +15 -0
  226. data/lib/ebay/responses/get_product_search_results.rb +16 -0
  227. data/lib/ebay/responses/get_product_selling_pages.rb +13 -0
  228. data/lib/ebay/responses/get_promotion_rules.rb +14 -0
  229. data/lib/ebay/responses/get_recommendations.rb +22 -0
  230. data/lib/ebay/responses/get_return_url.rb +15 -0
  231. data/lib/ebay/responses/get_ru_name.rb +13 -0
  232. data/lib/ebay/responses/get_search_results.rb +30 -0
  233. data/lib/ebay/responses/get_search_results_express.rb +21 -0
  234. data/lib/ebay/responses/get_seller_events.rb +15 -0
  235. data/lib/ebay/responses/get_seller_list.rb +22 -0
  236. data/lib/ebay/responses/get_seller_payments.rb +20 -0
  237. data/lib/ebay/responses/get_seller_transactions.rb +23 -0
  238. data/lib/ebay/responses/get_store.rb +14 -0
  239. data/lib/ebay/responses/get_store_category_update_status.rb +13 -0
  240. data/lib/ebay/responses/get_store_custom_page.rb +14 -0
  241. data/lib/ebay/responses/get_store_options.rb +21 -0
  242. data/lib/ebay/responses/get_store_preferences.rb +14 -0
  243. data/lib/ebay/responses/get_suggested_categories.rb +15 -0
  244. data/lib/ebay/responses/get_tax_table.rb +15 -0
  245. data/lib/ebay/responses/get_user.rb +14 -0
  246. data/lib/ebay/responses/get_user_contact_details.rb +16 -0
  247. data/lib/ebay/responses/get_user_disputes.rb +22 -0
  248. data/lib/ebay/responses/get_user_preferences.rb +30 -0
  249. data/lib/ebay/responses/get_want_it_now_post.rb +14 -0
  250. data/lib/ebay/responses/get_want_it_now_search_results.rb +19 -0
  251. data/lib/ebay/responses/issue_refund.rb +14 -0
  252. data/lib/ebay/responses/leave_feedback.rb +13 -0
  253. data/lib/ebay/responses/notification_message.rb +14 -0
  254. data/lib/ebay/responses/place_offer.rb +14 -0
  255. data/lib/ebay/responses/relist_item.rb +19 -0
  256. data/lib/ebay/responses/remove_from_watch_list.rb +14 -0
  257. data/lib/ebay/responses/respond_to_best_offer.rb +14 -0
  258. data/lib/ebay/responses/respond_to_feedback.rb +12 -0
  259. data/lib/ebay/responses/respond_to_want_it_now_post.rb +12 -0
  260. data/lib/ebay/responses/revise_checkout_status.rb +12 -0
  261. data/lib/ebay/responses/revise_item.rb +19 -0
  262. data/lib/ebay/responses/revise_live_auction_item.rb +17 -0
  263. data/lib/ebay/responses/revise_my_messages.rb +12 -0
  264. data/lib/ebay/responses/revise_my_messages_folders.rb +12 -0
  265. data/lib/ebay/responses/seller_reverse_dispute.rb +12 -0
  266. data/lib/ebay/responses/send_invoice.rb +12 -0
  267. data/lib/ebay/responses/set_notification_preferences.rb +12 -0
  268. data/lib/ebay/responses/set_picture_manager_details.rb +12 -0
  269. data/lib/ebay/responses/set_promotion_rules.rb +12 -0
  270. data/lib/ebay/responses/set_return_url.rb +12 -0
  271. data/lib/ebay/responses/set_store.rb +12 -0
  272. data/lib/ebay/responses/set_store_categories.rb +14 -0
  273. data/lib/ebay/responses/set_store_custom_page.rb +14 -0
  274. data/lib/ebay/responses/set_store_preferences.rb +12 -0
  275. data/lib/ebay/responses/set_tax_table.rb +12 -0
  276. data/lib/ebay/responses/set_user_notes.rb +12 -0
  277. data/lib/ebay/responses/set_user_preferences.rb +12 -0
  278. data/lib/ebay/responses/validate_challenge_input.rb +13 -0
  279. data/lib/ebay/responses/validate_test_user_registration.rb +12 -0
  280. data/lib/ebay/responses/verify_add_item.rb +20 -0
  281. data/lib/ebay/responses/verify_add_second_chance_item.rb +16 -0
  282. data/lib/ebay/responses.rb +123 -0
  283. data/lib/ebay/schema/mapper/class_definition.rb +48 -0
  284. data/lib/ebay/schema/mapper/class_template.rb +46 -0
  285. data/lib/ebay/schema/mapper/ebay_schema_importer.rb +108 -0
  286. data/lib/ebay/schema/mapper/enumeration.rb +30 -0
  287. data/lib/ebay/schema/mapper/enumeration_validation.rb +17 -0
  288. data/lib/ebay/schema/mapper/node.rb +153 -0
  289. data/lib/ebay/schema/mapper/parser.rb +16 -0
  290. data/lib/ebay/schema/mapper/ruby_class_generator.rb +273 -0
  291. data/lib/ebay/schema/mapper/ruby_class_generator_helper.rb +52 -0
  292. data/lib/ebay/schema/mapper/schema.rb +15 -0
  293. data/lib/ebay/schema/mapper/templates/abstract_request.erb +7 -0
  294. data/lib/ebay/schema/mapper/templates/application_delivery_preferences.erb +7 -0
  295. data/lib/ebay/schema/mapper/templates/base.erb +21 -0
  296. data/lib/ebay/schema/mapper/templates/value.erb +12 -0
  297. data/lib/ebay/schema/mapper/templates/xsl_file.erb +11 -0
  298. data/lib/ebay/schema/mapper/xsd2ebay.rb +13 -0
  299. data/lib/ebay/schema/mapper.rb +9 -0
  300. data/lib/ebay/schema/version.rb +5 -0
  301. data/lib/ebay/types/access_rule_current_status_code.rb +16 -0
  302. data/lib/ebay/types/access_rule_status_code.rb +12 -0
  303. data/lib/ebay/types/account_detail_entry_code.rb +256 -0
  304. data/lib/ebay/types/account_entry.rb +25 -0
  305. data/lib/ebay/types/account_entry_sort_type_code.rb +16 -0
  306. data/lib/ebay/types/account_history_selection_code.rb +12 -0
  307. data/lib/ebay/types/account_state_code.rb +12 -0
  308. data/lib/ebay/types/account_summary.rb +33 -0
  309. data/lib/ebay/types/ack_code.rb +13 -0
  310. data/lib/ebay/types/ad_format_enabled_code.rb +14 -0
  311. data/lib/ebay/types/ad_format_enabled_definition.rb +12 -0
  312. data/lib/ebay/types/ad_format_lead.rb +21 -0
  313. data/lib/ebay/types/add_member_messages_aaq_to_bidder_request_container.rb +16 -0
  314. data/lib/ebay/types/add_member_messages_aaq_to_bidder_response_container.rb +14 -0
  315. data/lib/ebay/types/additional_account.rb +15 -0
  316. data/lib/ebay/types/address.rb +40 -0
  317. data/lib/ebay/types/address_owner_code.rb +11 -0
  318. data/lib/ebay/types/address_record_type_code.rb +11 -0
  319. data/lib/ebay/types/address_status_code.rb +12 -0
  320. data/lib/ebay/types/affiliate_tracking_details.rb +16 -0
  321. data/lib/ebay/types/amount.rb +14 -0
  322. data/lib/ebay/types/api_access_rule.rb +28 -0
  323. data/lib/ebay/types/api_subscription_type_code.rb +29 -0
  324. data/lib/ebay/types/application_delivery_preferences.rb +25 -0
  325. data/lib/ebay/types/application_device_type_code.rb +13 -0
  326. data/lib/ebay/types/attribute.rb +16 -0
  327. data/lib/ebay/types/attribute_recommendations.rb +14 -0
  328. data/lib/ebay/types/attribute_set.rb +16 -0
  329. data/lib/ebay/types/authentication_entry.rb +17 -0
  330. data/lib/ebay/types/balance_code.rb +10 -0
  331. data/lib/ebay/types/basic_amount.rb +14 -0
  332. data/lib/ebay/types/basic_upgrade_pack_enabled_definition.rb +12 -0
  333. data/lib/ebay/types/best_offer.rb +23 -0
  334. data/lib/ebay/types/best_offer_action_code.rb +12 -0
  335. data/lib/ebay/types/best_offer_auto_decline_enabled_definition.rb +12 -0
  336. data/lib/ebay/types/best_offer_counter_enabled_definition.rb +12 -0
  337. data/lib/ebay/types/best_offer_details.rb +17 -0
  338. data/lib/ebay/types/best_offer_enabled_definition.rb +12 -0
  339. data/lib/ebay/types/best_offer_status_code.rb +18 -0
  340. data/lib/ebay/types/best_offer_type_code.rb +12 -0
  341. data/lib/ebay/types/bid_action_code.rb +19 -0
  342. data/lib/ebay/types/bid_approval.rb +16 -0
  343. data/lib/ebay/types/bid_approval_array.rb +14 -0
  344. data/lib/ebay/types/bidder_detail.rb +19 -0
  345. data/lib/ebay/types/bidder_detail_array.rb +14 -0
  346. data/lib/ebay/types/bidder_id.rb +28 -0
  347. data/lib/ebay/types/bidder_notice_preferences.rb +13 -0
  348. data/lib/ebay/types/bidder_status_code.rb +12 -0
  349. data/lib/ebay/types/bidder_type_code.rb +11 -0
  350. data/lib/ebay/types/bidding_details.rb +17 -0
  351. data/lib/ebay/types/bidding_summary.rb +20 -0
  352. data/lib/ebay/types/bulk_catalog_lister_status_code.rb +15 -0
  353. data/lib/ebay/types/buyer.rb +14 -0
  354. data/lib/ebay/types/buyer_payment_method_code.rb +32 -0
  355. data/lib/ebay/types/buyer_protection_code.rb +13 -0
  356. data/lib/ebay/types/buyer_requirements.rb +21 -0
  357. data/lib/ebay/types/buying_guide.rb +16 -0
  358. data/lib/ebay/types/buying_guide_details.rb +15 -0
  359. data/lib/ebay/types/buying_summary.rb +19 -0
  360. data/lib/ebay/types/calculated_shipping_charge_option_code.rb +11 -0
  361. data/lib/ebay/types/calculated_shipping_preferences.rb +16 -0
  362. data/lib/ebay/types/calculated_shipping_rate.rb +23 -0
  363. data/lib/ebay/types/calculated_shipping_rate_option_code.rb +11 -0
  364. data/lib/ebay/types/cancel_offer.rb +15 -0
  365. data/lib/ebay/types/cancel_offer_array.rb +14 -0
  366. data/lib/ebay/types/category.rb +38 -0
  367. data/lib/ebay/types/category_feature.rb +41 -0
  368. data/lib/ebay/types/category_feature_detail_level_code.rb +11 -0
  369. data/lib/ebay/types/category_finance_offer.rb +14 -0
  370. data/lib/ebay/types/category_listings_order_code.rb +17 -0
  371. data/lib/ebay/types/category_listings_search_code.rb +11 -0
  372. data/lib/ebay/types/category_mapping.rb +14 -0
  373. data/lib/ebay/types/characteristic.rb +21 -0
  374. data/lib/ebay/types/characteristic_set_ids.rb +13 -0
  375. data/lib/ebay/types/characteristics_search_code.rb +11 -0
  376. data/lib/ebay/types/characteristics_set.rb +17 -0
  377. data/lib/ebay/types/charity.rb +20 -0
  378. data/lib/ebay/types/charity_affiliation.rb +14 -0
  379. data/lib/ebay/types/charity_affiliation_type_code.rb +12 -0
  380. data/lib/ebay/types/charity_id.rb +14 -0
  381. data/lib/ebay/types/charity_info.rb +21 -0
  382. data/lib/ebay/types/charity_seller.rb +15 -0
  383. data/lib/ebay/types/charity_seller_status_code.rb +18 -0
  384. data/lib/ebay/types/charity_status_code.rb +11 -0
  385. data/lib/ebay/types/checkout_method_code.rb +11 -0
  386. data/lib/ebay/types/checkout_status.rb +16 -0
  387. data/lib/ebay/types/checkout_status_code.rb +13 -0
  388. data/lib/ebay/types/combined_payment_option_code.rb +12 -0
  389. data/lib/ebay/types/combined_payment_period_code.rb +14 -0
  390. data/lib/ebay/types/combined_payment_preferences.rb +18 -0
  391. data/lib/ebay/types/comment_type_code.rb +14 -0
  392. data/lib/ebay/types/complete_status_code.rb +12 -0
  393. data/lib/ebay/types/condition_selection_code.rb +11 -0
  394. data/lib/ebay/types/context_search_asset.rb +16 -0
  395. data/lib/ebay/types/country_code.rb +253 -0
  396. data/lib/ebay/types/country_details.rb +14 -0
  397. data/lib/ebay/types/cross_promotion_preferences.rb +19 -0
  398. data/lib/ebay/types/cross_promotions.rb +21 -0
  399. data/lib/ebay/types/currency_code.rb +183 -0
  400. data/lib/ebay/types/currency_details.rb +14 -0
  401. data/lib/ebay/types/custom_security_header.rb +17 -0
  402. data/lib/ebay/types/data_element_set.rb +15 -0
  403. data/lib/ebay/types/date_specifier_code.rb +12 -0
  404. data/lib/ebay/types/deposit_type_code.rb +12 -0
  405. data/lib/ebay/types/description_revise_mode_code.rb +12 -0
  406. data/lib/ebay/types/description_template.rb +22 -0
  407. data/lib/ebay/types/description_template_code.rb +11 -0
  408. data/lib/ebay/types/detail_level_code.rb +16 -0
  409. data/lib/ebay/types/detail_name_code.rb +19 -0
  410. data/lib/ebay/types/device_type_code.rb +11 -0
  411. data/lib/ebay/types/digital_delivery_details.rb +16 -0
  412. data/lib/ebay/types/digital_delivery_enabled_code.rb +12 -0
  413. data/lib/ebay/types/digital_delivery_enabled_definition.rb +12 -0
  414. data/lib/ebay/types/digital_delivery_method_code.rb +12 -0
  415. data/lib/ebay/types/dispatch_time_max_details.rb +14 -0
  416. data/lib/ebay/types/display_pay_now_button_code.rb +11 -0
  417. data/lib/ebay/types/dispute.rb +35 -0
  418. data/lib/ebay/types/dispute_activity_code.rb +18 -0
  419. data/lib/ebay/types/dispute_credit_eligibility_code.rb +11 -0
  420. data/lib/ebay/types/dispute_explanation_code.rb +22 -0
  421. data/lib/ebay/types/dispute_filter_count.rb +14 -0
  422. data/lib/ebay/types/dispute_filter_type_code.rb +16 -0
  423. data/lib/ebay/types/dispute_message.rb +16 -0
  424. data/lib/ebay/types/dispute_message_source_code.rb +12 -0
  425. data/lib/ebay/types/dispute_reason_code.rb +15 -0
  426. data/lib/ebay/types/dispute_record_type_code.rb +11 -0
  427. data/lib/ebay/types/dispute_resolution.rb +15 -0
  428. data/lib/ebay/types/dispute_resolution_reason_code.rb +22 -0
  429. data/lib/ebay/types/dispute_resolution_record_type_code.rb +20 -0
  430. data/lib/ebay/types/dispute_sort_type_code.rb +16 -0
  431. data/lib/ebay/types/dispute_state_code.rb +34 -0
  432. data/lib/ebay/types/dispute_status_code.rb +28 -0
  433. data/lib/ebay/types/distance.rb +14 -0
  434. data/lib/ebay/types/domain_histogram.rb +14 -0
  435. data/lib/ebay/types/duplicate_invocation_details.rb +15 -0
  436. data/lib/ebay/types/dutch_bin_enabled_definition.rb +12 -0
  437. data/lib/ebay/types/ebay_subscription_type_code.rb +29 -0
  438. data/lib/ebay/types/ebx_opt_in_preference.rb +13 -0
  439. data/lib/ebay/types/enable_code.rb +11 -0
  440. data/lib/ebay/types/end_of_auction_email_preferences.rb +19 -0
  441. data/lib/ebay/types/end_of_auction_logo_type_code.rb +13 -0
  442. data/lib/ebay/types/end_reason_code.rb +14 -0
  443. data/lib/ebay/types/error.rb +20 -0
  444. data/lib/ebay/types/error_classification_code.rb +11 -0
  445. data/lib/ebay/types/error_handling_code.rb +13 -0
  446. data/lib/ebay/types/error_parameter.rb +14 -0
  447. data/lib/ebay/types/escrow_code.rb +12 -0
  448. data/lib/ebay/types/expansion_array.rb +15 -0
  449. data/lib/ebay/types/express_condition_required_definition.rb +12 -0
  450. data/lib/ebay/types/express_detail_level_code.rb +12 -0
  451. data/lib/ebay/types/express_details.rb +15 -0
  452. data/lib/ebay/types/express_enabled_definition.rb +12 -0
  453. data/lib/ebay/types/express_histogram_aisle.rb +16 -0
  454. data/lib/ebay/types/express_histogram_department.rb +16 -0
  455. data/lib/ebay/types/express_histogram_domain_details.rb +17 -0
  456. data/lib/ebay/types/express_histogram_product.rb +14 -0
  457. data/lib/ebay/types/express_histogram_sort_code.rb +12 -0
  458. data/lib/ebay/types/express_item_requirements.rb +31 -0
  459. data/lib/ebay/types/express_item_sort_code.rb +12 -0
  460. data/lib/ebay/types/express_pictures_required_definition.rb +12 -0
  461. data/lib/ebay/types/express_preferences.rb +14 -0
  462. data/lib/ebay/types/express_product.rb +22 -0
  463. data/lib/ebay/types/express_product_sort_code.rb +12 -0
  464. data/lib/ebay/types/express_seller_requirements.rb +25 -0
  465. data/lib/ebay/types/express_selling_preference_code.rb +12 -0
  466. data/lib/ebay/types/extended_product_finder_id.rb +14 -0
  467. data/lib/ebay/types/external_alert_id_array.rb +13 -0
  468. data/lib/ebay/types/external_product_code.rb +14 -0
  469. data/lib/ebay/types/external_product_id.rb +19 -0
  470. data/lib/ebay/types/external_transaction.rb +16 -0
  471. data/lib/ebay/types/fault_details.rb +15 -0
  472. data/lib/ebay/types/feature_definitions.rb +72 -0
  473. data/lib/ebay/types/feature_id_code.rb +37 -0
  474. data/lib/ebay/types/fee.rb +14 -0
  475. data/lib/ebay/types/feedback_detail.rb +29 -0
  476. data/lib/ebay/types/feedback_info.rb +15 -0
  477. data/lib/ebay/types/feedback_period.rb +14 -0
  478. data/lib/ebay/types/feedback_period_array.rb +14 -0
  479. data/lib/ebay/types/feedback_rating_star_code.rb +20 -0
  480. data/lib/ebay/types/feedback_requirements.rb +14 -0
  481. data/lib/ebay/types/feedback_response_code.rb +11 -0
  482. data/lib/ebay/types/feedback_summary.rb +21 -0
  483. data/lib/ebay/types/finance_offer.rb +20 -0
  484. data/lib/ebay/types/flat_rate_insurance_range_code.rb +15 -0
  485. data/lib/ebay/types/flat_rate_insurance_range_cost.rb +14 -0
  486. data/lib/ebay/types/flat_shipping_preferences.rb +18 -0
  487. data/lib/ebay/types/flat_shipping_rate_option_code.rb +12 -0
  488. data/lib/ebay/types/gallery_sort_filter_code.rb +12 -0
  489. data/lib/ebay/types/gallery_type_code.rb +13 -0
  490. data/lib/ebay/types/general_payment_method_code.rb +14 -0
  491. data/lib/ebay/types/get_all_bidders_mode_code.rb +12 -0
  492. data/lib/ebay/types/get_recommendations_request_container.rb +23 -0
  493. data/lib/ebay/types/get_recommendations_response_container.rb +23 -0
  494. data/lib/ebay/types/gift_services_code.rb +12 -0
  495. data/lib/ebay/types/granularity_level_code.rb +12 -0
  496. data/lib/ebay/types/hit_counter_code.rb +16 -0
  497. data/lib/ebay/types/home_page_featured_enabled_definition.rb +12 -0
  498. data/lib/ebay/types/insurance_details.rb +14 -0
  499. data/lib/ebay/types/insurance_option_code.rb +14 -0
  500. data/lib/ebay/types/insurance_selected_code.rb +14 -0
  501. data/lib/ebay/types/international_shipping_service_options.rb +18 -0
  502. data/lib/ebay/types/invocation_status.rb +12 -0
  503. data/lib/ebay/types/item.rb +151 -0
  504. data/lib/ebay/types/item_bid_details.rb +17 -0
  505. data/lib/ebay/types/item_format_sort_filter_code.rb +13 -0
  506. data/lib/ebay/types/item_list_customization.rb +19 -0
  507. data/lib/ebay/types/item_location_code.rb +11 -0
  508. data/lib/ebay/types/item_sort_filter_code.rb +15 -0
  509. data/lib/ebay/types/item_sort_type_code.rb +79 -0
  510. data/lib/ebay/types/item_totals.rb +14 -0
  511. data/lib/ebay/types/item_transaction_id.rb +14 -0
  512. data/lib/ebay/types/item_type_filter_code.rb +18 -0
  513. data/lib/ebay/types/label.rb +14 -0
  514. data/lib/ebay/types/listing_analyzer_recommendations.rb +14 -0
  515. data/lib/ebay/types/listing_checkout_redirect_preference.rb +14 -0
  516. data/lib/ebay/types/listing_designer.rb +15 -0
  517. data/lib/ebay/types/listing_details.rb +36 -0
  518. data/lib/ebay/types/listing_duration_code.rb +21 -0
  519. data/lib/ebay/types/listing_duration_definition.rb +14 -0
  520. data/lib/ebay/types/listing_duration_definitions.rb +15 -0
  521. data/lib/ebay/types/listing_duration_reference.rb +14 -0
  522. data/lib/ebay/types/listing_enhancements_code.rb +18 -0
  523. data/lib/ebay/types/listing_flow_code.rb +12 -0
  524. data/lib/ebay/types/listing_status_code.rb +13 -0
  525. data/lib/ebay/types/listing_subtype_enum.rb +10 -0
  526. data/lib/ebay/types/listing_tip.rb +18 -0
  527. data/lib/ebay/types/listing_tip_field.rb +16 -0
  528. data/lib/ebay/types/listing_tip_message.rb +16 -0
  529. data/lib/ebay/types/listing_type_code.rb +21 -0
  530. data/lib/ebay/types/live_auction_approval_status.rb +14 -0
  531. data/lib/ebay/types/live_auction_approval_status_array.rb +14 -0
  532. data/lib/ebay/types/live_auction_bid.rb +16 -0
  533. data/lib/ebay/types/live_auction_bid_array.rb +14 -0
  534. data/lib/ebay/types/live_auction_catalog.rb +16 -0
  535. data/lib/ebay/types/live_auction_details.rb +17 -0
  536. data/lib/ebay/types/local_listing_distances_non_subscription_definition.rb +12 -0
  537. data/lib/ebay/types/local_listing_distances_regular_definition.rb +12 -0
  538. data/lib/ebay/types/local_listing_distances_specialty_definition.rb +12 -0
  539. data/lib/ebay/types/local_market_non_subscription_definition.rb +12 -0
  540. data/lib/ebay/types/local_market_premium_subscription_definition.rb +12 -0
  541. data/lib/ebay/types/local_market_regular_subscription_definition.rb +12 -0
  542. data/lib/ebay/types/local_market_speciality_subscription_definition.rb +12 -0
  543. data/lib/ebay/types/local_search.rb +14 -0
  544. data/lib/ebay/types/logo_type_code.rb +12 -0
  545. data/lib/ebay/types/lookup_attribute.rb +14 -0
  546. data/lib/ebay/types/mail_options_type_code.rb +12 -0
  547. data/lib/ebay/types/mark_up_mark_down_event.rb +19 -0
  548. data/lib/ebay/types/mark_up_mark_down_event_type_code.rb +11 -0
  549. data/lib/ebay/types/maximum_item_requirements.rb +14 -0
  550. data/lib/ebay/types/measure.rb +15 -0
  551. data/lib/ebay/types/measurement_system_code.rb +11 -0
  552. data/lib/ebay/types/member_message.rb +24 -0
  553. data/lib/ebay/types/member_message_exchange.rb +20 -0
  554. data/lib/ebay/types/member_message_exchange_array.rb +14 -0
  555. data/lib/ebay/types/merch_display_code.rb +11 -0
  556. data/lib/ebay/types/merchandizing_pref_code.rb +11 -0
  557. data/lib/ebay/types/message_status_type_code.rb +11 -0
  558. data/lib/ebay/types/message_type_code.rb +13 -0
  559. data/lib/ebay/types/minimum_reserve_price_definition.rb +12 -0
  560. data/lib/ebay/types/modified_field.rb +14 -0
  561. data/lib/ebay/types/modify_action_code.rb +12 -0
  562. data/lib/ebay/types/modify_code.rb +11 -0
  563. data/lib/ebay/types/my_ebay_favorite_search.rb +14 -0
  564. data/lib/ebay/types/my_ebay_favorite_search_list.rb +15 -0
  565. data/lib/ebay/types/my_ebay_favorite_seller.rb +14 -0
  566. data/lib/ebay/types/my_ebay_favorite_seller_list.rb +15 -0
  567. data/lib/ebay/types/my_ebay_second_chance_offer_list.rb +15 -0
  568. data/lib/ebay/types/my_ebay_selection.rb +15 -0
  569. data/lib/ebay/types/my_messages_alert.rb +36 -0
  570. data/lib/ebay/types/my_messages_alert_array.rb +14 -0
  571. data/lib/ebay/types/my_messages_alert_id.rb +28 -0
  572. data/lib/ebay/types/my_messages_alert_id_array.rb +13 -0
  573. data/lib/ebay/types/my_messages_alert_resolution_status_code.rb +12 -0
  574. data/lib/ebay/types/my_messages_folder.rb +14 -0
  575. data/lib/ebay/types/my_messages_folder_operation_code.rb +12 -0
  576. data/lib/ebay/types/my_messages_folder_summary.rb +18 -0
  577. data/lib/ebay/types/my_messages_forward_details.rb +14 -0
  578. data/lib/ebay/types/my_messages_message.rb +32 -0
  579. data/lib/ebay/types/my_messages_message_array.rb +14 -0
  580. data/lib/ebay/types/my_messages_message_id.rb +28 -0
  581. data/lib/ebay/types/my_messages_message_id_array.rb +13 -0
  582. data/lib/ebay/types/my_messages_response_details.rb +15 -0
  583. data/lib/ebay/types/my_messages_summary.rb +20 -0
  584. data/lib/ebay/types/name_value_list.rb +14 -0
  585. data/lib/ebay/types/name_value_list_array.rb +14 -0
  586. data/lib/ebay/types/notification_delivery_status_code.rb +13 -0
  587. data/lib/ebay/types/notification_details.rb +25 -0
  588. data/lib/ebay/types/notification_enable.rb +14 -0
  589. data/lib/ebay/types/notification_enable_array.rb +14 -0
  590. data/lib/ebay/types/notification_event_property.rb +15 -0
  591. data/lib/ebay/types/notification_event_property_name_code.rb +10 -0
  592. data/lib/ebay/types/notification_event_state_code.rb +19 -0
  593. data/lib/ebay/types/notification_event_type_code.rb +50 -0
  594. data/lib/ebay/types/notification_payload_type_code.rb +10 -0
  595. data/lib/ebay/types/notification_role_code.rb +13 -0
  596. data/lib/ebay/types/notification_statistics.rb +17 -0
  597. data/lib/ebay/types/notification_user_data.rb +16 -0
  598. data/lib/ebay/types/offer.rb +27 -0
  599. data/lib/ebay/types/offer_array.rb +14 -0
  600. data/lib/ebay/types/operation_type_code.rb +11 -0
  601. data/lib/ebay/types/order.rb +38 -0
  602. data/lib/ebay/types/order_role_code.rb +11 -0
  603. data/lib/ebay/types/order_status_code.rb +13 -0
  604. data/lib/ebay/types/order_transaction.rb +16 -0
  605. data/lib/ebay/types/paginated_item_array.rb +16 -0
  606. data/lib/ebay/types/paginated_order_transaction_array.rb +16 -0
  607. data/lib/ebay/types/paginated_transaction_array.rb +16 -0
  608. data/lib/ebay/types/pagination.rb +14 -0
  609. data/lib/ebay/types/pagination_result.rb +14 -0
  610. data/lib/ebay/types/paid_status_code.rb +20 -0
  611. data/lib/ebay/types/pay_pal_account_level_code.rb +16 -0
  612. data/lib/ebay/types/pay_pal_account_status_code.rb +17 -0
  613. data/lib/ebay/types/pay_pal_account_type_code.rb +14 -0
  614. data/lib/ebay/types/payment_details.rb +14 -0
  615. data/lib/ebay/types/payment_method_search_code.rb +12 -0
  616. data/lib/ebay/types/payment_option_details.rb +14 -0
  617. data/lib/ebay/types/payment_status_code.rb +15 -0
  618. data/lib/ebay/types/payment_type_code.rb +14 -0
  619. data/lib/ebay/types/paypal_account_level_code.rb +16 -0
  620. data/lib/ebay/types/paypal_account_status_code.rb +17 -0
  621. data/lib/ebay/types/paypal_account_type_code.rb +14 -0
  622. data/lib/ebay/types/photo_display_code.rb +16 -0
  623. data/lib/ebay/types/picture_details.rb +17 -0
  624. data/lib/ebay/types/picture_manager_action_code.rb +14 -0
  625. data/lib/ebay/types/picture_manager_detail_level_code.rb +12 -0
  626. data/lib/ebay/types/picture_manager_details.rb +20 -0
  627. data/lib/ebay/types/picture_manager_folder.rb +16 -0
  628. data/lib/ebay/types/picture_manager_picture.rb +17 -0
  629. data/lib/ebay/types/picture_manager_picture_display.rb +17 -0
  630. data/lib/ebay/types/picture_manager_picture_display_type_code.rb +15 -0
  631. data/lib/ebay/types/picture_manager_subscription.rb +15 -0
  632. data/lib/ebay/types/picture_manager_subscription_level_code.rb +14 -0
  633. data/lib/ebay/types/picture_source_code.rb +12 -0
  634. data/lib/ebay/types/price_range_filter.rb +14 -0
  635. data/lib/ebay/types/pricing_recommendations.rb +14 -0
  636. data/lib/ebay/types/pro_pack_enabled_definition.rb +12 -0
  637. data/lib/ebay/types/pro_pack_plus_enabled_definition.rb +12 -0
  638. data/lib/ebay/types/pro_stores_checkout_preference.rb +15 -0
  639. data/lib/ebay/types/pro_stores_details.rb +15 -0
  640. data/lib/ebay/types/product.rb +21 -0
  641. data/lib/ebay/types/product_family.rb +16 -0
  642. data/lib/ebay/types/product_finder_constraint.rb +14 -0
  643. data/lib/ebay/types/product_info.rb +16 -0
  644. data/lib/ebay/types/product_listing_details.rb +18 -0
  645. data/lib/ebay/types/product_search.rb +26 -0
  646. data/lib/ebay/types/product_search_page.rb +20 -0
  647. data/lib/ebay/types/product_search_result.rb +26 -0
  648. data/lib/ebay/types/product_use_case_code.rb +12 -0
  649. data/lib/ebay/types/promoted_item.rb +24 -0
  650. data/lib/ebay/types/promotion_details.rb +16 -0
  651. data/lib/ebay/types/promotion_item_price_type_code.rb +13 -0
  652. data/lib/ebay/types/promotion_item_selection_code.rb +11 -0
  653. data/lib/ebay/types/promotion_method_code.rb +11 -0
  654. data/lib/ebay/types/promotion_rule.rb +24 -0
  655. data/lib/ebay/types/promotion_scheme_code.rb +18 -0
  656. data/lib/ebay/types/proximity_search.rb +14 -0
  657. data/lib/ebay/types/proximity_search_details.rb +13 -0
  658. data/lib/ebay/types/purchase_purpose_type_code.rb +17 -0
  659. data/lib/ebay/types/quantity.rb +14 -0
  660. data/lib/ebay/types/quantity_operator_code.rb +14 -0
  661. data/lib/ebay/types/question_type_code.rb +13 -0
  662. data/lib/ebay/types/range_code.rb +11 -0
  663. data/lib/ebay/types/rcs_payment_status_code.rb +12 -0
  664. data/lib/ebay/types/recommendation_engine_code.rb +13 -0
  665. data/lib/ebay/types/refund_reason_code.rb +15 -0
  666. data/lib/ebay/types/refund_type_code.rb +12 -0
  667. data/lib/ebay/types/region_details.rb +14 -0
  668. data/lib/ebay/types/reminder_customization.rb +14 -0
  669. data/lib/ebay/types/reminders.rb +20 -0
  670. data/lib/ebay/types/request_categories.rb +16 -0
  671. data/lib/ebay/types/response_attribute_set.rb +21 -0
  672. data/lib/ebay/types/revise_status.rb +17 -0
  673. data/lib/ebay/types/sales_tax.rb +16 -0
  674. data/lib/ebay/types/schedule.rb +14 -0
  675. data/lib/ebay/types/scheduling_info.rb +15 -0
  676. data/lib/ebay/types/search_attributes.rb +17 -0
  677. data/lib/ebay/types/search_details.rb +15 -0
  678. data/lib/ebay/types/search_flags_code.rb +13 -0
  679. data/lib/ebay/types/search_location.rb +15 -0
  680. data/lib/ebay/types/search_location_filter.rb +17 -0
  681. data/lib/ebay/types/search_request.rb +16 -0
  682. data/lib/ebay/types/search_result_item.rb +17 -0
  683. data/lib/ebay/types/search_result_values_code.rb +14 -0
  684. data/lib/ebay/types/search_sort_order_code.rb +25 -0
  685. data/lib/ebay/types/search_store_filter.rb +14 -0
  686. data/lib/ebay/types/search_type_code.rb +11 -0
  687. data/lib/ebay/types/second_chance_offer_duration_code.rb +13 -0
  688. data/lib/ebay/types/selection_mode_code.rb +11 -0
  689. data/lib/ebay/types/seller.rb +39 -0
  690. data/lib/ebay/types/seller_business_code.rb +12 -0
  691. data/lib/ebay/types/seller_contact_details_enabled_definition.rb +12 -0
  692. data/lib/ebay/types/seller_favorite_item_preferences.rb +19 -0
  693. data/lib/ebay/types/seller_guarantee_level_code.rb +13 -0
  694. data/lib/ebay/types/seller_level_code.rb +15 -0
  695. data/lib/ebay/types/seller_payment.rb +26 -0
  696. data/lib/ebay/types/seller_payment_method_code.rb +14 -0
  697. data/lib/ebay/types/seller_payment_preferences.rb +20 -0
  698. data/lib/ebay/types/selling_manager_product_details.rb +15 -0
  699. data/lib/ebay/types/selling_status.rb +26 -0
  700. data/lib/ebay/types/selling_summary.rb +19 -0
  701. data/lib/ebay/types/set_user_notes_action_code.rb +11 -0
  702. data/lib/ebay/types/severity_code.rb +11 -0
  703. data/lib/ebay/types/shipment.rb +39 -0
  704. data/lib/ebay/types/shipment_delivery_status_code.rb +16 -0
  705. data/lib/ebay/types/shipment_status_code.rb +11 -0
  706. data/lib/ebay/types/shipping_carrier_code.rb +16 -0
  707. data/lib/ebay/types/shipping_details.rb +43 -0
  708. data/lib/ebay/types/shipping_feature_code.rb +15 -0
  709. data/lib/ebay/types/shipping_location_details.rb +14 -0
  710. data/lib/ebay/types/shipping_option_code.rb +13 -0
  711. data/lib/ebay/types/shipping_package_code.rb +27 -0
  712. data/lib/ebay/types/shipping_rate_type_code.rb +11 -0
  713. data/lib/ebay/types/shipping_region_code.rb +23 -0
  714. data/lib/ebay/types/shipping_service_code.rb +433 -0
  715. data/lib/ebay/types/shipping_service_details.rb +20 -0
  716. data/lib/ebay/types/shipping_service_options.rb +21 -0
  717. data/lib/ebay/types/shipping_term_required_definition.rb +12 -0
  718. data/lib/ebay/types/shipping_terms_code.rb +11 -0
  719. data/lib/ebay/types/shipping_type_code.rb +16 -0
  720. data/lib/ebay/types/sifftas_recommendations.rb +14 -0
  721. data/lib/ebay/types/site_code.rb +34 -0
  722. data/lib/ebay/types/site_defaults.rb +43 -0
  723. data/lib/ebay/types/site_details.rb +14 -0
  724. data/lib/ebay/types/site_hosted_picture.rb +17 -0
  725. data/lib/ebay/types/site_id_filter_code.rb +14 -0
  726. data/lib/ebay/types/site_location.rb +13 -0
  727. data/lib/ebay/types/site_wide_characteristics.rb +15 -0
  728. data/lib/ebay/types/skype_contact_option_code.rb +11 -0
  729. data/lib/ebay/types/skype_me_non_transactional_enabled_definition.rb +12 -0
  730. data/lib/ebay/types/skype_me_transactional_enabled_definition.rb +12 -0
  731. data/lib/ebay/types/skype_option_code.rb +11 -0
  732. data/lib/ebay/types/sms_subscription.rb +17 -0
  733. data/lib/ebay/types/sms_subscription_error_code_code.rb +14 -0
  734. data/lib/ebay/types/sms_subscription_user_status_code.rb +13 -0
  735. data/lib/ebay/types/sort_order_code.rb +11 -0
  736. data/lib/ebay/types/spelling_suggestion.rb +14 -0
  737. data/lib/ebay/types/store.rb +34 -0
  738. data/lib/ebay/types/store_category_update_action_code.rb +13 -0
  739. data/lib/ebay/types/store_color.rb +15 -0
  740. data/lib/ebay/types/store_color_scheme.rb +18 -0
  741. data/lib/ebay/types/store_color_scheme_array.rb +14 -0
  742. data/lib/ebay/types/store_custom_category.rb +18 -0
  743. data/lib/ebay/types/store_custom_category_array.rb +14 -0
  744. data/lib/ebay/types/store_custom_header_layout_code.rb +11 -0
  745. data/lib/ebay/types/store_custom_listing_header.rb +20 -0
  746. data/lib/ebay/types/store_custom_listing_header_display_code.rb +12 -0
  747. data/lib/ebay/types/store_custom_listing_header_link.rb +15 -0
  748. data/lib/ebay/types/store_custom_listing_header_link_code.rb +13 -0
  749. data/lib/ebay/types/store_custom_page.rb +21 -0
  750. data/lib/ebay/types/store_custom_page_array.rb +14 -0
  751. data/lib/ebay/types/store_custom_page_status_code.rb +12 -0
  752. data/lib/ebay/types/store_font.rb +21 -0
  753. data/lib/ebay/types/store_font_face_code.rb +13 -0
  754. data/lib/ebay/types/store_font_size_code.rb +16 -0
  755. data/lib/ebay/types/store_header_style_code.rb +11 -0
  756. data/lib/ebay/types/store_inventory_enabled_definition.rb +12 -0
  757. data/lib/ebay/types/store_item_list_layout_code.rb +11 -0
  758. data/lib/ebay/types/store_item_list_sort_order_code.rb +13 -0
  759. data/lib/ebay/types/store_logo.rb +15 -0
  760. data/lib/ebay/types/store_logo_array.rb +14 -0
  761. data/lib/ebay/types/store_preferences.rb +14 -0
  762. data/lib/ebay/types/store_search_code.rb +13 -0
  763. data/lib/ebay/types/store_subscription.rb +14 -0
  764. data/lib/ebay/types/store_subscription_array.rb +14 -0
  765. data/lib/ebay/types/store_subscription_level_code.rb +13 -0
  766. data/lib/ebay/types/store_theme.rb +16 -0
  767. data/lib/ebay/types/store_theme_array.rb +16 -0
  768. data/lib/ebay/types/store_vacation_preferences.rb +19 -0
  769. data/lib/ebay/types/storefront.rb +16 -0
  770. data/lib/ebay/types/string_match_code.rb +11 -0
  771. data/lib/ebay/types/subscription.rb +15 -0
  772. data/lib/ebay/types/suggested_category.rb +15 -0
  773. data/lib/ebay/types/summary_event_schedule.rb +15 -0
  774. data/lib/ebay/types/summary_frequency_code.rb +49 -0
  775. data/lib/ebay/types/summary_window_period_code.rb +17 -0
  776. data/lib/ebay/types/supported_event_types_array.rb +13 -0
  777. data/lib/ebay/types/task_status_code.rb +13 -0
  778. data/lib/ebay/types/tax_jurisdiction.rb +16 -0
  779. data/lib/ebay/types/tcr_enabled_definition.rb +12 -0
  780. data/lib/ebay/types/theme_group.rb +16 -0
  781. data/lib/ebay/types/token_return_method_code.rb +11 -0
  782. data/lib/ebay/types/trading_role_code.rb +11 -0
  783. data/lib/ebay/types/transaction.rb +54 -0
  784. data/lib/ebay/types/transaction_platform.rb +11 -0
  785. data/lib/ebay/types/transaction_status.rb +18 -0
  786. data/lib/ebay/types/unit_code.rb +15 -0
  787. data/lib/ebay/types/ups_rate_option_code.rb +11 -0
  788. data/lib/ebay/types/url_details.rb +14 -0
  789. data/lib/ebay/types/url_type_code.rb +20 -0
  790. data/lib/ebay/types/user.rb +56 -0
  791. data/lib/ebay/types/user_consent_required_definition.rb +12 -0
  792. data/lib/ebay/types/user_id_array.rb +13 -0
  793. data/lib/ebay/types/user_id_filter.rb +14 -0
  794. data/lib/ebay/types/user_id_password.rb +17 -0
  795. data/lib/ebay/types/user_status_code.rb +26 -0
  796. data/lib/ebay/types/val.rb +15 -0
  797. data/lib/ebay/types/value_pack_enabled_definition.rb +12 -0
  798. data/lib/ebay/types/vat_details.rb +15 -0
  799. data/lib/ebay/types/vat_status_code.rb +12 -0
  800. data/lib/ebay/types/vendor_hosted_picture.rb +17 -0
  801. data/lib/ebay/types/verified_user_requirements.rb +14 -0
  802. data/lib/ebay/types/want_it_now_post.rb +19 -0
  803. data/lib/ebay/types/warning_level_code.rb +11 -0
  804. data/lib/ebay/types/wireless_carrier_id_code.rb +23 -0
  805. data/lib/ebay/types/xml_requester_credentials.rb +15 -0
  806. data/lib/ebay/types/xsl_file.rb +26 -0
  807. data/lib/ebay/types.rb +204 -0
  808. data/lib/ebay.rb +32 -0
  809. data/lib/support/cattr_accessor.rb +57 -0
  810. data/lib/support/core_ext/hash.rb +24 -0
  811. data/lib/support/core_ext/string.rb +21 -0
  812. data/lib/support/xml_mapping/cdata_node.rb +7 -0
  813. data/lib/support/xml_mapping/money_node.rb +22 -0
  814. data/lib/support/xml_mapping/time_node.rb +14 -0
  815. data/lib/support/xml_mapping/value_array_node.rb +8 -0
  816. data/lib/support/xml_mapping.rb +10 -0
  817. data/rakefile +130 -0
  818. data/test/credentials.rb +7 -0
  819. data/test/fixtures/notifications/ask_seller_question.xml +58 -0
  820. data/test/fixtures/notifications/invalid_signature.xml +333 -0
  821. data/test/fixtures/notifications/m2m_message1.xml +333 -0
  822. data/test/fixtures/notifications/no_soap_body.xml +10 -0
  823. data/test/fixtures/responses/get_attributes_cs.xml +93188 -0
  824. data/test/fixtures/responses/get_attributes_xsl.xml +3973 -0
  825. data/test/fixtures/responses/official_time_failure.xml +2 -0
  826. data/test/fixtures/responses/official_time_success.xml +2 -0
  827. data/test/fixtures/responses/official_time_warning.xml +2 -0
  828. data/test/fixtures/responses/verify_add_item.xml +2 -0
  829. data/test/fixtures/responses/verify_add_item_failure.xml +2 -0
  830. data/test/fixtures/templates/abstract_response.erb +3 -0
  831. data/test/fixtures/templates/base.erb +19 -0
  832. data/test/fixtures/templates/ebay_class.erb +14 -0
  833. data/test/http_mock.rb +48 -0
  834. data/test/test_helper.rb +27 -0
  835. data/test/unit/abstract_request_test.rb +20 -0
  836. data/test/unit/application_delivery_preferences_test.rb +21 -0
  837. data/test/unit/class_definition_test.rb +20 -0
  838. data/test/unit/config_test.rb +24 -0
  839. data/test/unit/core_ext_hash_test.rb +61 -0
  840. data/test/unit/core_ext_string_test.rb +93 -0
  841. data/test/unit/ebay_test.rb +63 -0
  842. data/test/unit/generate_from_xsd.rb +35 -0
  843. data/test/unit/get_attributes_cs_test.rb +15 -0
  844. data/test/unit/get_attributes_xsl.rb +18 -0
  845. data/test/unit/initializer_test.rb +84 -0
  846. data/test/unit/mapping_subclass_test.rb +24 -0
  847. data/test/unit/node_test.rb +113 -0
  848. data/test/unit/notification_signature_test.rb +14 -0
  849. data/test/unit/notifications_test.rb +52 -0
  850. data/test/unit/template_test.rb +70 -0
  851. data/test/unit/xml_mapping_cdata_node_test.rb +31 -0
  852. data/test/unit/xml_mapping_money_node_test.rb +28 -0
  853. data/test/unit/xml_mapping_test.rb +28 -0
  854. data/test/unit/xml_mapping_time_node_test.rb +37 -0
  855. data/test/unit/xml_mapping_value_array_node_test.rb +57 -0
  856. metadata +943 -0
@@ -0,0 +1,108 @@
1
+ module Ebay
2
+ module Schema
3
+ class ApiSchemaImporter
4
+ include RubyClassGeneratorHelper
5
+
6
+ attr_reader :complex_types, :simple_types
7
+
8
+ Ignores = [ 'RecipientRelationCodeType' ]
9
+
10
+ def initialize(schema)
11
+ @elements = schema.collect_elements
12
+ @elements.uniq!
13
+ @attributes = schema.collect_attributes
14
+ @attributes.uniq!
15
+ # Only want the simple types that have an enumeration (codes)
16
+ @simple_types = schema.collect_simpletypes
17
+ @simple_types.uniq!
18
+
19
+ @code_types = @simple_types.reject{ |e| e.restriction.enumeration.empty? || Ignores.include?(e.name.name) }
20
+
21
+ @complex_types = schema.collect_complextypes
22
+ @complex_types.uniq!
23
+ @fault_types = nil
24
+ if schema.respond_to?(:collect_faulttypes)
25
+ @fault_types = schema.collect_faulttypes
26
+ end
27
+
28
+ @unused_files = []
29
+ end
30
+
31
+ def export_classes(base_dir)
32
+ @base_dir = base_dir
33
+ write_classes
34
+ end
35
+
36
+ def write_classes
37
+
38
+ complex_classes = @complex_types.collect do |type|
39
+ puts "Generating class for #{type.name.name}"
40
+ RubyClassGenerator.new(type, @simple_types, @complex_types)
41
+ end
42
+
43
+ simple_classes = @code_types.collect do |type|
44
+ puts "Generating simple type class for #{type.name.name}"
45
+ RubyClassGenerator.new(type, @simple_types, @complex_types)
46
+ end
47
+
48
+
49
+ write_requires_files(complex_classes)
50
+ write_class_files(complex_classes)
51
+
52
+ write_class_files(simple_classes)
53
+ write_requires_file('types', simple_classes)
54
+ remove_unused_files
55
+ end
56
+
57
+ private
58
+ def write_class_files(classes)
59
+ classes.each do |klass|
60
+ write_class(klass)
61
+ end
62
+ end
63
+
64
+ def write_requires_files(classes)
65
+ requests = classes.select{|c| c.request?}
66
+ responses = classes.select{|c| c.response?}
67
+ types = classes.select{|c| c.type?}
68
+
69
+ write_requires_file('requests', requests, true)
70
+ write_requires_file('responses', requests, true)
71
+ end
72
+
73
+ def write_requires_file(name, classes, add_abstract = false)
74
+ prefix = "ebay/#{name}"
75
+ File.open("#{@base_dir}/#{name}.rb", 'w') do |file|
76
+ file.puts require_statement("#{prefix}/abstract") if add_abstract
77
+ file.puts classes.inject(''){|memo, c| memo << require_statement("#{prefix}/#{c.name.gsub(/(Request|Response)$/, '').ebay_underscore}")}
78
+ end
79
+ end
80
+
81
+ def write_class(klass)
82
+ File.open(generate_filename(klass.name, klass.module_name, klass.type? && !klass.abstract?), "w") do |file|
83
+ file.puts klass.to_s
84
+ @unused_files.concat(klass.ignored_classes.collect{|c| generate_filename(c, 'types', true)})
85
+ end
86
+ end
87
+
88
+ def generate_filename(name, module_name, simple)
89
+ name = name.gsub(/Type$/,'')
90
+ name.gsub!(/(Response|Request)$/, '') unless simple
91
+
92
+ "#{@base_dir}/#{module_name.downcase}/#{name.ebay_underscore}.rb"
93
+ end
94
+
95
+ def remove_unused_files
96
+ @unused_files.uniq!.each do |file|
97
+ if File.exists?(file)
98
+ puts "Removing #{file}"
99
+ File.delete(file)
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+
107
+
108
+
@@ -0,0 +1,30 @@
1
+ module Ebay
2
+ module Schema
3
+ class Enumeration
4
+ attr_accessor :codes
5
+ def initialize(codes = [])
6
+ codes.delete('CustomCode')
7
+ @codes = codes
8
+ end
9
+
10
+ def to_s
11
+ <<-END
12
+ CODES = #{@codes.inspect}
13
+
14
+
15
+ class << self
16
+ def codes
17
+ CODES
18
+ end
19
+
20
+ CODES.each do |code|
21
+ define_method(code.ebay_underscore) do
22
+ new(code)
23
+ end
24
+ end
25
+ end
26
+ END
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ module Ebay
2
+ module Schema
3
+ class EnumerationValidation
4
+ def to_s
5
+ <<-END
6
+ def valid?
7
+ CODES.include?(@code)
8
+ end
9
+
10
+ def self.valid?(code)
11
+ CODES.include?(code)
12
+ end
13
+ END
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,153 @@
1
+ module Ebay
2
+ module Schema
3
+ class Node
4
+ class_inheritable_accessor :override_type
5
+
6
+ attr_accessor :name, :min, :max
7
+ def initialize(name, attributes = {})
8
+ @name = name
9
+ @type = attributes[:type]
10
+ @min = attributes[:min] || "1"
11
+ @max = attributes[:max] || "1"
12
+ @field = attributes[:field]
13
+ @child = attributes[:child]
14
+ end
15
+
16
+ def optional?
17
+ @min == "0"
18
+ end
19
+
20
+ def accessor_name
21
+ name = @name.ebay_underscore
22
+ if name =~ /_array$/
23
+ name.gsub!(/_array$/, '')
24
+ Inflector.pluralize(name)
25
+ else
26
+ name
27
+ end
28
+ end
29
+
30
+ def xml_mapping_node_type
31
+ override_type || Inflector.demodulize(self.class.to_s).underscore
32
+ end
33
+
34
+ def declaration
35
+ "#{xml_mapping_node_type} :#{accessor_name}"
36
+ end
37
+
38
+ private
39
+ def clean_class_name(name)
40
+ trim_namespace(name.gsub(/Type$/, '')).camelize
41
+ end
42
+
43
+ def trim_name(type)
44
+ type.gsub(/Type$/,'')
45
+ end
46
+
47
+ def trim_namespace(name)
48
+ name.gsub(/^.*:/,'')
49
+ end
50
+ end
51
+
52
+ class TextNode < Node
53
+ def to_s
54
+ result = "#{declaration}, "
55
+ result << (@field.nil? ? "'#{@name}'" : "'#{@field}'")
56
+ result << ', :optional => true' if optional?
57
+ if @name == 'Type'
58
+ result += <<-ENDMETHOD
59
+
60
+ def type
61
+ @type
62
+ end
63
+ ENDMETHOD
64
+ end
65
+ result
66
+ end
67
+ end
68
+
69
+ class CdataNode < TextNode
70
+ end
71
+
72
+ class BooleanNode < Node
73
+ def to_s
74
+ result = "#{declaration}, '#{@name}', 'true', 'false'"
75
+ result << ', :optional => true' if @min == '0'
76
+ result
77
+ end
78
+ end
79
+
80
+ class NumericNode < Node
81
+ def to_s
82
+ result = "#{declaration}, "
83
+ result << (@field.nil? ? "'#{@name}'" : "'#{@field}'")
84
+ result << ', :optional => true' if optional?
85
+ result
86
+ end
87
+ end
88
+
89
+ class DateTimeNode < TextNode
90
+ self.override_type = 'time_node'
91
+ end
92
+
93
+ class ValueArrayNode < Node
94
+ def to_s
95
+ result = "#{declaration.pluralize}, '#{@name}', "
96
+ result << "'#{@child}', " if @child
97
+ result << ":default_value => []"
98
+ end
99
+ end
100
+
101
+ class ArrayNode < Node
102
+ def class_name
103
+ clean_class_name(@type)
104
+ end
105
+
106
+ def to_s
107
+ result = "#{declaration.pluralize}, '#{@name}', "
108
+ result << "'#{@child}', " if @child
109
+ result << ":class => #{class_name}, :default_value => []"
110
+ end
111
+ end
112
+
113
+ class MoneyNode < Node
114
+ def to_s
115
+ result = "#{declaration}, '#{@name}'"
116
+ result << ', :optional => true' if @min == '0'
117
+ result
118
+ end
119
+ end
120
+
121
+ class ValueNode < Node
122
+ def class_name
123
+ clean_class_name(@type)
124
+ end
125
+
126
+ def to_s
127
+ result = "#{declaration}, '#{@name}', :class => #{class_name}"
128
+ result << ', :optional => true' if @min == '0'
129
+ result
130
+ end
131
+ end
132
+
133
+ class ObjectNode < Node
134
+ def class_name
135
+ clean_class_name(@type)
136
+ end
137
+
138
+ def to_s
139
+ result = "#{declaration}, '#{@name}', :class => #{class_name}"
140
+ result << ', :optional => true' if @min == '0'
141
+ if @name == 'Type'
142
+ result += <<-ENDMETHOD
143
+
144
+ def type
145
+ @type.code
146
+ end
147
+ ENDMETHOD
148
+ end
149
+ result
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,16 @@
1
+ require 'xsd/qname'
2
+ require 'xsd/ns'
3
+ require 'xsd/charset'
4
+ require 'xsd/datatypes'
5
+ require 'xsd/xmlparser'
6
+ require 'wsdl/xmlSchema/parser'
7
+
8
+ module Ebay
9
+ module Schema
10
+ class Parser
11
+ def self.parse(string_or_readable)
12
+ WSDL::XMLSchema::Parser.new.parse(string_or_readable)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,273 @@
1
+ module Ebay
2
+ module Schema
3
+ class RubyClassGenerator
4
+ include RubyClassGeneratorHelper
5
+ BuiltInTypes = ['string', 'anyURI', 'int', 'float', 'long', 'dateTime', 'boolean', 'token', 'decimal', 'duration', 'double']
6
+
7
+ attr_reader :ignored_classes
8
+
9
+ def initialize(type, simple_types, complex_types)
10
+ @indent = 2
11
+ @type = type
12
+ @simple_types, @complex_types = simple_types, complex_types
13
+ @ignored_classes = []
14
+ find_base
15
+ end
16
+
17
+ def simple_content?
18
+ @type.simplecontent
19
+ end
20
+
21
+ def simple?
22
+ @type.is_a?(WSDL::XMLSchema::SimpleType)
23
+ end
24
+
25
+ def complex?
26
+ @type.is_a?(WSDL::XMLSchema::ComplexType)
27
+ end
28
+
29
+ def to_s
30
+ @class_def ||= generate_class
31
+ end
32
+
33
+ def generate_class
34
+
35
+ template = simple? ? 'value' : 'base'
36
+ base = ClassTemplate.new(template).load
37
+
38
+ customization = ClassTemplate.new(name.ebay_underscore)
39
+ customization.load if customization.exists?
40
+
41
+ if request? || response?
42
+ class_name = name.ebay_camelize.gsub(/(Request|Response)$/, '')
43
+ else
44
+ class_name = name.ebay_camelize
45
+ end
46
+
47
+ element_name = name.ebay_camelize
48
+
49
+
50
+ class_def = ClassDefinition.new(class_name, element_name, module_name, base_class)
51
+ nodes = generate_nodes
52
+
53
+ class_def.nodes.concat nodes
54
+
55
+ class_def.customization = customization.render(class_def) if customization.exists?
56
+
57
+ base.render(class_def)
58
+ end
59
+
60
+ def name
61
+ @name ||= trim_type(@type.name.name)
62
+ end
63
+
64
+ def base_class
65
+ if abstract_request? || abstract_response?
66
+ 'Base'
67
+ else
68
+ trim_type(@base.name.name) unless @base.nil?
69
+ end
70
+ end
71
+
72
+ def type?
73
+ !(derived_request? || derived_response?)
74
+ end
75
+
76
+ def abstract?
77
+ abstract_request? || abstract_response?
78
+ end
79
+
80
+ def abstract_request?
81
+ name == 'AbstractRequest'
82
+ end
83
+
84
+ def abstract_response?
85
+ name == 'AbstractResponse'
86
+ end
87
+
88
+ def module_name
89
+ if request?
90
+ 'Requests'
91
+ elsif response?
92
+ 'Responses'
93
+ else
94
+ 'Types'
95
+ end
96
+ end
97
+
98
+ def request?
99
+ abstract_request? || derived_request?
100
+ end
101
+
102
+ def response?
103
+ abstract_response? || derived_response?
104
+ end
105
+
106
+ def derived_request?
107
+ base_class == 'AbstractRequest'
108
+ end
109
+
110
+ def derived_response?
111
+ base_class == 'AbstractResponse'
112
+ end
113
+
114
+
115
+ private
116
+ def select_template
117
+ # First try and load a template for the class
118
+ template = ClassTemplate.new(name.ebay_underscore)
119
+ if !template.exists?
120
+ template = ClassTemplate.new('ebay_class')
121
+ end
122
+ template.load
123
+ end
124
+
125
+ def find_base
126
+ type = @type.complexcontent.extension.base
127
+ @base = @complex_types.find_name(type.name) unless type.nil?
128
+ rescue NoMethodError
129
+ end
130
+
131
+ def non_inherited_elements
132
+ return @type.elements if @base.nil?
133
+
134
+ @type.elements.reject do |e|
135
+ @base.find_element(e.name)
136
+ end
137
+ end
138
+
139
+ def generate_nodes
140
+ if simple?
141
+ enumeration = @type.restriction.enumeration
142
+ if enumeration.any?
143
+ @type.restriction.enumeration.select{|c| c != 'CustomCode'}
144
+ end
145
+ elsif simple_content?
146
+ content = @type.simplecontent
147
+ result = []
148
+ result << build_node_for_built_in_type(trim_type(name), content.extension.base.name, :field => '', :min => '0')
149
+
150
+ result.concat(content.attributes.collect do |a|
151
+ TextNode.new(trim_code_type(a.type.name), :field => "@#{a.name.name}", :min => '0')
152
+ end)
153
+ result
154
+ else
155
+ result = nodes_for_complex_elements
156
+ result.concat nodes_for_complex_attributes
157
+ end
158
+ end
159
+
160
+ def nodes_for_complex_elements
161
+ begin
162
+ non_inherited_elements.collect do |e|
163
+ node_for(e)
164
+ end.flatten
165
+ rescue NoMethodError
166
+ # Hack for when the type doesn't respond to elements
167
+ @type.complexcontent.content.content.elements.collect do |e|
168
+ node_for(e)
169
+ end.flatten
170
+ end
171
+ end
172
+
173
+ def nodes_for_complex_attributes
174
+ @type.attributes.collect do |a|
175
+ build_node_for_built_in_type(trim_code_type(a.name.name), a.type.name, :field => "@#{a.name.name}", :min => '0')
176
+ end
177
+ end
178
+
179
+ def generate_require_statements
180
+ result = ''
181
+ result << @nodes.inject('') do |memo, node|
182
+ if node.respond_to?(:class_name)
183
+ memo << require_statement(node.class_name.ebay_underscore)
184
+ else
185
+ memo
186
+ end
187
+ end
188
+
189
+ result << "\n"
190
+ end
191
+
192
+ def node_for(element)
193
+ name = element.name.name
194
+ type = element.type.name
195
+ min = element.minoccurs || "1"
196
+ max = element.maxoccurs || "1"
197
+
198
+ options = { :type => type,
199
+ :min => min,
200
+ :max => max
201
+ }
202
+
203
+ if BuiltInTypes.include?(type)
204
+ build_node_for_built_in_type(name, type, options)
205
+ else
206
+ build_node_for_complex_type(name, type, options)
207
+ end
208
+ end
209
+
210
+ def build_node_for_built_in_type(name, type, options)
211
+ case type
212
+ when 'string'
213
+ if self.name == 'Item' && name == 'Description'
214
+ CdataNode.new(name, options)
215
+ else
216
+ TextNode.new(name, options)
217
+ end
218
+ when 'anyURI', 'token', 'duration'
219
+ TextNode.new(name, options)
220
+ when 'int', 'float', 'long', 'decimal', 'double'
221
+ NumericNode.new(name, options)
222
+ when 'dateTime'
223
+ DateTimeNode.new(name, options)
224
+ when 'boolean'
225
+ BooleanNode.new(name, options)
226
+ end
227
+ end
228
+
229
+ def build_node_for_complex_type(name, type, options)
230
+ min, max = options[:min], options[:max]
231
+ simple_type = @simple_types.find_name(type)
232
+
233
+ case max
234
+ when "1"
235
+ if simple_type
236
+ TextNode.new(name, options)
237
+ elsif element = @complex_types.find_name(type)
238
+ if element.elements.size == 1 && element.elements[0].maxoccurs == "unbounded"
239
+ # Found a container!
240
+ child = element.elements[0]
241
+
242
+ ignored = %w( MemberMessage BidApproval )
243
+
244
+ unless BuiltInTypes.include?(child.type.name)
245
+ @ignored_classes << name unless ignored.include?(name)
246
+ options[:type] = child.type.name
247
+ options[:child] = child.name.name
248
+ end
249
+
250
+ if simple_type = @simple_types.find_name(child.type.name)
251
+ ValueArrayNode.new(name, options)
252
+ else
253
+ ArrayNode.new(name, options)
254
+ end
255
+ else
256
+ if type == 'AmountType'
257
+ MoneyNode.new(name, options)
258
+ else
259
+ ObjectNode.new(name, options)
260
+ end
261
+ end
262
+ end
263
+ else
264
+ if simple_type
265
+ ValueArrayNode.new(name, options)
266
+ else
267
+ ArrayNode.new(name, options)
268
+ end
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
@@ -0,0 +1,52 @@
1
+ module Ebay
2
+ module Schema
3
+ module RubyClassGeneratorHelper
4
+ private
5
+ def trim_type(type)
6
+ type.gsub(/Type$/, '')
7
+ end
8
+
9
+ def trim_code_type(type)
10
+ type.gsub(/CodeType$/, '')
11
+ end
12
+
13
+ def require_statement(library_name)
14
+ "require '#{library_name}'\n"
15
+ end
16
+
17
+ def include_module(module_name)
18
+ "include #{module_name}\n"
19
+ end
20
+
21
+ def define_module(name)
22
+ result = ''
23
+ result << "module #{name}\n"
24
+ result << indent("#{yield}\n")
25
+ result << "end"
26
+ end
27
+
28
+ def define_class(name, superclass)
29
+ # result = ''
30
+ result = "class #{trim_type(name).ebay_camelize}"
31
+ result << " < #{trim_type(superclass)}" unless superclass.nil?
32
+ # case name
33
+ # when /RequestType$/
34
+ # result << " < AbstractRequest"
35
+ # when /ResponseType$/
36
+ # result << " < AbstractResponse"
37
+ # end
38
+
39
+ result << "\n"
40
+ result << indent("#{yield}\n")
41
+ result << "end"
42
+ end
43
+
44
+ def indent(text)
45
+ ass #{trim_type(name).ebay_camelize}"
46
+ text.collect{|line| ' ' * @indent + line}.join('')
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+
@@ -0,0 +1,15 @@
1
+ require 'mapper/parser'
2
+ require 'mapper/enumeration'
3
+ require 'mapper/enumeration_validation'
4
+ require 'mapper/node'
5
+ require 'mapper/ruby_class_generator_helper'
6
+ require 'mapper/ruby_class_generator'
7
+ require 'mapper/ebay_schema_importer'
8
+ require 'mapper/xsd2ebay'
9
+
10
+ module Ebay
11
+ module Schema
12
+ Namespace = 'urn:ebay:apis:eBLBaseComponents'
13
+ end
14
+ end
15
+
@@ -0,0 +1,7 @@
1
+ def detail_level
2
+ @detail_levels.first
3
+ end
4
+
5
+ def detail_level=(value)
6
+ @detail_levels = Array(value)
7
+ end
@@ -0,0 +1,7 @@
1
+ def application_enabled?
2
+ @application_enable == 'Enable'
3
+ end
4
+
5
+ def alerts_enabled?
6
+ @alert_enable == 'Enable'
7
+ end
@@ -0,0 +1,21 @@
1
+ <% for req in requires -%>
2
+ <%= "require 'ebay/types/#{req}'" %>
3
+ <% end -%>
4
+
5
+ module Ebay
6
+ module <%= module_name %>
7
+ class <%= class_definition %>
8
+ include XML::Mapping
9
+ include Initializer
10
+ root_element_name '<%= element_name %>'
11
+ <% for node in nodes -%>
12
+ <%= node.to_s %>
13
+ <% end -%>
14
+ <% for line in customization -%>
15
+ <%= line.chomp %>
16
+ <% end -%>
17
+ end
18
+ end
19
+ end
20
+
21
+