gdata_19 1.1.2

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 (252) hide show
  1. data/.hgtags +5 -0
  2. data/LICENSE +202 -0
  3. data/README +97 -0
  4. data/Rakefile +82 -0
  5. data/VERSION +1 -0
  6. data/bin/test_captcha.rb +52 -0
  7. data/doc/classes/GData/Auth/AuthSub.html +349 -0
  8. data/doc/classes/GData/Auth/AuthSub.src/M000020.html +29 -0
  9. data/doc/classes/GData/Auth/AuthSub.src/M000021.html +29 -0
  10. data/doc/classes/GData/Auth/AuthSub.src/M000022.html +31 -0
  11. data/doc/classes/GData/Auth/AuthSub.src/M000023.html +29 -0
  12. data/doc/classes/GData/Auth/AuthSub.src/M000024.html +32 -0
  13. data/doc/classes/GData/Auth/AuthSub.src/M000025.html +26 -0
  14. data/doc/classes/GData/Auth/AuthSub.src/M000026.html +29 -0
  15. data/doc/classes/GData/Auth/AuthSub.src/M000038.html +28 -0
  16. data/doc/classes/GData/Auth/AuthSub.src/M000039.html +29 -0
  17. data/doc/classes/GData/Auth/AuthSub.src/M000040.html +31 -0
  18. data/doc/classes/GData/Auth/AuthSub.src/M000041.html +29 -0
  19. data/doc/classes/GData/Auth/AuthSub.src/M000042.html +32 -0
  20. data/doc/classes/GData/Auth/AuthSub.src/M000043.html +28 -0
  21. data/doc/classes/GData/Auth/AuthSub.src/M000044.html +29 -0
  22. data/doc/classes/GData/Auth/AuthSub.src/M000045.html +31 -0
  23. data/doc/classes/GData/Auth/AuthSub.src/M000046.html +28 -0
  24. data/doc/classes/GData/Auth/AuthSub.src/M000047.html +28 -0
  25. data/doc/classes/GData/Auth/AuthSub.src/M000048.html +29 -0
  26. data/doc/classes/GData/Auth/AuthSub.src/M000049.html +31 -0
  27. data/doc/classes/GData/Auth/AuthSub.src/M000050.html +28 -0
  28. data/doc/classes/GData/Auth/AuthSub.src/M000051.html +31 -0
  29. data/doc/classes/GData/Auth/AuthSub.src/M000052.html +25 -0
  30. data/doc/classes/GData/Auth/AuthSub.src/M000053.html +29 -0
  31. data/doc/classes/GData/Auth/ClientLogin.html +232 -0
  32. data/doc/classes/GData/Auth/ClientLogin.src/M000027.html +27 -0
  33. data/doc/classes/GData/Auth/ClientLogin.src/M000028.html +47 -0
  34. data/doc/classes/GData/Auth/ClientLogin.src/M000029.html +22 -0
  35. data/doc/classes/GData/Auth/ClientLogin.src/M000045.html +29 -0
  36. data/doc/classes/GData/Auth/ClientLogin.src/M000046.html +49 -0
  37. data/doc/classes/GData/Auth/ClientLogin.src/M000047.html +22 -0
  38. data/doc/classes/GData/Auth/ClientLogin.src/M000050.html +29 -0
  39. data/doc/classes/GData/Auth/ClientLogin.src/M000051.html +49 -0
  40. data/doc/classes/GData/Auth/ClientLogin.src/M000052.html +22 -0
  41. data/doc/classes/GData/Auth/ClientLogin.src/M000053.html +29 -0
  42. data/doc/classes/GData/Auth/ClientLogin.src/M000054.html +29 -0
  43. data/doc/classes/GData/Auth/ClientLogin.src/M000055.html +49 -0
  44. data/doc/classes/GData/Auth/ClientLogin.src/M000056.html +22 -0
  45. data/doc/classes/GData/Auth.html +133 -0
  46. data/doc/classes/GData/Client/Apps.html +146 -0
  47. data/doc/classes/GData/Client/Apps.src/M000027.html +19 -0
  48. data/doc/classes/GData/Client/Apps.src/M000028.html +19 -0
  49. data/doc/classes/GData/Client/AuthorizationError.html +113 -0
  50. data/doc/classes/GData/Client/BadRequestError.html +113 -0
  51. data/doc/classes/GData/Client/Base.html +453 -0
  52. data/doc/classes/GData/Client/Base.src/M000002.html +21 -0
  53. data/doc/classes/GData/Client/Base.src/M000003.html +55 -0
  54. data/doc/classes/GData/Client/Base.src/M000004.html +18 -0
  55. data/doc/classes/GData/Client/Base.src/M000005.html +18 -0
  56. data/doc/classes/GData/Client/Base.src/M000006.html +18 -0
  57. data/doc/classes/GData/Client/Base.src/M000007.html +18 -0
  58. data/doc/classes/GData/Client/Base.src/M000008.html +22 -0
  59. data/doc/classes/GData/Client/Base.src/M000009.html +26 -0
  60. data/doc/classes/GData/Client/Base.src/M000010.html +22 -0
  61. data/doc/classes/GData/Client/Base.src/M000011.html +25 -0
  62. data/doc/classes/GData/Client/Base.src/M000012.html +25 -0
  63. data/doc/classes/GData/Client/Base.src/M000013.html +33 -0
  64. data/doc/classes/GData/Client/Base.src/M000014.html +44 -0
  65. data/doc/classes/GData/Client/Base.src/M000015.html +18 -0
  66. data/doc/classes/GData/Client/Base.src/M000016.html +18 -0
  67. data/doc/classes/GData/Client/Base.src/M000017.html +18 -0
  68. data/doc/classes/GData/Client/Base.src/M000018.html +18 -0
  69. data/doc/classes/GData/Client/Base.src/M000019.html +18 -0
  70. data/doc/classes/GData/Client/Base.src/M000020.html +18 -0
  71. data/doc/classes/GData/Client/Base.src/M000021.html +25 -0
  72. data/doc/classes/GData/Client/Base.src/M000022.html +28 -0
  73. data/doc/classes/GData/Client/Base.src/M000023.html +22 -0
  74. data/doc/classes/GData/Client/Base.src/M000024.html +18 -0
  75. data/doc/classes/GData/Client/Base.src/M000025.html +22 -0
  76. data/doc/classes/GData/Client/Blogger.html +146 -0
  77. data/doc/classes/GData/Client/Blogger.src/M000002.html +20 -0
  78. data/doc/classes/GData/Client/BookSearch.html +146 -0
  79. data/doc/classes/GData/Client/BookSearch.src/M000010.html +20 -0
  80. data/doc/classes/GData/Client/BookSearch.src/M000011.html +20 -0
  81. data/doc/classes/GData/Client/Calendar.html +221 -0
  82. data/doc/classes/GData/Client/Calendar.src/M000030.html +20 -0
  83. data/doc/classes/GData/Client/Calendar.src/M000031.html +20 -0
  84. data/doc/classes/GData/Client/Calendar.src/M000032.html +19 -0
  85. data/doc/classes/GData/Client/Calendar.src/M000033.html +25 -0
  86. data/doc/classes/GData/Client/Calendar.src/M000034.html +21 -0
  87. data/doc/classes/GData/Client/CaptchaError.html +167 -0
  88. data/doc/classes/GData/Client/CaptchaError.src/M000001.html +19 -0
  89. data/doc/classes/GData/Client/CaptchaError.src/M000005.html +19 -0
  90. data/doc/classes/GData/Client/Contacts.html +146 -0
  91. data/doc/classes/GData/Client/Contacts.src/M000003.html +20 -0
  92. data/doc/classes/GData/Client/DocList.html +146 -0
  93. data/doc/classes/GData/Client/DocList.src/M000006.html +20 -0
  94. data/doc/classes/GData/Client/DocList.src/M000007.html +20 -0
  95. data/doc/classes/GData/Client/Error.html +118 -0
  96. data/doc/classes/GData/Client/Finance.html +146 -0
  97. data/doc/classes/GData/Client/Finance.src/M000029.html +20 -0
  98. data/doc/classes/GData/Client/Finance.src/M000030.html +20 -0
  99. data/doc/classes/GData/Client/GBase.html +146 -0
  100. data/doc/classes/GData/Client/GBase.src/M000004.html +20 -0
  101. data/doc/classes/GData/Client/GMail.html +146 -0
  102. data/doc/classes/GData/Client/GMail.src/M000028.html +20 -0
  103. data/doc/classes/GData/Client/GMail.src/M000029.html +20 -0
  104. data/doc/classes/GData/Client/Health.html +146 -0
  105. data/doc/classes/GData/Client/Health.src/M000031.html +20 -0
  106. data/doc/classes/GData/Client/Health.src/M000034.html +20 -0
  107. data/doc/classes/GData/Client/Health.src/M000035.html +20 -0
  108. data/doc/classes/GData/Client/Notebook.html +146 -0
  109. data/doc/classes/GData/Client/Notebook.src/M000009.html +20 -0
  110. data/doc/classes/GData/Client/Notebook.src/M000010.html +20 -0
  111. data/doc/classes/GData/Client/Photos.html +146 -0
  112. data/doc/classes/GData/Client/Photos.src/M000008.html +21 -0
  113. data/doc/classes/GData/Client/Photos.src/M000009.html +21 -0
  114. data/doc/classes/GData/Client/RequestError.html +167 -0
  115. data/doc/classes/GData/Client/RequestError.src/M000006.html +20 -0
  116. data/doc/classes/GData/Client/ServerError.html +113 -0
  117. data/doc/classes/GData/Client/Spreadsheets.html +146 -0
  118. data/doc/classes/GData/Client/Spreadsheets.src/M000001.html +20 -0
  119. data/doc/classes/GData/Client/UnknownError.html +113 -0
  120. data/doc/classes/GData/Client/VersionConflictError.html +113 -0
  121. data/doc/classes/GData/Client/WebmasterTools.html +146 -0
  122. data/doc/classes/GData/Client/WebmasterTools.src/M000007.html +20 -0
  123. data/doc/classes/GData/Client/WebmasterTools.src/M000008.html +20 -0
  124. data/doc/classes/GData/Client/YouTube.html +192 -0
  125. data/doc/classes/GData/Client/YouTube.src/M000013.html +19 -0
  126. data/doc/classes/GData/Client/YouTube.src/M000014.html +24 -0
  127. data/doc/classes/GData/Client/YouTube.src/M000025.html +22 -0
  128. data/doc/classes/GData/Client/YouTube.src/M000026.html +22 -0
  129. data/doc/classes/GData/Client/YouTube.src/M000027.html +24 -0
  130. data/doc/classes/GData/Client.html +198 -0
  131. data/doc/classes/GData/HTTP/DefaultService.html +150 -0
  132. data/doc/classes/GData/HTTP/DefaultService.src/M000019.html +48 -0
  133. data/doc/classes/GData/HTTP/DefaultService.src/M000037.html +63 -0
  134. data/doc/classes/GData/HTTP/DefaultService.src/M000042.html +66 -0
  135. data/doc/classes/GData/HTTP/DefaultService.src/M000045.html +66 -0
  136. data/doc/classes/GData/HTTP/DefaultService.src/M000046.html +66 -0
  137. data/doc/classes/GData/HTTP/MimeBody.html +202 -0
  138. data/doc/classes/GData/HTTP/MimeBody.src/M000032.html +22 -0
  139. data/doc/classes/GData/HTTP/MimeBody.src/M000033.html +31 -0
  140. data/doc/classes/GData/HTTP/MimeBody.src/M000034.html +18 -0
  141. data/doc/classes/GData/HTTP/MimeBody.src/M000035.html +22 -0
  142. data/doc/classes/GData/HTTP/MimeBody.src/M000036.html +22 -0
  143. data/doc/classes/GData/HTTP/MimeBody.src/M000037.html +31 -0
  144. data/doc/classes/GData/HTTP/MimeBody.src/M000038.html +18 -0
  145. data/doc/classes/GData/HTTP/MimeBodyString.html +164 -0
  146. data/doc/classes/GData/HTTP/MimeBodyString.src/M000036.html +19 -0
  147. data/doc/classes/GData/HTTP/MimeBodyString.src/M000037.html +27 -0
  148. data/doc/classes/GData/HTTP/MimeBodyString.src/M000039.html +19 -0
  149. data/doc/classes/GData/HTTP/MimeBodyString.src/M000040.html +19 -0
  150. data/doc/classes/GData/HTTP/MimeBodyString.src/M000041.html +27 -0
  151. data/doc/classes/GData/HTTP/Request.html +243 -0
  152. data/doc/classes/GData/HTTP/Request.src/M000015.html +22 -0
  153. data/doc/classes/GData/HTTP/Request.src/M000016.html +22 -0
  154. data/doc/classes/GData/HTTP/Request.src/M000017.html +22 -0
  155. data/doc/classes/GData/HTTP/Request.src/M000018.html +24 -0
  156. data/doc/classes/GData/HTTP/Request.src/M000033.html +24 -0
  157. data/doc/classes/GData/HTTP/Request.src/M000034.html +22 -0
  158. data/doc/classes/GData/HTTP/Request.src/M000035.html +22 -0
  159. data/doc/classes/GData/HTTP/Request.src/M000036.html +25 -0
  160. data/doc/classes/GData/HTTP/Request.src/M000038.html +24 -0
  161. data/doc/classes/GData/HTTP/Request.src/M000039.html +22 -0
  162. data/doc/classes/GData/HTTP/Request.src/M000040.html +22 -0
  163. data/doc/classes/GData/HTTP/Request.src/M000041.html +24 -0
  164. data/doc/classes/GData/HTTP/Request.src/M000042.html +24 -0
  165. data/doc/classes/GData/HTTP/Request.src/M000043.html +22 -0
  166. data/doc/classes/GData/HTTP/Request.src/M000044.html +22 -0
  167. data/doc/classes/GData/HTTP/Request.src/M000045.html +25 -0
  168. data/doc/classes/GData/HTTP/Response.html +179 -0
  169. data/doc/classes/GData/HTTP/Response.src/M000032.html +26 -0
  170. data/doc/classes/GData/HTTP/Response.src/M000035.html +26 -0
  171. data/doc/classes/GData/HTTP/Response.src/M000038.html +26 -0
  172. data/doc/classes/GData/HTTP/Response.src/M000039.html +26 -0
  173. data/doc/classes/GData/HTTP.html +127 -0
  174. data/doc/classes/GData.html +226 -0
  175. data/doc/created.rid +1 -0
  176. data/doc/files/README.html +214 -0
  177. data/doc/files/lib/gdata/auth/authsub_rb.html +131 -0
  178. data/doc/files/lib/gdata/auth/clientlogin_rb.html +129 -0
  179. data/doc/files/lib/gdata/auth_rb.html +130 -0
  180. data/doc/files/lib/gdata/client/apps_rb.html +122 -0
  181. data/doc/files/lib/gdata/client/base_rb.html +122 -0
  182. data/doc/files/lib/gdata/client/blogger_rb.html +122 -0
  183. data/doc/files/lib/gdata/client/booksearch_rb.html +122 -0
  184. data/doc/files/lib/gdata/client/calendar_rb.html +122 -0
  185. data/doc/files/lib/gdata/client/contacts_rb.html +122 -0
  186. data/doc/files/lib/gdata/client/doclist_rb.html +122 -0
  187. data/doc/files/lib/gdata/client/finance_rb.html +122 -0
  188. data/doc/files/lib/gdata/client/gbase_rb.html +122 -0
  189. data/doc/files/lib/gdata/client/gdata_rb.html +129 -0
  190. data/doc/files/lib/gdata/client/gmail_rb.html +122 -0
  191. data/doc/files/lib/gdata/client/health_rb.html +122 -0
  192. data/doc/files/lib/gdata/client/notebook_rb.html +122 -0
  193. data/doc/files/lib/gdata/client/photos_rb.html +122 -0
  194. data/doc/files/lib/gdata/client/spreadsheets_rb.html +122 -0
  195. data/doc/files/lib/gdata/client/webmaster_tools_rb.html +122 -0
  196. data/doc/files/lib/gdata/client/youtube_rb.html +122 -0
  197. data/doc/files/lib/gdata/client_rb.html +144 -0
  198. data/doc/files/lib/gdata/http/default_service_rb.html +131 -0
  199. data/doc/files/lib/gdata/http/mime_body_rb.html +122 -0
  200. data/doc/files/lib/gdata/http/request_rb.html +129 -0
  201. data/doc/files/lib/gdata/http/response_rb.html +129 -0
  202. data/doc/files/lib/gdata/http_rb.html +132 -0
  203. data/doc/files/lib/gdata_rb.html +132 -0
  204. data/doc/fr_class_index.html +61 -0
  205. data/doc/fr_file_index.html +53 -0
  206. data/doc/fr_method_index.html +82 -0
  207. data/doc/index.html +24 -0
  208. data/doc/rdoc-style.css +208 -0
  209. data/gdata19.gemspec +294 -0
  210. data/lib/gdata/auth/authsub.rb +162 -0
  211. data/lib/gdata/auth/clientlogin.rb +103 -0
  212. data/lib/gdata/auth.rb +23 -0
  213. data/lib/gdata/client/apps.rb +28 -0
  214. data/lib/gdata/client/base.rb +183 -0
  215. data/lib/gdata/client/blogger.rb +29 -0
  216. data/lib/gdata/client/booksearch.rb +29 -0
  217. data/lib/gdata/client/calendar.rb +59 -0
  218. data/lib/gdata/client/contacts.rb +29 -0
  219. data/lib/gdata/client/doclist.rb +29 -0
  220. data/lib/gdata/client/finance.rb +29 -0
  221. data/lib/gdata/client/gbase.rb +29 -0
  222. data/lib/gdata/client/gmail.rb +29 -0
  223. data/lib/gdata/client/health.rb +29 -0
  224. data/lib/gdata/client/notebook.rb +29 -0
  225. data/lib/gdata/client/photos.rb +30 -0
  226. data/lib/gdata/client/spreadsheets.rb +29 -0
  227. data/lib/gdata/client/webmaster_tools.rb +29 -0
  228. data/lib/gdata/client/youtube.rb +48 -0
  229. data/lib/gdata/client.rb +85 -0
  230. data/lib/gdata/http/default_service.rb +83 -0
  231. data/lib/gdata/http/mime_body.rb +101 -0
  232. data/lib/gdata/http/request.rb +75 -0
  233. data/lib/gdata/http/response.rb +45 -0
  234. data/lib/gdata/http.rb +19 -0
  235. data/lib/gdata.rb +24 -0
  236. data/pkg/gdata19-1.1.2.gem +0 -0
  237. data/test/tc_gdata_auth_authsub.rb +53 -0
  238. data/test/tc_gdata_auth_clientlogin.rb +59 -0
  239. data/test/tc_gdata_client_base.rb +37 -0
  240. data/test/tc_gdata_client_calendar.rb +40 -0
  241. data/test/tc_gdata_client_photos.rb +65 -0
  242. data/test/tc_gdata_client_youtube.rb +77 -0
  243. data/test/tc_gdata_http_mime_body.rb +47 -0
  244. data/test/tc_gdata_http_request.rb +36 -0
  245. data/test/test_config.yml.example +7 -0
  246. data/test/test_helper.rb +47 -0
  247. data/test/testimage.jpg +0 -0
  248. data/test/ts_gdata.rb +48 -0
  249. data/test/ts_gdata_auth.rb +25 -0
  250. data/test/ts_gdata_client.rb +29 -0
  251. data/test/ts_gdata_http.rb +25 -0
  252. metadata +320 -0
