google-dfp-api 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. data/ChangeLog +3 -0
  2. data/README +2 -2
  3. data/examples/v201206/audience_segment_service/get_all_audience_segments.rb +93 -0
  4. data/examples/v201206/common/error_handling.rb +76 -0
  5. data/examples/v201206/common/oauth2_handling.rb +128 -0
  6. data/examples/v201206/common/oauth_handling.rb +131 -0
  7. data/examples/v201206/company_service/create_companies.rb +81 -0
  8. data/examples/v201206/company_service/get_all_companies.rb +92 -0
  9. data/examples/v201206/company_service/get_companies_by_statement.rb +88 -0
  10. data/examples/v201206/company_service/get_company.rb +72 -0
  11. data/examples/v201206/company_service/update_companies.rb +95 -0
  12. data/examples/v201206/content_service/get_all_content.rb +94 -0
  13. data/examples/v201206/content_service/get_content_by_category.rb +136 -0
  14. data/examples/v201206/creative_service/copy_image_creatives.rb +115 -0
  15. data/examples/v201206/creative_service/create_creative_from_template.rb +139 -0
  16. data/examples/v201206/creative_service/create_creatives.rb +106 -0
  17. data/examples/v201206/creative_service/create_custom_creative.rb +104 -0
  18. data/examples/v201206/creative_service/get_all_creatives.rb +93 -0
  19. data/examples/v201206/creative_service/get_creative.rb +72 -0
  20. data/examples/v201206/creative_service/get_creatives_by_statement.rb +87 -0
  21. data/examples/v201206/creative_service/update_creatives.rb +96 -0
  22. data/examples/v201206/creative_set_service/create_creative_set.rb +83 -0
  23. data/examples/v201206/creative_set_service/get_all_creative_sets.rb +94 -0
  24. data/examples/v201206/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  25. data/examples/v201206/creative_set_service/update_creative_sets.rb +85 -0
  26. data/examples/v201206/creative_template_service/get_all_creative_templates.rb +94 -0
  27. data/examples/v201206/creative_template_service/get_creative_template.rb +74 -0
  28. data/examples/v201206/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  29. data/examples/v201206/custom_field_service/create_custom_field_options.rb +87 -0
  30. data/examples/v201206/custom_field_service/create_custom_fields.rb +86 -0
  31. data/examples/v201206/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  32. data/examples/v201206/custom_field_service/get_all_custom_fields.rb +102 -0
  33. data/examples/v201206/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  34. data/examples/v201206/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  35. data/examples/v201206/custom_field_service/update_custom_fields.rb +83 -0
  36. data/examples/v201206/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  37. data/examples/v201206/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  38. data/examples/v201206/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  39. data/examples/v201206/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  40. data/examples/v201206/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  41. data/examples/v201206/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  42. data/examples/v201206/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  43. data/examples/v201206/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  44. data/examples/v201206/forecast_service/get_forecast.rb +107 -0
  45. data/examples/v201206/forecast_service/get_forecast_by_id.rb +80 -0
  46. data/examples/v201206/inventory_service/create_ad_units.rb +101 -0
  47. data/examples/v201206/inventory_service/create_mobile_ad_unit.rb +100 -0
  48. data/examples/v201206/inventory_service/create_video_ad_unit.rb +108 -0
  49. data/examples/v201206/inventory_service/deactivate_ad_units.rb +119 -0
  50. data/examples/v201206/inventory_service/get_ad_unit.rb +72 -0
  51. data/examples/v201206/inventory_service/get_ad_unit_sizes.rb +85 -0
  52. data/examples/v201206/inventory_service/get_ad_units_by_statement.rb +96 -0
  53. data/examples/v201206/inventory_service/get_all_ad_units.rb +93 -0
  54. data/examples/v201206/inventory_service/update_ad_units.rb +94 -0
  55. data/examples/v201206/label_service/create_labels.rb +83 -0
  56. data/examples/v201206/label_service/deactivate_labels.rb +118 -0
  57. data/examples/v201206/label_service/get_all_labels.rb +95 -0
  58. data/examples/v201206/label_service/get_label.rb +76 -0
  59. data/examples/v201206/label_service/get_labels_by_statement.rb +81 -0
  60. data/examples/v201206/label_service/update_labels.rb +102 -0
  61. data/examples/v201206/line_item_creative_association_service/create_licas.rb +94 -0
  62. data/examples/v201206/line_item_creative_association_service/deactivate_licas.rb +127 -0
  63. data/examples/v201206/line_item_creative_association_service/get_all_licas.rb +95 -0
  64. data/examples/v201206/line_item_creative_association_service/get_lica.rb +77 -0
  65. data/examples/v201206/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  66. data/examples/v201206/line_item_creative_association_service/update_licas.rb +91 -0
  67. data/examples/v201206/line_item_service/activate_line_items.rb +131 -0
  68. data/examples/v201206/line_item_service/create_line_items.rb +177 -0
  69. data/examples/v201206/line_item_service/create_mobile_line_item.rb +135 -0
  70. data/examples/v201206/line_item_service/create_video_line_item.rb +156 -0
  71. data/examples/v201206/line_item_service/get_all_line_items.rb +94 -0
  72. data/examples/v201206/line_item_service/get_line_item.rb +74 -0
  73. data/examples/v201206/line_item_service/get_line_items_by_statement.rb +93 -0
  74. data/examples/v201206/line_item_service/get_recently_updated_line_items.rb +98 -0
  75. data/examples/v201206/line_item_service/target_custom_criteria.rb +129 -0
  76. data/examples/v201206/line_item_service/update_line_items.rb +109 -0
  77. data/examples/v201206/network_service/get_all_networks.rb +74 -0
  78. data/examples/v201206/network_service/get_current_network.rb +66 -0
  79. data/examples/v201206/network_service/make_test_network.rb +76 -0
  80. data/examples/v201206/order_service/approve_orders.rb +122 -0
  81. data/examples/v201206/order_service/create_orders.rb +92 -0
  82. data/examples/v201206/order_service/get_all_orders.rb +93 -0
  83. data/examples/v201206/order_service/get_order.rb +74 -0
  84. data/examples/v201206/order_service/get_orders_by_statement.rb +90 -0
  85. data/examples/v201206/order_service/update_orders.rb +95 -0
  86. data/examples/v201206/placement_service/create_placements.rb +131 -0
  87. data/examples/v201206/placement_service/deactivate_placements.rb +118 -0
  88. data/examples/v201206/placement_service/get_all_placements.rb +93 -0
  89. data/examples/v201206/placement_service/get_placement.rb +74 -0
  90. data/examples/v201206/placement_service/get_placements_by_statement.rb +86 -0
  91. data/examples/v201206/placement_service/update_placements.rb +97 -0
  92. data/examples/v201206/publisher_query_language_service/get_all_cities.rb +90 -0
  93. data/examples/v201206/report_service/download_report.rb +81 -0
  94. data/examples/v201206/report_service/run_delivery_report.rb +103 -0
  95. data/examples/v201206/report_service/run_inventory_report.rb +97 -0
  96. data/examples/v201206/report_service/run_merged_delivery_report.rb +94 -0
  97. data/examples/v201206/report_service/run_sales_report.rb +92 -0
  98. data/examples/v201206/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  99. data/examples/v201206/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  100. data/examples/v201206/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  101. data/examples/v201206/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  102. data/examples/v201206/team_service/create_teams.rb +83 -0
  103. data/examples/v201206/team_service/get_all_teams.rb +92 -0
  104. data/examples/v201206/team_service/get_team.rb +74 -0
  105. data/examples/v201206/team_service/get_teams_by_statement.rb +78 -0
  106. data/examples/v201206/team_service/update_teams.rb +95 -0
  107. data/examples/v201206/third_party_slot_service/archive_third_party_slots.rb +125 -0
  108. data/examples/v201206/third_party_slot_service/create_third_party_slot.rb +91 -0
  109. data/examples/v201206/third_party_slot_service/get_all_third_party_slots.rb +93 -0
  110. data/examples/v201206/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
  111. data/examples/v201206/third_party_slot_service/update_third_party_slots.rb +95 -0
  112. data/examples/v201206/user_service/create_users.rb +89 -0
  113. data/examples/v201206/user_service/deactivate_users.rb +97 -0
  114. data/examples/v201206/user_service/get_all_roles.rb +73 -0
  115. data/examples/v201206/user_service/get_all_users.rb +93 -0
  116. data/examples/v201206/user_service/get_current_user.rb +66 -0
  117. data/examples/v201206/user_service/get_user.rb +73 -0
  118. data/examples/v201206/user_service/get_users_by_statement.rb +79 -0
  119. data/examples/v201206/user_service/update_users.rb +89 -0
  120. data/examples/v201206/user_team_association_service/create_user_team_associations.rb +86 -0
  121. data/examples/v201206/user_team_association_service/delete_user_team_associations.rb +111 -0
  122. data/examples/v201206/user_team_association_service/get_all_user_team_associations.rb +94 -0
  123. data/examples/v201206/user_team_association_service/get_user_team_association.rb +76 -0
  124. data/examples/v201206/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  125. data/examples/v201206/user_team_association_service/update_user_team_associations.rb +102 -0
  126. data/lib/dfp_api/api_config.rb +14 -4
  127. data/lib/dfp_api/v201108/company_service.rb +1 -1
  128. data/lib/dfp_api/v201108/company_service_registry.rb +1 -1
  129. data/lib/dfp_api/v201108/creative_service.rb +1 -1
  130. data/lib/dfp_api/v201108/creative_service_registry.rb +1 -1
  131. data/lib/dfp_api/v201108/custom_targeting_service.rb +1 -1
  132. data/lib/dfp_api/v201108/custom_targeting_service_registry.rb +1 -1
  133. data/lib/dfp_api/v201108/forecast_service.rb +1 -1
  134. data/lib/dfp_api/v201108/forecast_service_registry.rb +1 -1
  135. data/lib/dfp_api/v201108/inventory_service.rb +1 -1
  136. data/lib/dfp_api/v201108/inventory_service_registry.rb +1 -1
  137. data/lib/dfp_api/v201108/label_service.rb +1 -1
  138. data/lib/dfp_api/v201108/label_service_registry.rb +1 -1
  139. data/lib/dfp_api/v201108/line_item_creative_association_service.rb +1 -1
  140. data/lib/dfp_api/v201108/line_item_creative_association_service_registry.rb +1 -1
  141. data/lib/dfp_api/v201108/line_item_service.rb +1 -1
  142. data/lib/dfp_api/v201108/line_item_service_registry.rb +1 -1
  143. data/lib/dfp_api/v201108/network_service.rb +1 -1
  144. data/lib/dfp_api/v201108/network_service_registry.rb +1 -1
  145. data/lib/dfp_api/v201108/order_service.rb +1 -1
  146. data/lib/dfp_api/v201108/order_service_registry.rb +1 -1
  147. data/lib/dfp_api/v201108/placement_service.rb +1 -1
  148. data/lib/dfp_api/v201108/placement_service_registry.rb +1 -1
  149. data/lib/dfp_api/v201108/publisher_query_language_service.rb +1 -1
  150. data/lib/dfp_api/v201108/publisher_query_language_service_registry.rb +1 -1
  151. data/lib/dfp_api/v201108/report_service.rb +1 -1
  152. data/lib/dfp_api/v201108/report_service_registry.rb +1 -1
  153. data/lib/dfp_api/v201108/third_party_slot_service.rb +1 -1
  154. data/lib/dfp_api/v201108/third_party_slot_service_registry.rb +1 -1
  155. data/lib/dfp_api/v201108/user_service.rb +1 -1
  156. data/lib/dfp_api/v201108/user_service_registry.rb +1 -1
  157. data/lib/dfp_api/v201111/company_service.rb +1 -1
  158. data/lib/dfp_api/v201111/company_service_registry.rb +1 -1
  159. data/lib/dfp_api/v201111/content_service.rb +1 -1
  160. data/lib/dfp_api/v201111/content_service_registry.rb +1 -1
  161. data/lib/dfp_api/v201111/creative_service.rb +1 -1
  162. data/lib/dfp_api/v201111/creative_service_registry.rb +1 -1
  163. data/lib/dfp_api/v201111/creative_template_service.rb +1 -1
  164. data/lib/dfp_api/v201111/creative_template_service_registry.rb +1 -1
  165. data/lib/dfp_api/v201111/custom_targeting_service.rb +1 -1
  166. data/lib/dfp_api/v201111/custom_targeting_service_registry.rb +1 -1
  167. data/lib/dfp_api/v201111/forecast_service.rb +1 -1
  168. data/lib/dfp_api/v201111/forecast_service_registry.rb +1 -1
  169. data/lib/dfp_api/v201111/inventory_service.rb +1 -1
  170. data/lib/dfp_api/v201111/inventory_service_registry.rb +1 -1
  171. data/lib/dfp_api/v201111/label_service.rb +1 -1
  172. data/lib/dfp_api/v201111/label_service_registry.rb +1 -1
  173. data/lib/dfp_api/v201111/line_item_creative_association_service.rb +1 -1
  174. data/lib/dfp_api/v201111/line_item_creative_association_service_registry.rb +1 -1
  175. data/lib/dfp_api/v201111/line_item_service.rb +1 -1
  176. data/lib/dfp_api/v201111/line_item_service_registry.rb +1 -1
  177. data/lib/dfp_api/v201111/network_service.rb +1 -1
  178. data/lib/dfp_api/v201111/network_service_registry.rb +1 -1
  179. data/lib/dfp_api/v201111/order_service.rb +1 -1
  180. data/lib/dfp_api/v201111/order_service_registry.rb +1 -1
  181. data/lib/dfp_api/v201111/placement_service.rb +1 -1
  182. data/lib/dfp_api/v201111/placement_service_registry.rb +1 -1
  183. data/lib/dfp_api/v201111/publisher_query_language_service.rb +1 -1
  184. data/lib/dfp_api/v201111/publisher_query_language_service_registry.rb +1 -1
  185. data/lib/dfp_api/v201111/report_service.rb +1 -1
  186. data/lib/dfp_api/v201111/report_service_registry.rb +1 -1
  187. data/lib/dfp_api/v201111/suggested_ad_unit_service.rb +1 -1
  188. data/lib/dfp_api/v201111/suggested_ad_unit_service_registry.rb +1 -1
  189. data/lib/dfp_api/v201111/third_party_slot_service.rb +1 -1
  190. data/lib/dfp_api/v201111/third_party_slot_service_registry.rb +1 -1
  191. data/lib/dfp_api/v201111/user_service.rb +1 -1
  192. data/lib/dfp_api/v201111/user_service_registry.rb +1 -1
  193. data/lib/dfp_api/v201201/company_service.rb +1 -1
  194. data/lib/dfp_api/v201201/company_service_registry.rb +1 -1
  195. data/lib/dfp_api/v201201/content_service.rb +1 -1
  196. data/lib/dfp_api/v201201/content_service_registry.rb +1 -1
  197. data/lib/dfp_api/v201201/creative_service.rb +1 -1
  198. data/lib/dfp_api/v201201/creative_service_registry.rb +1 -1
  199. data/lib/dfp_api/v201201/creative_template_service.rb +1 -1
  200. data/lib/dfp_api/v201201/creative_template_service_registry.rb +1 -1
  201. data/lib/dfp_api/v201201/custom_targeting_service.rb +1 -1
  202. data/lib/dfp_api/v201201/custom_targeting_service_registry.rb +1 -1
  203. data/lib/dfp_api/v201201/forecast_service.rb +1 -1
  204. data/lib/dfp_api/v201201/forecast_service_registry.rb +1 -1
  205. data/lib/dfp_api/v201201/inventory_service.rb +1 -1
  206. data/lib/dfp_api/v201201/inventory_service_registry.rb +1 -1
  207. data/lib/dfp_api/v201201/label_service.rb +1 -1
  208. data/lib/dfp_api/v201201/label_service_registry.rb +1 -1
  209. data/lib/dfp_api/v201201/line_item_creative_association_service.rb +1 -1
  210. data/lib/dfp_api/v201201/line_item_creative_association_service_registry.rb +1 -1
  211. data/lib/dfp_api/v201201/line_item_service.rb +1 -1
  212. data/lib/dfp_api/v201201/line_item_service_registry.rb +1 -1
  213. data/lib/dfp_api/v201201/network_service.rb +1 -1
  214. data/lib/dfp_api/v201201/network_service_registry.rb +1 -1
  215. data/lib/dfp_api/v201201/order_service.rb +1 -1
  216. data/lib/dfp_api/v201201/order_service_registry.rb +1 -1
  217. data/lib/dfp_api/v201201/placement_service.rb +1 -1
  218. data/lib/dfp_api/v201201/placement_service_registry.rb +1 -1
  219. data/lib/dfp_api/v201201/publisher_query_language_service.rb +1 -1
  220. data/lib/dfp_api/v201201/publisher_query_language_service_registry.rb +1 -1
  221. data/lib/dfp_api/v201201/report_service.rb +1 -1
  222. data/lib/dfp_api/v201201/report_service_registry.rb +1 -1
  223. data/lib/dfp_api/v201201/suggested_ad_unit_service.rb +1 -1
  224. data/lib/dfp_api/v201201/suggested_ad_unit_service_registry.rb +1 -1
  225. data/lib/dfp_api/v201201/team_service.rb +1 -1
  226. data/lib/dfp_api/v201201/team_service_registry.rb +1 -1
  227. data/lib/dfp_api/v201201/third_party_slot_service.rb +1 -1
  228. data/lib/dfp_api/v201201/third_party_slot_service_registry.rb +1 -1
  229. data/lib/dfp_api/v201201/user_service.rb +1 -1
  230. data/lib/dfp_api/v201201/user_service_registry.rb +1 -1
  231. data/lib/dfp_api/v201203/audience_segment_service.rb +1 -1
  232. data/lib/dfp_api/v201203/audience_segment_service_registry.rb +1 -1
  233. data/lib/dfp_api/v201203/company_service.rb +1 -1
  234. data/lib/dfp_api/v201203/company_service_registry.rb +1 -1
  235. data/lib/dfp_api/v201203/content_service.rb +1 -1
  236. data/lib/dfp_api/v201203/content_service_registry.rb +1 -1
  237. data/lib/dfp_api/v201203/creative_service.rb +1 -1
  238. data/lib/dfp_api/v201203/creative_service_registry.rb +1 -1
  239. data/lib/dfp_api/v201203/creative_template_service.rb +1 -1
  240. data/lib/dfp_api/v201203/creative_template_service_registry.rb +1 -1
  241. data/lib/dfp_api/v201203/custom_targeting_service.rb +1 -1
  242. data/lib/dfp_api/v201203/custom_targeting_service_registry.rb +1 -1
  243. data/lib/dfp_api/v201203/forecast_service.rb +1 -1
  244. data/lib/dfp_api/v201203/forecast_service_registry.rb +1 -1
  245. data/lib/dfp_api/v201203/inventory_service.rb +1 -1
  246. data/lib/dfp_api/v201203/inventory_service_registry.rb +1 -1
  247. data/lib/dfp_api/v201203/label_service.rb +1 -1
  248. data/lib/dfp_api/v201203/label_service_registry.rb +1 -1
  249. data/lib/dfp_api/v201203/line_item_creative_association_service.rb +1 -1
  250. data/lib/dfp_api/v201203/line_item_creative_association_service_registry.rb +1 -1
  251. data/lib/dfp_api/v201203/line_item_service.rb +1 -1
  252. data/lib/dfp_api/v201203/line_item_service_registry.rb +1 -1
  253. data/lib/dfp_api/v201203/network_service.rb +1 -1
  254. data/lib/dfp_api/v201203/network_service_registry.rb +1 -1
  255. data/lib/dfp_api/v201203/order_service.rb +1 -1
  256. data/lib/dfp_api/v201203/order_service_registry.rb +1 -1
  257. data/lib/dfp_api/v201203/placement_service.rb +1 -1
  258. data/lib/dfp_api/v201203/placement_service_registry.rb +1 -1
  259. data/lib/dfp_api/v201203/publisher_query_language_service.rb +1 -1
  260. data/lib/dfp_api/v201203/publisher_query_language_service_registry.rb +1 -1
  261. data/lib/dfp_api/v201203/report_service.rb +1 -1
  262. data/lib/dfp_api/v201203/report_service_registry.rb +1 -1
  263. data/lib/dfp_api/v201203/suggested_ad_unit_service.rb +1 -1
  264. data/lib/dfp_api/v201203/suggested_ad_unit_service_registry.rb +1 -1
  265. data/lib/dfp_api/v201203/team_service.rb +1 -1
  266. data/lib/dfp_api/v201203/team_service_registry.rb +1 -1
  267. data/lib/dfp_api/v201203/third_party_slot_service.rb +1 -1
  268. data/lib/dfp_api/v201203/third_party_slot_service_registry.rb +1 -1
  269. data/lib/dfp_api/v201203/user_service.rb +1 -1
  270. data/lib/dfp_api/v201203/user_service_registry.rb +1 -1
  271. data/lib/dfp_api/v201204/audience_segment_service.rb +1 -1
  272. data/lib/dfp_api/v201204/audience_segment_service_registry.rb +1 -1
  273. data/lib/dfp_api/v201204/company_service.rb +1 -1
  274. data/lib/dfp_api/v201204/company_service_registry.rb +1 -1
  275. data/lib/dfp_api/v201204/content_service.rb +1 -1
  276. data/lib/dfp_api/v201204/content_service_registry.rb +1 -1
  277. data/lib/dfp_api/v201204/creative_service.rb +1 -1
  278. data/lib/dfp_api/v201204/creative_service_registry.rb +1 -1
  279. data/lib/dfp_api/v201204/creative_template_service.rb +1 -1
  280. data/lib/dfp_api/v201204/creative_template_service_registry.rb +1 -1
  281. data/lib/dfp_api/v201204/custom_field_service.rb +1 -1
  282. data/lib/dfp_api/v201204/custom_field_service_registry.rb +1 -1
  283. data/lib/dfp_api/v201204/custom_targeting_service.rb +1 -1
  284. data/lib/dfp_api/v201204/custom_targeting_service_registry.rb +1 -1
  285. data/lib/dfp_api/v201204/forecast_service.rb +1 -1
  286. data/lib/dfp_api/v201204/forecast_service_registry.rb +1 -1
  287. data/lib/dfp_api/v201204/inventory_service.rb +1 -1
  288. data/lib/dfp_api/v201204/inventory_service_registry.rb +1 -1
  289. data/lib/dfp_api/v201204/label_service.rb +1 -1
  290. data/lib/dfp_api/v201204/label_service_registry.rb +1 -1
  291. data/lib/dfp_api/v201204/line_item_creative_association_service.rb +1 -1
  292. data/lib/dfp_api/v201204/line_item_creative_association_service_registry.rb +1 -1
  293. data/lib/dfp_api/v201204/line_item_service.rb +1 -1
  294. data/lib/dfp_api/v201204/line_item_service_registry.rb +1 -1
  295. data/lib/dfp_api/v201204/network_service.rb +1 -1
  296. data/lib/dfp_api/v201204/network_service_registry.rb +1 -1
  297. data/lib/dfp_api/v201204/order_service.rb +1 -1
  298. data/lib/dfp_api/v201204/order_service_registry.rb +1 -1
  299. data/lib/dfp_api/v201204/placement_service.rb +1 -1
  300. data/lib/dfp_api/v201204/placement_service_registry.rb +1 -1
  301. data/lib/dfp_api/v201204/publisher_query_language_service.rb +1 -1
  302. data/lib/dfp_api/v201204/publisher_query_language_service_registry.rb +1 -1
  303. data/lib/dfp_api/v201204/report_service.rb +1 -1
  304. data/lib/dfp_api/v201204/report_service_registry.rb +1 -1
  305. data/lib/dfp_api/v201204/suggested_ad_unit_service.rb +1 -1
  306. data/lib/dfp_api/v201204/suggested_ad_unit_service_registry.rb +1 -1
  307. data/lib/dfp_api/v201204/team_service.rb +1 -1
  308. data/lib/dfp_api/v201204/team_service_registry.rb +1 -1
  309. data/lib/dfp_api/v201204/third_party_slot_service.rb +1 -1
  310. data/lib/dfp_api/v201204/third_party_slot_service_registry.rb +1 -1
  311. data/lib/dfp_api/v201204/user_service.rb +1 -1
  312. data/lib/dfp_api/v201204/user_service_registry.rb +1 -1
  313. data/lib/dfp_api/v201204/user_team_association_service.rb +1 -1
  314. data/lib/dfp_api/v201204/user_team_association_service_registry.rb +1 -1
  315. data/lib/dfp_api/v201206/audience_segment_service.rb +34 -0
  316. data/lib/dfp_api/v201206/audience_segment_service_registry.rb +46 -0
  317. data/lib/dfp_api/v201206/company_service.rb +54 -0
  318. data/lib/dfp_api/v201206/company_service_registry.rb +46 -0
  319. data/lib/dfp_api/v201206/content_service.rb +42 -0
  320. data/lib/dfp_api/v201206/content_service_registry.rb +46 -0
  321. data/lib/dfp_api/v201206/creative_service.rb +54 -0
  322. data/lib/dfp_api/v201206/creative_service_registry.rb +46 -0
  323. data/lib/dfp_api/v201206/creative_set_service.rb +46 -0
  324. data/lib/dfp_api/v201206/creative_set_service_registry.rb +46 -0
  325. data/lib/dfp_api/v201206/creative_template_service.rb +38 -0
  326. data/lib/dfp_api/v201206/creative_template_service_registry.rb +46 -0
  327. data/lib/dfp_api/v201206/custom_field_service.rb +78 -0
  328. data/lib/dfp_api/v201206/custom_field_service_registry.rb +46 -0
  329. data/lib/dfp_api/v201206/custom_targeting_service.rb +62 -0
  330. data/lib/dfp_api/v201206/custom_targeting_service_registry.rb +46 -0
  331. data/lib/dfp_api/v201206/forecast_service.rb +38 -0
  332. data/lib/dfp_api/v201206/forecast_service_registry.rb +46 -0
  333. data/lib/dfp_api/v201206/inventory_service.rb +62 -0
  334. data/lib/dfp_api/v201206/inventory_service_registry.rb +46 -0
  335. data/lib/dfp_api/v201206/label_service.rb +58 -0
  336. data/lib/dfp_api/v201206/label_service_registry.rb +46 -0
  337. data/lib/dfp_api/v201206/line_item_creative_association_service.rb +62 -0
  338. data/lib/dfp_api/v201206/line_item_creative_association_service_registry.rb +46 -0
  339. data/lib/dfp_api/v201206/line_item_service.rb +58 -0
  340. data/lib/dfp_api/v201206/line_item_service_registry.rb +46 -0
  341. data/lib/dfp_api/v201206/network_service.rb +46 -0
  342. data/lib/dfp_api/v201206/network_service_registry.rb +46 -0
  343. data/lib/dfp_api/v201206/order_service.rb +58 -0
  344. data/lib/dfp_api/v201206/order_service_registry.rb +46 -0
  345. data/lib/dfp_api/v201206/placement_service.rb +58 -0
  346. data/lib/dfp_api/v201206/placement_service_registry.rb +46 -0
  347. data/lib/dfp_api/v201206/publisher_query_language_service.rb +34 -0
  348. data/lib/dfp_api/v201206/publisher_query_language_service_registry.rb +46 -0
  349. data/lib/dfp_api/v201206/report_service.rb +42 -0
  350. data/lib/dfp_api/v201206/report_service_registry.rb +46 -0
  351. data/lib/dfp_api/v201206/suggested_ad_unit_service.rb +42 -0
  352. data/lib/dfp_api/v201206/suggested_ad_unit_service_registry.rb +46 -0
  353. data/lib/dfp_api/v201206/team_service.rb +54 -0
  354. data/lib/dfp_api/v201206/team_service_registry.rb +46 -0
  355. data/lib/dfp_api/v201206/third_party_slot_service.rb +46 -0
  356. data/lib/dfp_api/v201206/third_party_slot_service_registry.rb +46 -0
  357. data/lib/dfp_api/v201206/user_service.rb +66 -0
  358. data/lib/dfp_api/v201206/user_service_registry.rb +46 -0
  359. data/lib/dfp_api/v201206/user_team_association_service.rb +58 -0
  360. data/lib/dfp_api/v201206/user_team_association_service_registry.rb +46 -0
  361. data/lib/dfp_api/version.rb +1 -1
  362. data/test/bugs/test_issue_00000016.rb +2 -2
  363. metadata +199 -50
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all line items. To create line items, run
22
+ # create_line_items.rb.
23
+ #
24
+ # Tags: LineItemService.getLineItemsByStatement
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201206
29
+ PAGE_SIZE = 500
30
+
31
+ def get_all_line_items()
32
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
33
+ dfp = DfpApi::Api.new
34
+
35
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
36
+ # the configuration file or provide your own logger:
37
+ # dfp.logger = Logger.new('dfp_xml.log')
38
+
39
+ # Get the LineItemService.
40
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
41
+
42
+ # Define initial values.
43
+ offset = 0
44
+ page = {}
45
+
46
+ begin
47
+ # Create a statement to get one page with current offset.
48
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
49
+
50
+ # Get line items by statement.
51
+ page = line_item_service.get_line_items_by_statement(statement)
52
+
53
+ if page[:results]
54
+ # Increase query offset by page size.
55
+ offset += PAGE_SIZE
56
+
57
+ # Get the start index for printout.
58
+ start_index = page[:start_index]
59
+
60
+ # Print details about each line item in results.
61
+ page[:results].each_with_index do |line_item, index|
62
+ puts "%d) Line item ID: %d, order ID: %d, name: %s" %
63
+ [index + start_index, line_item[:id],
64
+ line_item[:order_id], line_item[:name]]
65
+ end
66
+ end
67
+ end while offset < page[:total_result_set_size]
68
+
69
+ # Print a footer.
70
+ if page.include?(:total_result_set_size)
71
+ puts "Total number of line items: %d" % page[:total_result_set_size]
72
+ end
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ get_all_line_items()
78
+
79
+ # HTTP errors.
80
+ rescue AdsCommon::Errors::HttpError => e
81
+ puts "HTTP Error: %s" % e
82
+
83
+ # API errors.
84
+ rescue DfpApi::Errors::ApiException => e
85
+ puts "Message: %s" % e.message
86
+ puts 'Errors:'
87
+ e.errors.each_with_index do |error, index|
88
+ puts "\tError [%d]:" % (index + 1)
89
+ error.each do |field, value|
90
+ puts "\t\t%s: %s" % [field, value]
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets a line item by its ID. To determine which line items
22
+ # exist, run get_all_line_items.rb.
23
+ #
24
+ # Tags: LineItemService.getLineItem
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201206
29
+
30
+ def get_line_item()
31
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
32
+ dfp = DfpApi::Api.new
33
+
34
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
+ # the configuration file or provide your own logger:
36
+ # dfp.logger = Logger.new('dfp_xml.log')
37
+
38
+ # Get the LineItemService.
39
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
40
+
41
+ # Set the ID of the line_item to get.
42
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
43
+
44
+ # Get the line item.
45
+ line_item = line_item_service.get_line_item(line_item_id)
46
+
47
+ if line_item
48
+ puts "Line item with ID: %d, name: %s and order id: %d was found." %
49
+ [line_item[:id], line_item[:name], line_item[:order_id]]
50
+ else
51
+ puts 'No line item found for this ID.'
52
+ end
53
+ end
54
+
55
+ if __FILE__ == $0
56
+ begin
57
+ get_line_item()
58
+
59
+ # HTTP errors.
60
+ rescue AdsCommon::Errors::HttpError => e
61
+ puts "HTTP Error: %s" % e
62
+
63
+ # API errors.
64
+ rescue DfpApi::Errors::ApiException => e
65
+ puts "Message: %s" % e.message
66
+ puts 'Errors:'
67
+ e.errors.each_with_index do |error, index|
68
+ puts "\tError [%d]:" % (index + 1)
69
+ error.each do |field, value|
70
+ puts "\t\t%s: %s" % [field, value]
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all line items that need creatves for the given order. The
22
+ # statement retrieves up to the maximum page size limit of 500. To create line
23
+ # items, run create_line_items.rb. To determine which orders exist, run
24
+ # get_all_orders.rb.
25
+ #
26
+ # Tags: LineItemService.getLineItemsByStatement
27
+
28
+ require 'dfp_api'
29
+
30
+ API_VERSION = :v201206
31
+
32
+ def get_line_items_by_statement()
33
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
34
+ dfp = DfpApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # dfp.logger = Logger.new('dfp_xml.log')
39
+
40
+ # Get the LineItemService.
41
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
42
+
43
+ # Set the ID of the order to get line items from.
44
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
45
+
46
+ # Create a statement to only select line items that need creatives from a
47
+ # given order.
48
+ statement = {
49
+ :query => 'WHERE orderId = :order_id AND status = :status LIMIT 500',
50
+ :values => [
51
+ {:key => 'order_id',
52
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}},
53
+ {:key => 'status',
54
+ :value => {:value => 'NEEDS_CREATIVES', :xsi_type => 'TextValue'}}
55
+ ]
56
+ }
57
+
58
+ # Get line items by statement.
59
+ page = line_item_service.get_line_items_by_statement(statement)
60
+
61
+ if page and page[:results]
62
+ page[:results].each_with_index do |line_item, index|
63
+ puts "%d) [%d] belongs to order ID %d, name: %s." % [index,
64
+ line_item[:id], line_item[:order_id], line_item[:name]]
65
+ end
66
+ end
67
+
68
+ # Print a footer.
69
+ if page.include?(:total_result_set_size)
70
+ puts "Number of results found: %d" % page[:total_result_set_size]
71
+ end
72
+ end
73
+
74
+ if __FILE__ == $0
75
+ begin
76
+ get_line_items_by_statement()
77
+
78
+ # HTTP errors.
79
+ rescue AdsCommon::Errors::HttpError => e
80
+ puts "HTTP Error: %s" % e
81
+
82
+ # API errors.
83
+ rescue DfpApi::Errors::ApiException => e
84
+ puts "Message: %s" % e.message
85
+ puts 'Errors:'
86
+ e.errors.each_with_index do |error, index|
87
+ puts "\tError [%d]:" % (index + 1)
88
+ error.each do |field, value|
89
+ puts "\t\t%s: %s" % [field, value]
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This code example shows how to get recently updated line items. To create line
22
+ # items, run create_line_items.rb. To determine which orders exist, run
23
+ # get_all_orders.rb.
24
+ #
25
+ # Tags: LineItemService.getLineItemsByStatement
26
+
27
+ require 'date'
28
+
29
+ require 'dfp_api'
30
+
31
+ API_VERSION = :v201206
32
+
33
+ def get_recently_updated_line_items()
34
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
35
+ dfp = DfpApi::Api.new
36
+
37
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
38
+ # the configuration file or provide your own logger:
39
+ # dfp.logger = Logger.new('dfp_xml.log')
40
+
41
+ # Get the LineItemService.
42
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
43
+
44
+ # Set the ID of the order to get line items from.
45
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
46
+
47
+ # Create statement object to only select line items belonging to the order and
48
+ # have been modified in the last 3 days.
49
+ statement = {
50
+ :query => 'WHERE lastModifiedDateTime >= :date_time_string AND ' +
51
+ 'orderId = :order_id LIMIT 500',
52
+ :values => [
53
+ {:key => 'order_id',
54
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}},
55
+ {:key => 'date_time_string',
56
+ :value => {
57
+ :value => (DateTime.now - 3).strftime('%Y-%m-%dT%H:%M:%S'),
58
+ :xsi_type => 'TextValue'
59
+ }},
60
+ ]
61
+ }
62
+
63
+ # Get line items by statement.
64
+ page = line_item_service.get_line_items_by_statement(statement)
65
+
66
+ if page and page[:results]
67
+ page[:results].each_with_index do |line_item, index|
68
+ puts "%d) [%d] belongs to order ID %d, name: %s." % [index,
69
+ line_item[:id], line_item[:order_id], line_item[:name]]
70
+ end
71
+ end
72
+
73
+ # Print a footer.
74
+ if page.include?(:total_result_set_size)
75
+ puts "Number of results found: %d" % page[:total_result_set_size]
76
+ end
77
+ end
78
+
79
+ if __FILE__ == $0
80
+ begin
81
+ get_recently_updated_line_items()
82
+
83
+ # HTTP errors.
84
+ rescue AdsCommon::Errors::HttpError => e
85
+ puts "HTTP Error: %s" % e
86
+
87
+ # API errors.
88
+ rescue DfpApi::Errors::ApiException => e
89
+ puts "Message: %s" % e.message
90
+ puts 'Errors:'
91
+ e.errors.each_with_index do |error, index|
92
+ puts "\tError [%d]:" % (index + 1)
93
+ error.each do |field, value|
94
+ puts "\t\t%s: %s" % [field, value]
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example updates a line item to add custom criteria targeting. To
22
+ # determine which line items exist, run get_all_line_items.rb. To determine
23
+ # which custom targeting keys and values exist, run
24
+ # get_all_custom_targeting_keys_and_values.rb.
25
+ #
26
+ # Tags: LineItemService.getLineItem, LineItemService.updateLineItem
27
+
28
+ require 'dfp_api'
29
+
30
+ require 'pp'
31
+
32
+ API_VERSION = :v201206
33
+ PAGE_SIZE = 500
34
+
35
+ def target_custom_criteria()
36
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
37
+ dfp = DfpApi::Api.new
38
+
39
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
40
+ # the configuration file or provide your own logger:
41
+ # dfp.logger = Logger.new('dfp_xml.log')
42
+
43
+ # Get the LineItemService.
44
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
45
+
46
+ # Set the ID of the line item to update targeting.
47
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
48
+
49
+ # Set the IDs of the custom targeting keys.
50
+ custom_criteria_ids = [
51
+ {:key => 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE'.to_i,
52
+ :values => ['INSERT_CUSTOM_TARGETING_VALUE_IDS_HERE'.to_i]},
53
+ {:key => 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE'.to_i,
54
+ :values => ['INSERT_CUSTOM_TARGETING_VALUE_IDS_HERE'.to_i]},
55
+ {:key => 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE'.to_i,
56
+ :values => ['INSERT_CUSTOM_TARGETING_VALUE_IDS_HERE'.to_i]}
57
+ ]
58
+
59
+ # Create custom criteria.
60
+ custom_criteria = [
61
+ {:xsi_type => 'CustomCriteria',
62
+ :key_id => custom_criteria_ids[0][:key],
63
+ :value_ids => custom_criteria_ids[0][:values],
64
+ :operator => 'IS'},
65
+ {:xsi_type => 'CustomCriteria',
66
+ :key_id => custom_criteria_ids[1][:key],
67
+ :value_ids => custom_criteria_ids[1][:values],
68
+ :operator => 'IS_NOT'},
69
+ {:xsi_type => 'CustomCriteria',
70
+ :key_id => custom_criteria_ids[2][:key],
71
+ :value_ids => custom_criteria_ids[2][:values],
72
+ :operator => 'IS'}
73
+ ]
74
+
75
+ # Create the custom criteria set that will resemble:
76
+ #
77
+ # (custom_criteria[0].key == custom_criteria[0].values OR
78
+ # (custom_criteria[1].key != custom_criteria[1].values AND
79
+ # custom_criteria[2].key == custom_criteria[2].values))
80
+ sub_custom_criteria_set = {
81
+ :xsi_type => 'CustomCriteriaSet',
82
+ :logical_operator => 'AND',
83
+ :children => [custom_criteria[1], custom_criteria[2]]
84
+ }
85
+ top_custom_criteria_set = {
86
+ :xsi_type => 'CustomCriteriaSet',
87
+ :logical_operator => 'OR',
88
+ :children => [custom_criteria[0], sub_custom_criteria_set]
89
+ }
90
+
91
+ # Get the line item.
92
+ line_item = line_item_service.get_line_item(line_item_id)
93
+
94
+ # Set the custom criteria targeting on the line item.
95
+ line_item[:targeting] = {:custom_targeting => top_custom_criteria_set}
96
+
97
+ # Update the line items on the server.
98
+ return_line_item = line_item_service.update_line_item(line_item)
99
+
100
+ # Display the updated line item.
101
+ if return_line_item
102
+ puts "Line item ID: %d was updated with custom criteria targeting:" %
103
+ return_line_item[:id]
104
+ pp return_line_item[:targeting]
105
+ else
106
+ puts 'Line item update failed.'
107
+ end
108
+ end
109
+
110
+ if __FILE__ == $0
111
+ begin
112
+ target_custom_criteria()
113
+
114
+ # HTTP errors.
115
+ rescue AdsCommon::Errors::HttpError => e
116
+ puts "HTTP Error: %s" % e
117
+
118
+ # API errors.
119
+ rescue DfpApi::Errors::ApiException => e
120
+ puts "Message: %s" % e.message
121
+ puts 'Errors:'
122
+ e.errors.each_with_index do |error, index|
123
+ puts "\tError [%d]:" % (index + 1)
124
+ error.each do |field, value|
125
+ puts "\t\t%s: %s" % [field, value]
126
+ end
127
+ end
128
+ end
129
+ end