data/gdata19.gemspec ADDED
@@ -0,0 +1,294 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{gdata19}
8
+ s.version = "1.1.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jeff Fisher"]
12
+ s.date = %q{2010-09-02}
13
+ s.default_executable = %q{test_captcha.rb}
14
+ s.description = %q{This gem provides a set of wrappers designed to make it easy to work with
15
+ the Google Data APIs with 1.9 compat}
16
+ s.email = %q{jfisher@youtube.com}
17
+ s.executables = ["test_captcha.rb"]
18
+ s.extra_rdoc_files = [
19
+ "LICENSE",
20
+ "README"
21
+ ]
22
+ s.files = [
23
+ ".hgtags",
24
+ "LICENSE",
25
+ "README",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/test_captcha.rb",
29
+ "doc/classes/GData.html",
30
+ "doc/classes/GData/Auth.html",
31
+ "doc/classes/GData/Auth/AuthSub.html",
32
+ "doc/classes/GData/Auth/AuthSub.src/M000020.html",
33
+ "doc/classes/GData/Auth/AuthSub.src/M000021.html",
34
+ "doc/classes/GData/Auth/AuthSub.src/M000022.html",
35
+ "doc/classes/GData/Auth/AuthSub.src/M000023.html",
36
+ "doc/classes/GData/Auth/AuthSub.src/M000024.html",
37
+ "doc/classes/GData/Auth/AuthSub.src/M000025.html",
38
+ "doc/classes/GData/Auth/AuthSub.src/M000026.html",
39
+ "doc/classes/GData/Auth/AuthSub.src/M000038.html",
40
+ "doc/classes/GData/Auth/AuthSub.src/M000039.html",
41
+ "doc/classes/GData/Auth/AuthSub.src/M000040.html",
42
+ "doc/classes/GData/Auth/AuthSub.src/M000041.html",
43
+ "doc/classes/GData/Auth/AuthSub.src/M000042.html",
44
+ "doc/classes/GData/Auth/AuthSub.src/M000043.html",
45
+ "doc/classes/GData/Auth/AuthSub.src/M000044.html",
46
+ "doc/classes/GData/Auth/AuthSub.src/M000045.html",
47
+ "doc/classes/GData/Auth/AuthSub.src/M000046.html",
48
+ "doc/classes/GData/Auth/AuthSub.src/M000047.html",
49
+ "doc/classes/GData/Auth/AuthSub.src/M000048.html",
50
+ "doc/classes/GData/Auth/AuthSub.src/M000049.html",
51
+ "doc/classes/GData/Auth/AuthSub.src/M000050.html",
52
+ "doc/classes/GData/Auth/AuthSub.src/M000051.html",
53
+ "doc/classes/GData/Auth/AuthSub.src/M000052.html",
54
+ "doc/classes/GData/Auth/AuthSub.src/M000053.html",
55
+ "doc/classes/GData/Auth/ClientLogin.html",
56
+ "doc/classes/GData/Auth/ClientLogin.src/M000027.html",
57
+ "doc/classes/GData/Auth/ClientLogin.src/M000028.html",
58
+ "doc/classes/GData/Auth/ClientLogin.src/M000029.html",
59
+ "doc/classes/GData/Auth/ClientLogin.src/M000045.html",
60
+ "doc/classes/GData/Auth/ClientLogin.src/M000046.html",
61
+ "doc/classes/GData/Auth/ClientLogin.src/M000047.html",
62
+ "doc/classes/GData/Auth/ClientLogin.src/M000050.html",
63
+ "doc/classes/GData/Auth/ClientLogin.src/M000051.html",
64
+ "doc/classes/GData/Auth/ClientLogin.src/M000052.html",
65
+ "doc/classes/GData/Auth/ClientLogin.src/M000053.html",
66
+ "doc/classes/GData/Auth/ClientLogin.src/M000054.html",
67
+ "doc/classes/GData/Auth/ClientLogin.src/M000055.html",
68
+ "doc/classes/GData/Auth/ClientLogin.src/M000056.html",
69
+ "doc/classes/GData/Client.html",
70
+ "doc/classes/GData/Client/Apps.html",
71
+ "doc/classes/GData/Client/Apps.src/M000027.html",
72
+ "doc/classes/GData/Client/Apps.src/M000028.html",
73
+ "doc/classes/GData/Client/AuthorizationError.html",
74
+ "doc/classes/GData/Client/BadRequestError.html",
75
+ "doc/classes/GData/Client/Base.html",
76
+ "doc/classes/GData/Client/Base.src/M000002.html",
77
+ "doc/classes/GData/Client/Base.src/M000003.html",
78
+ "doc/classes/GData/Client/Base.src/M000004.html",
79
+ "doc/classes/GData/Client/Base.src/M000005.html",
80
+ "doc/classes/GData/Client/Base.src/M000006.html",
81
+ "doc/classes/GData/Client/Base.src/M000007.html",
82
+ "doc/classes/GData/Client/Base.src/M000008.html",
83
+ "doc/classes/GData/Client/Base.src/M000009.html",
84
+ "doc/classes/GData/Client/Base.src/M000010.html",
85
+ "doc/classes/GData/Client/Base.src/M000011.html",
86
+ "doc/classes/GData/Client/Base.src/M000012.html",
87
+ "doc/classes/GData/Client/Base.src/M000013.html",
88
+ "doc/classes/GData/Client/Base.src/M000014.html",
89
+ "doc/classes/GData/Client/Base.src/M000015.html",
90
+ "doc/classes/GData/Client/Base.src/M000016.html",
91
+ "doc/classes/GData/Client/Base.src/M000017.html",
92
+ "doc/classes/GData/Client/Base.src/M000018.html",
93
+ "doc/classes/GData/Client/Base.src/M000019.html",
94
+ "doc/classes/GData/Client/Base.src/M000020.html",
95
+ "doc/classes/GData/Client/Base.src/M000021.html",
96
+ "doc/classes/GData/Client/Base.src/M000022.html",
97
+ "doc/classes/GData/Client/Base.src/M000023.html",
98
+ "doc/classes/GData/Client/Base.src/M000024.html",
99
+ "doc/classes/GData/Client/Base.src/M000025.html",
100
+ "doc/classes/GData/Client/Blogger.html",
101
+ "doc/classes/GData/Client/Blogger.src/M000002.html",
102
+ "doc/classes/GData/Client/BookSearch.html",
103
+ "doc/classes/GData/Client/BookSearch.src/M000010.html",
104
+ "doc/classes/GData/Client/BookSearch.src/M000011.html",
105
+ "doc/classes/GData/Client/Calendar.html",
106
+ "doc/classes/GData/Client/Calendar.src/M000030.html",
107
+ "doc/classes/GData/Client/Calendar.src/M000031.html",
108
+ "doc/classes/GData/Client/Calendar.src/M000032.html",
109
+ "doc/classes/GData/Client/Calendar.src/M000033.html",
110
+ "doc/classes/GData/Client/Calendar.src/M000034.html",
111
+ "doc/classes/GData/Client/CaptchaError.html",
112
+ "doc/classes/GData/Client/CaptchaError.src/M000001.html",
113
+ "doc/classes/GData/Client/CaptchaError.src/M000005.html",
114
+ "doc/classes/GData/Client/Contacts.html",
115
+ "doc/classes/GData/Client/Contacts.src/M000003.html",
116
+ "doc/classes/GData/Client/DocList.html",
117
+ "doc/classes/GData/Client/DocList.src/M000006.html",
118
+ "doc/classes/GData/Client/DocList.src/M000007.html",
119
+ "doc/classes/GData/Client/Error.html",
120
+ "doc/classes/GData/Client/Finance.html",
121
+ "doc/classes/GData/Client/Finance.src/M000029.html",
122
+ "doc/classes/GData/Client/Finance.src/M000030.html",
123
+ "doc/classes/GData/Client/GBase.html",
124
+ "doc/classes/GData/Client/GBase.src/M000004.html",
125
+ "doc/classes/GData/Client/GMail.html",
126
+ "doc/classes/GData/Client/GMail.src/M000028.html",
127
+ "doc/classes/GData/Client/GMail.src/M000029.html",
128
+ "doc/classes/GData/Client/Health.html",
129
+ "doc/classes/GData/Client/Health.src/M000031.html",
130
+ "doc/classes/GData/Client/Health.src/M000034.html",
131
+ "doc/classes/GData/Client/Health.src/M000035.html",
132
+ "doc/classes/GData/Client/Notebook.html",
133
+ "doc/classes/GData/Client/Notebook.src/M000009.html",
134
+ "doc/classes/GData/Client/Notebook.src/M000010.html",
135
+ "doc/classes/GData/Client/Photos.html",
136
+ "doc/classes/GData/Client/Photos.src/M000008.html",
137
+ "doc/classes/GData/Client/Photos.src/M000009.html",
138
+ "doc/classes/GData/Client/RequestError.html",
139
+ "doc/classes/GData/Client/RequestError.src/M000006.html",
140
+ "doc/classes/GData/Client/ServerError.html",
141
+ "doc/classes/GData/Client/Spreadsheets.html",
142
+ "doc/classes/GData/Client/Spreadsheets.src/M000001.html",
143
+ "doc/classes/GData/Client/UnknownError.html",
144
+ "doc/classes/GData/Client/VersionConflictError.html",
145
+ "doc/classes/GData/Client/WebmasterTools.html",
146
+ "doc/classes/GData/Client/WebmasterTools.src/M000007.html",
147
+ "doc/classes/GData/Client/WebmasterTools.src/M000008.html",
148
+ "doc/classes/GData/Client/YouTube.html",
149
+ "doc/classes/GData/Client/YouTube.src/M000013.html",
150
+ "doc/classes/GData/Client/YouTube.src/M000014.html",
151
+ "doc/classes/GData/Client/YouTube.src/M000025.html",
152
+ "doc/classes/GData/Client/YouTube.src/M000026.html",
153
+ "doc/classes/GData/Client/YouTube.src/M000027.html",
154
+ "doc/classes/GData/HTTP.html",
155
+ "doc/classes/GData/HTTP/DefaultService.html",
156
+ "doc/classes/GData/HTTP/DefaultService.src/M000019.html",
157
+ "doc/classes/GData/HTTP/DefaultService.src/M000037.html",
158
+ "doc/classes/GData/HTTP/DefaultService.src/M000042.html",
159
+ "doc/classes/GData/HTTP/DefaultService.src/M000045.html",
160
+ "doc/classes/GData/HTTP/DefaultService.src/M000046.html",
161
+ "doc/classes/GData/HTTP/MimeBody.html",
162
+ "doc/classes/GData/HTTP/MimeBody.src/M000032.html",
163
+ "doc/classes/GData/HTTP/MimeBody.src/M000033.html",
164
+ "doc/classes/GData/HTTP/MimeBody.src/M000034.html",
165
+ "doc/classes/GData/HTTP/MimeBody.src/M000035.html",
166
+ "doc/classes/GData/HTTP/MimeBody.src/M000036.html",
167
+ "doc/classes/GData/HTTP/MimeBody.src/M000037.html",
168
+ "doc/classes/GData/HTTP/MimeBody.src/M000038.html",
169
+ "doc/classes/GData/HTTP/MimeBodyString.html",
170
+ "doc/classes/GData/HTTP/MimeBodyString.src/M000036.html",
171
+ "doc/classes/GData/HTTP/MimeBodyString.src/M000037.html",
172
+ "doc/classes/GData/HTTP/MimeBodyString.src/M000039.html",
173
+ "doc/classes/GData/HTTP/MimeBodyString.src/M000040.html",
174
+ "doc/classes/GData/HTTP/MimeBodyString.src/M000041.html",
175
+ "doc/classes/GData/HTTP/Request.html",
176
+ "doc/classes/GData/HTTP/Request.src/M000015.html",
177
+ "doc/classes/GData/HTTP/Request.src/M000016.html",
178
+ "doc/classes/GData/HTTP/Request.src/M000017.html",
179
+ "doc/classes/GData/HTTP/Request.src/M000018.html",
180
+ "doc/classes/GData/HTTP/Request.src/M000033.html",
181
+ "doc/classes/GData/HTTP/Request.src/M000034.html",
182
+ "doc/classes/GData/HTTP/Request.src/M000035.html",
183
+ "doc/classes/GData/HTTP/Request.src/M000036.html",
184
+ "doc/classes/GData/HTTP/Request.src/M000038.html",
185
+ "doc/classes/GData/HTTP/Request.src/M000039.html",
186
+ "doc/classes/GData/HTTP/Request.src/M000040.html",
187
+ "doc/classes/GData/HTTP/Request.src/M000041.html",
188
+ "doc/classes/GData/HTTP/Request.src/M000042.html",
189
+ "doc/classes/GData/HTTP/Request.src/M000043.html",
190
+ "doc/classes/GData/HTTP/Request.src/M000044.html",
191
+ "doc/classes/GData/HTTP/Request.src/M000045.html",
192
+ "doc/classes/GData/HTTP/Response.html",
193
+ "doc/classes/GData/HTTP/Response.src/M000032.html",
194
+ "doc/classes/GData/HTTP/Response.src/M000035.html",
195
+ "doc/classes/GData/HTTP/Response.src/M000038.html",
196
+ "doc/classes/GData/HTTP/Response.src/M000039.html",
197
+ "doc/created.rid",
198
+ "doc/files/README.html",
199
+ "doc/files/lib/gdata/auth/authsub_rb.html",
200
+ "doc/files/lib/gdata/auth/clientlogin_rb.html",
201
+ "doc/files/lib/gdata/auth_rb.html",
202
+ "doc/files/lib/gdata/client/apps_rb.html",
203
+ "doc/files/lib/gdata/client/base_rb.html",
204
+ "doc/files/lib/gdata/client/blogger_rb.html",
205
+ "doc/files/lib/gdata/client/booksearch_rb.html",
206
+ "doc/files/lib/gdata/client/calendar_rb.html",
207
+ "doc/files/lib/gdata/client/contacts_rb.html",
208
+ "doc/files/lib/gdata/client/doclist_rb.html",
209
+ "doc/files/lib/gdata/client/finance_rb.html",
210
+ "doc/files/lib/gdata/client/gbase_rb.html",
211
+ "doc/files/lib/gdata/client/gdata_rb.html",
212
+ "doc/files/lib/gdata/client/gmail_rb.html",
213
+ "doc/files/lib/gdata/client/health_rb.html",
214
+ "doc/files/lib/gdata/client/notebook_rb.html",
215
+ "doc/files/lib/gdata/client/photos_rb.html",
216
+ "doc/files/lib/gdata/client/spreadsheets_rb.html",
217
+ "doc/files/lib/gdata/client/webmaster_tools_rb.html",
218
+ "doc/files/lib/gdata/client/youtube_rb.html",
219
+ "doc/files/lib/gdata/client_rb.html",
220
+ "doc/files/lib/gdata/http/default_service_rb.html",
221
+ "doc/files/lib/gdata/http/mime_body_rb.html",
222
+ "doc/files/lib/gdata/http/request_rb.html",
223
+ "doc/files/lib/gdata/http/response_rb.html",
224
+ "doc/files/lib/gdata/http_rb.html",
225
+ "doc/files/lib/gdata_rb.html",
226
+ "doc/fr_class_index.html",
227
+ "doc/fr_file_index.html",
228
+ "doc/fr_method_index.html",
229
+ "doc/index.html",
230
+ "doc/rdoc-style.css",
231
+ "gdata19.gemspec",
232
+ "lib/gdata.rb",
233
+ "lib/gdata/auth.rb",
234
+ "lib/gdata/auth/authsub.rb",
235
+ "lib/gdata/auth/clientlogin.rb",
236
+ "lib/gdata/client.rb",
237
+ "lib/gdata/client/apps.rb",
238
+ "lib/gdata/client/base.rb",
239
+ "lib/gdata/client/blogger.rb",
240
+ "lib/gdata/client/booksearch.rb",
241
+ "lib/gdata/client/calendar.rb",
242
+ "lib/gdata/client/contacts.rb",
243
+ "lib/gdata/client/doclist.rb",
244
+ "lib/gdata/client/finance.rb",
245
+ "lib/gdata/client/gbase.rb",
246
+ "lib/gdata/client/gmail.rb",
247
+ "lib/gdata/client/health.rb",
248
+ "lib/gdata/client/notebook.rb",
249
+ "lib/gdata/client/photos.rb",
250
+ "lib/gdata/client/spreadsheets.rb",
251
+ "lib/gdata/client/webmaster_tools.rb",
252
+ "lib/gdata/client/youtube.rb",
253
+ "lib/gdata/http.rb",
254
+ "lib/gdata/http/default_service.rb",
255
+ "lib/gdata/http/mime_body.rb",
256
+ "lib/gdata/http/request.rb",
257
+ "lib/gdata/http/response.rb",
258
+ "pkg/gdata19-1.1.2.gem",
259
+ "test/tc_gdata_auth_authsub.rb",
260
+ "test/tc_gdata_auth_clientlogin.rb",
261
+ "test/tc_gdata_client_base.rb",
262
+ "test/tc_gdata_client_calendar.rb",
263
+ "test/tc_gdata_client_photos.rb",
264
+ "test/tc_gdata_client_youtube.rb",
265
+ "test/tc_gdata_http_mime_body.rb",
266
+ "test/tc_gdata_http_request.rb",
267
+ "test/test_config.yml.example",
268
+ "test/test_helper.rb",
269
+ "test/testimage.jpg",
270
+ "test/ts_gdata.rb",
271
+ "test/ts_gdata_auth.rb",
272
+ "test/ts_gdata_client.rb",
273
+ "test/ts_gdata_http.rb"
274
+ ]
275
+ s.homepage = %q{http://github.com/tokumine/GData}
276
+ s.rdoc_options = ["--charset=UTF-8"]
277
+ s.require_paths = ["lib"]
278
+ s.rubygems_version = %q{1.3.7}
279
+ s.summary = %q{Google Data APIs Ruby Utility Library}
280
+ s.test_files = [
281
+ "test/ts_gdata.rb"
282
+ ]
283
+
284
+ if s.respond_to? :specification_version then
285
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
286
+ s.specification_version = 3
287
+
288
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
289
+ else
290
+ end
291
+ else
292
+ end
293
+ end
294
+
@@ -0,0 +1,162 @@
1
+ # encoding: UTF-8
2
+ # Copyright (C) 2008 Google Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'cgi'
17
+ require 'openssl'
18
+ require 'base64'
19
+
20
+ module GData
21
+ module Auth
22
+
23
+ # This class implements AuthSub signatures for Data API requests.
24
+ # It can be used with a GData::Client::GData object.
25
+ class AuthSub
26
+
27
+ # The URL of AuthSubRequest.
28
+ REQUEST_HANDLER = 'https://www.google.com/accounts/AuthSubRequest'
29
+ # The URL of AuthSubSessionToken.
30
+ SESSION_HANDLER = 'https://www.google.com/accounts/AuthSubSessionToken'
31
+ # The URL of AuthSubRevokeToken.
32
+ REVOKE_HANDLER = 'https://www.google.com/accounts/AuthSubRevokeToken'
33
+ # The URL of AuthSubInfo.
34
+ INFO_HANDLER = 'https://www.google.com/accounts/AuthSubTokenInfo'
35
+ # 2 ** 64, the largest 64 bit unsigned integer
36
+ BIG_INT_MAX = 18446744073709551616
37
+
38
+ # AuthSub access token.
39
+ attr_accessor :token
40
+ # Private RSA key used to sign secure requests.
41
+ attr_reader :private_key
42
+
43
+ # Initialize the class with a new token. Optionally pass a private
44
+ # key or custom URLs.
45
+ def initialize(token, options = {})
46
+ if token.nil?
47
+ raise ArgumentError, "Token cannot be nil."
48
+ elsif token.class != String
49
+ raise ArgumentError, "Token must be a String."
50
+ end
51
+
52
+ @token = token
53
+
54
+ options.each do |key, value|
55
+ self.send("#{key}=", value)
56
+ end
57
+ end
58
+
59
+ # Set the private key to use with this AuthSub token.
60
+ # The key can be an OpenSSL::PKey::RSA object, a string containing a
61
+ # private key in PEM format, or a string specifying a path to a PEM
62
+ # file that contains the private key.
63
+ def private_key=(key)
64
+ begin
65
+ if key.nil? or key.class == OpenSSL::PKey::RSA
66
+ @private_key = key
67
+ elsif File.exists?(key)
68
+ key_from_file = File.read(key)
69
+ @private_key = OpenSSL::PKey::RSA.new(key_from_file)
70
+ else
71
+ @private_key = OpenSSL::PKey::RSA.new(key)
72
+ end
73
+ rescue
74
+ raise ArgumentError, "Not a valid private key."
75
+ end
76
+ end
77
+
78
+ # Sign a GData::Http::Request object with a valid AuthSub Authorization
79
+ # header.
80
+ def sign_request!(request)
81
+ header = "AuthSub token=\"#{@token}\""
82
+
83
+ if @private_key
84
+ time = Time.now.to_i
85
+ nonce = OpenSSL::BN.rand_range(BIG_INT_MAX)
86
+ method = request.method.to_s.upcase
87
+ data = "#{method} #{request.url} #{time} #{nonce}"
88
+ sig = @private_key.sign(OpenSSL::Digest::SHA1.new, data)
89
+ sig = Base64.encode64(sig).gsub(/\n/, '')
90
+ header = "#{header} sigalg=\"rsa-sha1\" data=\"#{data}\""
91
+ header = "#{header} sig=\"#{sig}\""
92
+ end
93
+
94
+ request.headers['Authorization'] = header
95
+ end
96
+
97
+ # Upgrade the current token into a session token.
98
+ def upgrade
99
+ request = GData::HTTP::Request.new(SESSION_HANDLER)
100
+ sign_request!(request)
101
+ service = GData::HTTP::DefaultService.new
102
+ response = service.make_request(request)
103
+ if response.status_code != 200
104
+ raise GData::Client::AuthorizationError.new(response)
105
+ end
106
+
107
+ @token = response.body[/Token=(.*)/,1]
108
+ return @token
109
+
110
+ end
111
+
112
+ # Return some information about the current token. If the current token
113
+ # is a one-time use token, this operation will use it up!
114
+ def info
115
+ request = GData::HTTP::Request.new(INFO_HANDLER)
116
+ sign_request!(request)
117
+ service = GData::HTTP::DefaultService.new
118
+ response = service.make_request(request)
119
+ if response.status_code != 200
120
+ raise GData::Client::AuthorizationError.new(response)
121
+ end
122
+
123
+ result = {}
124
+ result[:target] = response.body[/Target=(.*)/,1]
125
+ result[:scope] = response.body[/Scope=(.*)/,1]
126
+ result[:secure] = response.body[/Secure=(.*)/,1]
127
+ return result
128
+
129
+ end
130
+
131
+ # Revoke the token.
132
+ def revoke
133
+ request = GData::HTTP::Request.new(REVOKE_HANDLER)
134
+ sign_request!(request)
135
+ service = GData::HTTP::DefaultService.new
136
+ response = service.make_request(request)
137
+ if response.status_code != 200
138
+ raise GData::Client::AuthorizationError.new(response)
139
+ end
140
+
141
+ end
142
+
143
+ # Return the proper URL for an AuthSub approval page with the requested
144
+ # scope. next_url should be a URL that points back to your code that
145
+ # will receive the token. domain is optionally a Google Apps domain.
146
+ def self.get_url(next_url, scope, secure = false, session = true,
147
+ domain = nil)
148
+ next_url = CGI.escape(next_url)
149
+ scope = CGI.escape(scope)
150
+ secure = secure ? 1 : 0
151
+ session = session ? 1 : 0
152
+ body = "next=#{next_url}&scope=#{scope}&session=#{session}" +
153
+ "&secure=#{secure}"
154
+ if domain
155
+ domain = CGI.escape(domain)
156
+ body = "#{body}&hd=#{domain}"
157
+ end
158
+ return "#{REQUEST_HANDLER}?#{body}"
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,103 @@
1
+ # encoding: UTF-8
2
+ # Copyright (C) 2008 Google Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'cgi'
17
+
18
+ module GData
19
+ module Auth
20
+
21
+ # This class implements ClientLogin signatures for Data API requests.
22
+ # It can be used with a GData::Client::GData object.
23
+ class ClientLogin
24
+
25
+ # The ClientLogin authentication handler
26
+ attr_accessor :auth_url
27
+ # One of 'HOSTED_OR_GOOGLE', 'GOOGLE', or 'HOSTED'.
28
+ # See documentation here:
29
+ # http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
30
+ attr_accessor :account_type
31
+ # The access token
32
+ attr_accessor :token
33
+ # The service name for the API you are working with
34
+ attr_accessor :service
35
+
36
+ # Initialize the class with the service name of an API that you wish
37
+ # to request a token for.
38
+ def initialize(service, options = {})
39
+ if service.nil?
40
+ raise ArgumentError, "Service name cannot be nil"
41
+ end
42
+
43
+ @service = service
44
+
45
+ options.each do |key, value|
46
+ self.send("#{key}=", value)
47
+ end
48
+
49
+ @auth_url ||= 'https://www.google.com/accounts/ClientLogin'
50
+ @account_type ||= 'HOSTED_OR_GOOGLE'
51
+ end
52
+
53
+ # Retrieves a token for the given username and password.
54
+ # source identifies your application.
55
+ # login_token and login_captcha are used only if you are responding
56
+ # to a previously issued CAPTCHA challenge.
57
+ def get_token(username, password, source, login_token = nil,
58
+ login_captcha = nil)
59
+ body = Hash.new
60
+ body['accountType'] = @account_type
61
+ body['Email'] = username
62
+ body['Passwd'] = password
63
+ body['service'] = @service
64
+ body['source'] = source
65
+ if login_token and login_captcha
66
+ body['logintoken'] = login_token
67
+ body['logincaptcha'] = login_captcha
68
+ end
69
+
70
+ request = GData::HTTP::Request.new(@auth_url, :body => body,
71
+ :method => :post)
72
+ service = GData::HTTP::DefaultService.new
73
+ response = service.make_request(request)
74
+ if response.status_code != 200
75
+ url = response.body[/Url=(.*)/,1]
76
+ error = response.body[/Error=(.*)/,1]
77
+
78
+ if error == "CaptchaRequired"
79
+ captcha_token = response.body[/CaptchaToken=(.*)/,1]
80
+ captcha_url = response.body[/CaptchaUrl=(.*)/,1]
81
+ raise GData::Client::CaptchaError.new(captcha_token, captcha_url),
82
+ "#{error} : #{url}"
83
+ end
84
+
85
+ raise GData::Client::AuthorizationError.new(response)
86
+ end
87
+
88
+ @token = response.body[/Auth=(.*)/,1]
89
+ return @token
90
+ end
91
+
92
+ # Creates an appropriate Authorization header on a GData::HTTP::Request
93
+ # object.
94
+ def sign_request!(request)
95
+ if @token == nil
96
+ raise GData::Client::Error, "Cannot sign request without credentials"
97
+ end
98
+
99
+ request.headers['Authorization'] = "GoogleLogin auth=#{@token}"
100
+ end
101
+ end
102
+ end
103
+ end
data/lib/gdata/auth.rb ADDED
@@ -0,0 +1,23 @@
1
+ # encoding: UTF-8
2
+ # Copyright (C) 2008 Google Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'gdata/auth/clientlogin'
17
+ require 'gdata/auth/authsub'
18
+
19
+ module GData
20
+ module Auth
21
+ SOURCE_LIB_STRING = 'GoogleDataRubyUtil-'
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ # encoding: UTF-8
2
+ # Copyright (C) 2008 Google Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ module GData
17
+ module Client
18
+
19
+ # Client class to wrap working with the Apps Provisioning API.
20
+ class Apps < Base
21
+
22
+ def initialize(options = {})
23
+ options[:clientlogin_service] ||= 'apps'
24
+ super(options)
25
+ end
26
+ end
27
+ end
28
+ end