flickr.rb 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/Changelog.txt +7 -2
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +24 -0
  5. data/LICENSE +16 -17
  6. data/Manifest.txt +2 -2
  7. data/README.txt +3 -1
  8. data/Rakefile +3 -24
  9. data/flickr.gemspec +22 -17
  10. data/lib/flickr.rb +104 -104
  11. data/rdoc/Flickr.html +1003 -0
  12. data/rdoc/Flickr/Config.html +267 -0
  13. data/rdoc/Flickr/Group.html +343 -0
  14. data/rdoc/Flickr/Photo.html +1396 -0
  15. data/rdoc/Flickr/PhotoCollection.html +229 -0
  16. data/rdoc/Flickr/Photoset.html +359 -0
  17. data/rdoc/Flickr/User.html +745 -0
  18. data/rdoc/README_txt.html +199 -0
  19. data/rdoc/created.rid +3 -1
  20. data/rdoc/fonts.css +167 -0
  21. data/rdoc/fonts/Lato-Light.ttf +0 -0
  22. data/rdoc/fonts/Lato-LightItalic.ttf +0 -0
  23. data/rdoc/fonts/Lato-Regular.ttf +0 -0
  24. data/rdoc/fonts/Lato-RegularItalic.ttf +0 -0
  25. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  26. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  27. data/rdoc/images/add.png +0 -0
  28. data/rdoc/images/arrow_up.png +0 -0
  29. data/rdoc/images/brick.png +0 -0
  30. data/rdoc/images/brick_link.png +0 -0
  31. data/rdoc/images/bug.png +0 -0
  32. data/rdoc/images/bullet_black.png +0 -0
  33. data/rdoc/images/bullet_toggle_minus.png +0 -0
  34. data/rdoc/images/bullet_toggle_plus.png +0 -0
  35. data/rdoc/images/date.png +0 -0
  36. data/rdoc/images/delete.png +0 -0
  37. data/rdoc/images/find.png +0 -0
  38. data/rdoc/images/loadingAnimation.gif +0 -0
  39. data/rdoc/images/macFFBgHack.png +0 -0
  40. data/rdoc/images/package.png +0 -0
  41. data/rdoc/images/page_green.png +0 -0
  42. data/rdoc/images/page_white_text.png +0 -0
  43. data/rdoc/images/page_white_width.png +0 -0
  44. data/rdoc/images/plugin.png +0 -0
  45. data/rdoc/images/ruby.png +0 -0
  46. data/rdoc/images/tag_blue.png +0 -0
  47. data/rdoc/images/tag_green.png +0 -0
  48. data/rdoc/images/transparent.png +0 -0
  49. data/rdoc/images/wrench.png +0 -0
  50. data/rdoc/images/wrench_orange.png +0 -0
  51. data/rdoc/images/zoom.png +0 -0
  52. data/rdoc/index.html +101 -21
  53. data/rdoc/js/darkfish.js +140 -0
  54. data/rdoc/js/jquery.js +18 -0
  55. data/rdoc/js/navigation.js +142 -0
  56. data/rdoc/js/search.js +109 -0
  57. data/rdoc/js/search_index.js +1 -0
  58. data/rdoc/js/searcher.js +228 -0
  59. data/rdoc/rdoc.css +580 -0
  60. data/rdoc/table_of_contents.html +473 -0
  61. data/test/flickr_test.rb +229 -227
  62. metadata +132 -68
  63. data/rdoc/classes/Flickr.html +0 -807
  64. data/rdoc/classes/Flickr/Config.html +0 -240
  65. data/rdoc/classes/Flickr/Group.html +0 -251
  66. data/rdoc/classes/Flickr/Photo.html +0 -1101
  67. data/rdoc/classes/Flickr/PhotoCollection.html +0 -194
  68. data/rdoc/classes/Flickr/Photoset.html +0 -266
  69. data/rdoc/classes/Flickr/User.html +0 -738
  70. data/rdoc/files/README_txt.html +0 -209
  71. data/rdoc/files/lib/flickr_rb.html +0 -162
  72. data/rdoc/fr_class_index.html +0 -33
  73. data/rdoc/fr_file_index.html +0 -28
  74. data/rdoc/fr_method_index.html +0 -112
  75. data/rdoc/rdoc-style.css +0 -208
@@ -0,0 +1,1003 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class Flickr - Flickr</title>
8
+
9
+ <link href="./fonts.css" rel="stylesheet">
10
+ <link href="./rdoc.css" rel="stylesheet">
11
+
12
+ <script type="text/javascript">
13
+ var rdoc_rel_prefix = "./";
14
+ </script>
15
+
16
+ <script src="./js/jquery.js"></script>
17
+ <script src="./js/navigation.js"></script>
18
+ <script src="./js/search_index.js"></script>
19
+ <script src="./js/search.js"></script>
20
+ <script src="./js/searcher.js"></script>
21
+ <script src="./js/darkfish.js"></script>
22
+
23
+
24
+ <body id="top" role="document" class="class">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="./index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="./table_of_contents.html#pages">Pages</a>
34
+ <a href="./table_of_contents.html#classes">Classes</a>
35
+ <a href="./table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search" spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+ <div id="parent-class-section" class="nav-section">
61
+ <h3>Parent</h3>
62
+
63
+
64
+ <p class="link">Object
65
+
66
+ </div>
67
+
68
+
69
+
70
+ <!-- Method Quickref -->
71
+ <div id="method-list-section" class="nav-section">
72
+ <h3>Methods</h3>
73
+
74
+ <ul class="link-list" role="directory">
75
+
76
+ <li ><a href="#method-c-new">::new</a>
77
+
78
+ <li ><a href="#method-i-find_by_url">#find_by_url</a>
79
+
80
+ <li ><a href="#method-i-get_token_from">#get_token_from</a>
81
+
82
+ <li ><a href="#method-i-groups">#groups</a>
83
+
84
+ <li ><a href="#method-i-http_get">#http_get</a>
85
+
86
+ <li ><a href="#method-i-licenses">#licenses</a>
87
+
88
+ <li ><a href="#method-i-login_url">#login_url</a>
89
+
90
+ <li ><a href="#method-i-method_missing">#method_missing</a>
91
+
92
+ <li ><a href="#method-i-photos">#photos</a>
93
+
94
+ <li ><a href="#method-i-photos_request">#photos_request</a>
95
+
96
+ <li ><a href="#method-i-photos_search">#photos_search</a>
97
+
98
+ <li ><a href="#method-i-photoset">#photoset</a>
99
+
100
+ <li ><a href="#method-i-recent">#recent</a>
101
+
102
+ <li ><a href="#method-i-related_tags">#related_tags</a>
103
+
104
+ <li ><a href="#method-i-request">#request</a>
105
+
106
+ <li ><a href="#method-i-request_url">#request_url</a>
107
+
108
+ <li ><a href="#method-i-search">#search</a>
109
+
110
+ <li ><a href="#method-i-set_up_configuration">#set_up_configuration</a>
111
+
112
+ <li ><a href="#method-i-signature_from">#signature_from</a>
113
+
114
+ <li ><a href="#method-i-tag">#tag</a>
115
+
116
+ <li ><a href="#method-i-users">#users</a>
117
+
118
+ </ul>
119
+ </div>
120
+
121
+ </div>
122
+ </nav>
123
+
124
+ <main role="main" aria-labelledby="class-Flickr">
125
+ <h1 id="class-Flickr" class="class">
126
+ class Flickr
127
+ </h1>
128
+
129
+ <section class="description">
130
+
131
+ <p><a href="Flickr.html">Flickr</a> client class. Requires an API key</p>
132
+
133
+ </section>
134
+
135
+
136
+
137
+
138
+ <section id="5Buntitled-5D" class="documentation-section">
139
+
140
+
141
+
142
+
143
+
144
+ <section class="constants-list">
145
+ <header>
146
+ <h3>Constants</h3>
147
+ </header>
148
+ <dl>
149
+
150
+ <dt id="API_PATH">API_PATH
151
+
152
+ <dd>
153
+
154
+
155
+ <dt id="HOST_URL">HOST_URL
156
+
157
+ <dd>
158
+
159
+
160
+ <dt id="VALID_SIZES">VALID_SIZES
161
+
162
+ <dd><p><a href="Flickr.html">Flickr</a>, annoyingly, uses a number of
163
+ representations to specify the size of a photo, depending on the context.
164
+ It gives a label such a “Small” or “Medium” to a size of photo, when
165
+ returning all possible sizes. However, when generating the uri for the page
166
+ that features that size of photo, or the source url for the image itself it
167
+ uses a single letter. Bizarrely, these letters are different depending on
168
+ whether you want the <a href="Flickr.html">Flickr</a> page for the photo or
169
+ the source uri – e.g. a “Small” photo (240 pixels on its longest side) may
170
+ be viewed at “<a
171
+ href="http://www.flickr.com/photos/sco/2397458775/sizes/s">www.flickr.com/photos/sco/2397458775/sizes/s</a>/”
172
+ but its source is at “<img
173
+ src="http://farm4.static.flickr.com/3118/2397458775_2ec2ddc324_m.jpg" />”.
174
+ The <a href="Flickr.html#VALID_SIZES">VALID_SIZES</a> hash associates the
175
+ correct letter with a label</p>
176
+
177
+
178
+ </dl>
179
+ </section>
180
+
181
+
182
+
183
+ <section class="attribute-method-details" class="method-section">
184
+ <header>
185
+ <h3>Attributes</h3>
186
+ </header>
187
+
188
+
189
+ <div id="attribute-i-api_key" class="method-detail">
190
+ <div class="method-heading attribute-method-heading">
191
+ <span class="method-name">api_key</span><span
192
+ class="attribute-access-type">[R]</span>
193
+ </div>
194
+
195
+ <div class="method-description">
196
+
197
+
198
+
199
+ </div>
200
+ </div>
201
+
202
+ <div id="attribute-i-auth_token" class="method-detail">
203
+ <div class="method-heading attribute-method-heading">
204
+ <span class="method-name">auth_token</span><span
205
+ class="attribute-access-type">[R]</span>
206
+ </div>
207
+
208
+ <div class="method-description">
209
+
210
+
211
+
212
+ </div>
213
+ </div>
214
+
215
+ <div id="attribute-i-user" class="method-detail">
216
+ <div class="method-heading attribute-method-heading">
217
+ <span class="method-name">user</span><span
218
+ class="attribute-access-type">[RW]</span>
219
+ </div>
220
+
221
+ <div class="method-description">
222
+
223
+
224
+
225
+ </div>
226
+ </div>
227
+
228
+ </section>
229
+
230
+
231
+
232
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
233
+ <header>
234
+ <h3>Public Class Methods</h3>
235
+ </header>
236
+
237
+
238
+ <div id="method-c-new" class="method-detail ">
239
+
240
+ <div class="method-heading">
241
+ <span class="method-name">new</span><span
242
+ class="method-args">(api_key_or_params={})</span>
243
+
244
+ <span class="method-click-advice">click to toggle source</span>
245
+
246
+ </div>
247
+
248
+
249
+ <div class="method-description">
250
+
251
+ <p>To use the <a href="Flickr.html">Flickr</a> API you need an api key (see <a
252
+ href="http://www.flickr.com/services/api/misc.api_keys.html">www.flickr.com/services/api/misc.api_keys.html</a>),
253
+ and the flickr client object shuld be initialized with this. You&#39;ll
254
+ also need a shared secret code if you want to use authentication (e.g. to
255
+ get a user&#39;s private photos) There are two ways to initialize the <a
256
+ href="Flickr.html">Flickr</a> client. The preferred way is with a hash of
257
+ params, e.g. &#39;api_key&#39; =&gt; &#39;your_api_key&#39;,
258
+ &#39;shared_secret&#39; =&gt; &#39;shared_secret_code&#39;. Other way is to
259
+ use in Rails an config file RAILS_ROOT/config/flickr.api.yml and there use
260
+ params as key/values even specified for every environment.</p>
261
+
262
+
263
+
264
+
265
+ <div class="method-source-code" id="new-source">
266
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 78</span>
267
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">api_key_or_params</span>={})
268
+ <span class="ruby-ivar">@host</span> = <span class="ruby-constant">HOST_URL</span>
269
+ <span class="ruby-ivar">@api</span> = <span class="ruby-constant">API_PATH</span>
270
+ <span class="ruby-identifier">api_key_or_params</span>={} <span class="ruby-keyword">if</span> <span class="ruby-identifier">api_key_or_params</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment"># fix for nil value as argument</span>
271
+ <span class="ruby-identifier">api_key_or_params</span> = {<span class="ruby-value">:api_key</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">api_key_or_params</span>} <span class="ruby-keyword">if</span> <span class="ruby-identifier">api_key_or_params</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
272
+ <span class="ruby-identifier">api_key_or_params</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">get</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Config</span>.<span class="ruby-identifier">parsed?</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">api_key_or_params</span>.<span class="ruby-identifier">empty?</span>
273
+ <span class="ruby-identifier">set_up_configuration</span> <span class="ruby-identifier">api_key_or_params</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">api_key_or_params</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>
274
+ <span class="ruby-keyword">end</span></pre>
275
+ </div>
276
+
277
+ </div>
278
+
279
+
280
+
281
+
282
+ </div>
283
+
284
+
285
+ </section>
286
+
287
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
288
+ <header>
289
+ <h3>Public Instance Methods</h3>
290
+ </header>
291
+
292
+
293
+ <div id="method-i-find_by_url" class="method-detail ">
294
+
295
+ <div class="method-heading">
296
+ <span class="method-name">find_by_url</span><span
297
+ class="method-args">(url)</span>
298
+
299
+ <span class="method-click-advice">click to toggle source</span>
300
+
301
+ </div>
302
+
303
+
304
+ <div class="method-description">
305
+
306
+ <p>Implements flickr.urls.lookupGroup and flickr.urls.lookupUser</p>
307
+
308
+
309
+
310
+
311
+ <div class="method-source-code" id="find_by_url-source">
312
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 107</span>
313
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_by_url</span>(<span class="ruby-identifier">url</span>)
314
+ <span class="ruby-identifier">response</span> = <span class="ruby-identifier">urls_lookupUser</span>(<span class="ruby-string">&#39;url&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">url</span>) <span class="ruby-keyword">rescue</span> <span class="ruby-identifier">urls_lookupGroup</span>(<span class="ruby-string">&#39;url&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">url</span>) <span class="ruby-keyword">rescue</span> <span class="ruby-keyword">nil</span>
315
+ (<span class="ruby-identifier">response</span>[<span class="ruby-string">&#39;user&#39;</span>]) <span class="ruby-operator">?</span> <span class="ruby-constant">User</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>[<span class="ruby-string">&#39;user&#39;</span>][<span class="ruby-string">&#39;id&#39;</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-ivar">@api_key</span>) <span class="ruby-operator">:</span> <span class="ruby-constant">Group</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>[<span class="ruby-string">&#39;group&#39;</span>][<span class="ruby-string">&#39;id&#39;</span>], <span class="ruby-ivar">@api_key</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">nil?</span>
316
+ <span class="ruby-keyword">end</span></pre>
317
+ </div>
318
+
319
+ </div>
320
+
321
+
322
+
323
+
324
+ </div>
325
+
326
+
327
+ <div id="method-i-get_token_from" class="method-detail ">
328
+
329
+ <div class="method-heading">
330
+ <span class="method-name">get_token_from</span><span
331
+ class="method-args">(frob)</span>
332
+
333
+ <span class="method-click-advice">click to toggle source</span>
334
+
335
+ </div>
336
+
337
+
338
+ <div class="method-description">
339
+
340
+ <p>Gets authentication token given a <a href="Flickr.html">Flickr</a> frob,
341
+ which is returned when user allows access to their account for the
342
+ application with the <a href="Flickr.html#attribute-i-api_key">#api_key</a>
343
+ which made the request</p>
344
+
345
+
346
+
347
+
348
+ <div class="method-source-code" id="get_token_from-source">
349
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 96</span>
350
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_token_from</span>(<span class="ruby-identifier">frob</span>)
351
+ <span class="ruby-identifier">auth_response</span> = <span class="ruby-identifier">request</span>(<span class="ruby-string">&quot;auth.getToken&quot;</span>, <span class="ruby-value">:frob</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">frob</span>)[<span class="ruby-string">&#39;auth&#39;</span>]
352
+ <span class="ruby-ivar">@auth_token</span> = <span class="ruby-identifier">auth_response</span>[<span class="ruby-string">&#39;token&#39;</span>]
353
+ <span class="ruby-ivar">@user</span> = <span class="ruby-constant">User</span>.<span class="ruby-identifier">new</span>( <span class="ruby-string">&#39;id&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">auth_response</span>[<span class="ruby-string">&#39;user&#39;</span>][<span class="ruby-string">&#39;nsid&#39;</span>],
354
+ <span class="ruby-string">&#39;username&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">auth_response</span>[<span class="ruby-string">&#39;user&#39;</span>][<span class="ruby-string">&#39;username&#39;</span>],
355
+ <span class="ruby-string">&#39;name&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">auth_response</span>[<span class="ruby-string">&#39;user&#39;</span>][<span class="ruby-string">&#39;fullname&#39;</span>],
356
+ <span class="ruby-string">&#39;client&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">self</span>)
357
+ <span class="ruby-ivar">@auth_token</span>
358
+ <span class="ruby-keyword">end</span></pre>
359
+ </div>
360
+
361
+ </div>
362
+
363
+
364
+
365
+
366
+ </div>
367
+
368
+
369
+ <div id="method-i-groups" class="method-detail ">
370
+
371
+ <div class="method-heading">
372
+ <span class="method-name">groups</span><span
373
+ class="method-args">(group_name, options={})</span>
374
+
375
+ <span class="method-click-advice">click to toggle source</span>
376
+
377
+ </div>
378
+
379
+
380
+ <div class="method-description">
381
+
382
+ <p>Implements flickr.groups.search</p>
383
+
384
+
385
+
386
+
387
+ <div class="method-source-code" id="groups-source">
388
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 140</span>
389
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">groups</span>(<span class="ruby-identifier">group_name</span>, <span class="ruby-identifier">options</span>={})
390
+ <span class="ruby-identifier">collection</span> = <span class="ruby-identifier">groups_search</span>({<span class="ruby-string">&quot;text&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">group_name</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>))[<span class="ruby-string">&#39;groups&#39;</span>][<span class="ruby-string">&#39;group&#39;</span>]
391
+ <span class="ruby-identifier">collection</span> = [<span class="ruby-identifier">collection</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">collection</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>
392
+
393
+ <span class="ruby-identifier">collection</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">group</span><span class="ruby-operator">|</span> <span class="ruby-constant">Group</span>.<span class="ruby-identifier">new</span>( <span class="ruby-string">&quot;id&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">group</span>[<span class="ruby-string">&#39;nsid&#39;</span>],
394
+ <span class="ruby-string">&quot;name&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">group</span>[<span class="ruby-string">&#39;name&#39;</span>],
395
+ <span class="ruby-string">&quot;eighteenplus&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">group</span>[<span class="ruby-string">&#39;eighteenplus&#39;</span>],
396
+ <span class="ruby-string">&quot;client&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">self</span>) }
397
+ <span class="ruby-keyword">end</span></pre>
398
+ </div>
399
+
400
+ </div>
401
+
402
+
403
+
404
+
405
+ </div>
406
+
407
+
408
+ <div id="method-i-http_get" class="method-detail ">
409
+
410
+ <div class="method-heading">
411
+ <span class="method-name">http_get</span><span
412
+ class="method-args">(url)</span>
413
+
414
+ <span class="method-click-advice">click to toggle source</span>
415
+
416
+ </div>
417
+
418
+
419
+ <div class="method-description">
420
+
421
+ <p>Does an HTTP GET on a given URL and returns the response body</p>
422
+
423
+
424
+
425
+
426
+ <div class="method-source-code" id="http_get-source">
427
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 178</span>
428
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">http_get</span>(<span class="ruby-identifier">url</span>)
429
+ <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">get_response</span>(<span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">url</span>)).<span class="ruby-identifier">body</span>.<span class="ruby-identifier">to_s</span>
430
+ <span class="ruby-keyword">end</span></pre>
431
+ </div>
432
+
433
+ </div>
434
+
435
+
436
+
437
+
438
+ </div>
439
+
440
+
441
+ <div id="method-i-licenses" class="method-detail ">
442
+
443
+ <div class="method-heading">
444
+ <span class="method-name">licenses</span><span
445
+ class="method-args">()</span>
446
+
447
+ <span class="method-click-advice">click to toggle source</span>
448
+
449
+ </div>
450
+
451
+
452
+ <div class="method-description">
453
+
454
+ <p>Implements flickr.photos.licenses.getInfo</p>
455
+
456
+
457
+
458
+
459
+ <div class="method-source-code" id="licenses-source">
460
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 160</span>
461
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">licenses</span>
462
+ <span class="ruby-identifier">photos_licenses_getInfo</span>[<span class="ruby-string">&#39;licenses&#39;</span>][<span class="ruby-string">&#39;license&#39;</span>]
463
+ <span class="ruby-keyword">end</span></pre>
464
+ </div>
465
+
466
+ </div>
467
+
468
+
469
+
470
+
471
+ </div>
472
+
473
+
474
+ <div id="method-i-login_url" class="method-detail ">
475
+
476
+ <div class="method-heading">
477
+ <span class="method-name">login_url</span><span
478
+ class="method-args">(perms)</span>
479
+
480
+ <span class="method-click-advice">click to toggle source</span>
481
+
482
+ </div>
483
+
484
+
485
+ <div class="method-description">
486
+
487
+ <p>Returns url for user to login in to <a href="Flickr.html">Flickr</a> to
488
+ authenticate app for a user</p>
489
+
490
+
491
+
492
+
493
+ <div class="method-source-code" id="login_url-source">
494
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 165</span>
495
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">login_url</span>(<span class="ruby-identifier">perms</span>)
496
+ <span class="ruby-node">&quot;http://flickr.com/services/auth/?api_key=#{@api_key}&amp;perms=#{perms}&amp;api_sig=#{signature_from(&#39;api_key&#39;=&gt;@api_key, &#39;perms&#39; =&gt; perms)}&quot;</span>
497
+ <span class="ruby-keyword">end</span></pre>
498
+ </div>
499
+
500
+ </div>
501
+
502
+
503
+
504
+
505
+ </div>
506
+
507
+
508
+ <div id="method-i-method_missing" class="method-detail ">
509
+
510
+ <div class="method-heading">
511
+ <span class="method-name">method_missing</span><span
512
+ class="method-args">(method_id, params={})</span>
513
+
514
+ <span class="method-click-advice">click to toggle source</span>
515
+
516
+ </div>
517
+
518
+
519
+ <div class="method-description">
520
+
521
+ <p>Implements everything else. Any method not defined explicitly will be
522
+ passed on to the <a href="Flickr.html">Flickr</a> API, and return an
523
+ XmlSimple document. For example, Flickr#test_echo is not defined, so it
524
+ will pass the call to the flickr.test.echo method.</p>
525
+
526
+
527
+
528
+
529
+ <div class="method-source-code" id="method_missing-source">
530
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 173</span>
531
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">method_id</span>, <span class="ruby-identifier">params</span>={})
532
+ <span class="ruby-identifier">request</span>(<span class="ruby-identifier">method_id</span>.<span class="ruby-identifier">id2name</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/_/</span>, <span class="ruby-string">&#39;.&#39;</span>), <span class="ruby-identifier">params</span>)
533
+ <span class="ruby-keyword">end</span></pre>
534
+ </div>
535
+
536
+ </div>
537
+
538
+
539
+
540
+
541
+ </div>
542
+
543
+
544
+ <div id="method-i-photos" class="method-detail ">
545
+
546
+ <div class="method-heading">
547
+ <span class="method-name">photos</span><span
548
+ class="method-args">(*criteria)</span>
549
+
550
+ <span class="method-click-advice">click to toggle source</span>
551
+
552
+ </div>
553
+
554
+
555
+ <div class="method-description">
556
+
557
+ <p>Implements flickr.photos.getRecent and flickr.photos.search</p>
558
+
559
+
560
+
561
+
562
+ <div class="method-source-code" id="photos-source">
563
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 113</span>
564
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">photos</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">criteria</span>)
565
+ <span class="ruby-keyword">not</span> <span class="ruby-identifier">criteria</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">photos_search</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">criteria</span>) <span class="ruby-keyword">or</span> <span class="ruby-identifier">recent</span>
566
+ <span class="ruby-keyword">end</span></pre>
567
+ </div>
568
+
569
+ </div>
570
+
571
+
572
+
573
+
574
+ </div>
575
+
576
+
577
+ <div id="method-i-photos_request" class="method-detail ">
578
+
579
+ <div class="method-heading">
580
+ <span class="method-name">photos_request</span><span
581
+ class="method-args">(method, params={}, list_node="photos")</span>
582
+
583
+ <span class="method-click-advice">click to toggle source</span>
584
+
585
+ </div>
586
+
587
+
588
+ <div class="method-description">
589
+
590
+ <p>acts like request but returns a <a
591
+ href="Flickr/PhotoCollection.html">PhotoCollection</a> (a list of <a
592
+ href="Flickr/Photo.html">Photo</a> objects)</p>
593
+
594
+
595
+
596
+
597
+ <div class="method-source-code" id="photos_request-source">
598
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 191</span>
599
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">photos_request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">params</span>={}, <span class="ruby-identifier">list_node</span>=<span class="ruby-string">&quot;photos&quot;</span>)
600
+ <span class="ruby-identifier">photos</span> = <span class="ruby-identifier">request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">params</span>)
601
+ <span class="ruby-constant">PhotoCollection</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">photos</span>, <span class="ruby-ivar">@api_key</span>, <span class="ruby-identifier">list_node</span>)
602
+ <span class="ruby-keyword">end</span></pre>
603
+ </div>
604
+
605
+ </div>
606
+
607
+
608
+
609
+
610
+ </div>
611
+
612
+
613
+ <div id="method-i-photos_search" class="method-detail ">
614
+
615
+ <div class="method-heading">
616
+ <span class="method-name">photos_search</span><span
617
+ class="method-args">(params={})</span>
618
+
619
+ <span class="method-click-advice">click to toggle source</span>
620
+
621
+ </div>
622
+
623
+
624
+ <div class="method-description">
625
+
626
+
627
+
628
+
629
+
630
+
631
+ <div class="method-source-code" id="photos_search-source">
632
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 123</span>
633
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">photos_search</span>(<span class="ruby-identifier">params</span>={})
634
+ <span class="ruby-identifier">photos_request</span>(<span class="ruby-string">&#39;photos.search&#39;</span>, <span class="ruby-identifier">params</span>)
635
+ <span class="ruby-keyword">end</span></pre>
636
+ </div>
637
+
638
+ </div>
639
+
640
+
641
+ <div class="aliases">
642
+ Also aliased as: <a href="Flickr.html#method-i-search">search</a>
643
+ </div>
644
+
645
+
646
+
647
+ </div>
648
+
649
+
650
+ <div id="method-i-photoset" class="method-detail ">
651
+
652
+ <div class="method-heading">
653
+ <span class="method-name">photoset</span><span
654
+ class="method-args">(photoset_id)</span>
655
+
656
+ <span class="method-click-advice">click to toggle source</span>
657
+
658
+ </div>
659
+
660
+
661
+ <div class="method-description">
662
+
663
+
664
+
665
+
666
+
667
+
668
+ <div class="method-source-code" id="photoset-source">
669
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 150</span>
670
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">photoset</span>(<span class="ruby-identifier">photoset_id</span>)
671
+ <span class="ruby-constant">Photoset</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">photoset_id</span>, <span class="ruby-ivar">@api_key</span>)
672
+ <span class="ruby-keyword">end</span></pre>
673
+ </div>
674
+
675
+ </div>
676
+
677
+
678
+
679
+
680
+ </div>
681
+
682
+
683
+ <div id="method-i-recent" class="method-detail ">
684
+
685
+ <div class="method-heading">
686
+ <span class="method-name">recent</span><span
687
+ class="method-args">()</span>
688
+
689
+ <span class="method-click-advice">click to toggle source</span>
690
+
691
+ </div>
692
+
693
+
694
+ <div class="method-description">
695
+
696
+ <p>flickr.photos.getRecent 100 newest photos from everyone</p>
697
+
698
+
699
+
700
+
701
+ <div class="method-source-code" id="recent-source">
702
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 119</span>
703
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">recent</span>
704
+ <span class="ruby-identifier">photos_request</span>(<span class="ruby-string">&#39;photos.getRecent&#39;</span>)
705
+ <span class="ruby-keyword">end</span></pre>
706
+ </div>
707
+
708
+ </div>
709
+
710
+
711
+
712
+
713
+ </div>
714
+
715
+
716
+ <div id="method-i-related_tags" class="method-detail ">
717
+
718
+ <div class="method-heading">
719
+ <span class="method-name">related_tags</span><span
720
+ class="method-args">(tag)</span>
721
+
722
+ <span class="method-click-advice">click to toggle source</span>
723
+
724
+ </div>
725
+
726
+
727
+ <div class="method-description">
728
+
729
+ <p>Implements flickr.tags.getRelated</p>
730
+
731
+
732
+
733
+
734
+ <div class="method-source-code" id="related_tags-source">
735
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 155</span>
736
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">related_tags</span>(<span class="ruby-identifier">tag</span>)
737
+ <span class="ruby-identifier">tags_getRelated</span>(<span class="ruby-string">&#39;tag&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">tag</span>)[<span class="ruby-string">&#39;tags&#39;</span>][<span class="ruby-string">&#39;tag&#39;</span>]
738
+ <span class="ruby-keyword">end</span></pre>
739
+ </div>
740
+
741
+ </div>
742
+
743
+
744
+
745
+
746
+ </div>
747
+
748
+
749
+ <div id="method-i-request" class="method-detail ">
750
+
751
+ <div class="method-heading">
752
+ <span class="method-name">request</span><span
753
+ class="method-args">(method, params={})</span>
754
+
755
+ <span class="method-click-advice">click to toggle source</span>
756
+
757
+ </div>
758
+
759
+
760
+ <div class="method-description">
761
+
762
+ <p>Takes a <a href="Flickr.html">Flickr</a> API method name and set of
763
+ parameters; returns an XmlSimple object with the response</p>
764
+
765
+
766
+
767
+
768
+ <div class="method-source-code" id="request-source">
769
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 183</span>
770
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">params</span>={})
771
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">request_url</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">params</span>)
772
+ <span class="ruby-identifier">response</span> = <span class="ruby-constant">XmlSimple</span>.<span class="ruby-identifier">xml_in</span>(<span class="ruby-identifier">http_get</span>(<span class="ruby-identifier">url</span>), { <span class="ruby-string">&#39;ForceArray&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span> })
773
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">response</span>[<span class="ruby-string">&#39;err&#39;</span>][<span class="ruby-string">&#39;msg&#39;</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>[<span class="ruby-string">&#39;stat&#39;</span>] <span class="ruby-operator">!=</span> <span class="ruby-string">&#39;ok&#39;</span>
774
+ <span class="ruby-identifier">response</span>
775
+ <span class="ruby-keyword">end</span></pre>
776
+ </div>
777
+
778
+ </div>
779
+
780
+
781
+
782
+
783
+ </div>
784
+
785
+
786
+ <div id="method-i-request_url" class="method-detail ">
787
+
788
+ <div class="method-heading">
789
+ <span class="method-name">request_url</span><span
790
+ class="method-args">(method, params={})</span>
791
+
792
+ <span class="method-click-advice">click to toggle source</span>
793
+
794
+ </div>
795
+
796
+
797
+ <div class="method-description">
798
+
799
+ <p>Builds url for <a href="Flickr.html">Flickr</a> API REST request from given
800
+ the flickr method name (exclusing the &#39;flickr.&#39; that begins each
801
+ method call) and params (where applicable) which should be supplied as a
802
+ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
803
+
804
+
805
+
806
+
807
+ <div class="method-source-code" id="request_url-source">
808
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 199</span>
809
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">request_url</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">params</span>={})
810
+ <span class="ruby-identifier">method</span> = <span class="ruby-string">&#39;flickr.&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">method</span>
811
+ <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{@host}#{@api}/?api_key=#{@api_key}&amp;method=#{method}&quot;</span>
812
+ <span class="ruby-identifier">params</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-string">&#39;api_key&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@api_key</span>, <span class="ruby-string">&#39;method&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">method</span>, <span class="ruby-string">&#39;auth_token&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@auth_token</span>)
813
+ <span class="ruby-identifier">signature</span> = <span class="ruby-identifier">signature_from</span>(<span class="ruby-identifier">params</span>)
814
+
815
+ <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{@host}#{@api}/?&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">params</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&#39;api_sig&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">signature</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{k}=&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">CGI</span><span class="ruby-operator">::</span><span class="ruby-identifier">escape</span>(<span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">nil?</span> }.<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;&amp;&quot;</span>)
816
+ <span class="ruby-keyword">end</span></pre>
817
+ </div>
818
+
819
+ </div>
820
+
821
+
822
+
823
+
824
+ </div>
825
+
826
+
827
+ <div id="method-i-search" class="method-detail method-alias">
828
+
829
+ <div class="method-heading">
830
+ <span class="method-name">search</span><span
831
+ class="method-args">(params={})</span>
832
+
833
+ </div>
834
+
835
+
836
+ <div class="method-description">
837
+
838
+
839
+
840
+
841
+
842
+
843
+ </div>
844
+
845
+
846
+
847
+
848
+ <div class="aliases">
849
+ Alias for: <a href="Flickr.html#method-i-photos_search">photos_search</a>
850
+ </div>
851
+
852
+ </div>
853
+
854
+
855
+ <div id="method-i-set_up_configuration" class="method-detail ">
856
+
857
+ <div class="method-heading">
858
+ <span class="method-name">set_up_configuration</span><span
859
+ class="method-args">(api_key_or_params = {})</span>
860
+
861
+ <span class="method-click-advice">click to toggle source</span>
862
+
863
+ </div>
864
+
865
+
866
+ <div class="method-description">
867
+
868
+
869
+
870
+
871
+
872
+
873
+ <div class="method-source-code" id="set_up_configuration-source">
874
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 87</span>
875
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_up_configuration</span> <span class="ruby-identifier">api_key_or_params</span> = {}
876
+ <span class="ruby-ivar">@api_key</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:api_key</span>]
877
+ <span class="ruby-ivar">@shared_secret</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:shared_secret</span>]
878
+ <span class="ruby-ivar">@auth_token</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:auth_token</span>]
879
+ <span class="ruby-keyword">end</span></pre>
880
+ </div>
881
+
882
+ </div>
883
+
884
+
885
+
886
+
887
+ </div>
888
+
889
+
890
+ <div id="method-i-signature_from" class="method-detail ">
891
+
892
+ <div class="method-heading">
893
+ <span class="method-name">signature_from</span><span
894
+ class="method-args">(params={})</span>
895
+
896
+ <span class="method-click-advice">click to toggle source</span>
897
+
898
+ </div>
899
+
900
+
901
+ <div class="method-description">
902
+
903
+
904
+
905
+
906
+
907
+
908
+ <div class="method-source-code" id="signature_from-source">
909
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 208</span>
910
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">signature_from</span>(<span class="ruby-identifier">params</span>={})
911
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@shared_secret</span> <span class="ruby-comment"># don&#39;t both getting signature if no shared_secret</span>
912
+ <span class="ruby-identifier">request_str</span> = <span class="ruby-identifier">params</span>.<span class="ruby-identifier">reject</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">nil?</span>}.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{p[0].to_s}#{p[1]}&quot;</span>}.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">join</span> <span class="ruby-comment"># build key value pairs, sort in alpha order then join them, ignoring those with nil value</span>
913
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-node">&quot;#{@shared_secret}#{request_str}&quot;</span>)
914
+ <span class="ruby-keyword">end</span></pre>
915
+ </div>
916
+
917
+ </div>
918
+
919
+
920
+
921
+
922
+ </div>
923
+
924
+
925
+ <div id="method-i-tag" class="method-detail ">
926
+
927
+ <div class="method-heading">
928
+ <span class="method-name">tag</span><span
929
+ class="method-args">(tag)</span>
930
+
931
+ <span class="method-click-advice">click to toggle source</span>
932
+
933
+ </div>
934
+
935
+
936
+ <div class="method-description">
937
+
938
+ <p>Gets public photos with a given tag</p>
939
+
940
+
941
+
942
+
943
+ <div class="method-source-code" id="tag-source">
944
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 129</span>
945
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">tag</span>(<span class="ruby-identifier">tag</span>)
946
+ <span class="ruby-identifier">photos</span>(<span class="ruby-string">&#39;tags&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">tag</span>)
947
+ <span class="ruby-keyword">end</span></pre>
948
+ </div>
949
+
950
+ </div>
951
+
952
+
953
+
954
+
955
+ </div>
956
+
957
+
958
+ <div id="method-i-users" class="method-detail ">
959
+
960
+ <div class="method-heading">
961
+ <span class="method-name">users</span><span
962
+ class="method-args">(lookup=nil)</span>
963
+
964
+ <span class="method-click-advice">click to toggle source</span>
965
+
966
+ </div>
967
+
968
+
969
+ <div class="method-description">
970
+
971
+ <p>Implements flickr.people.findByEmail and flickr.people.findByUsername.</p>
972
+
973
+
974
+
975
+
976
+ <div class="method-source-code" id="users-source">
977
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 134</span>
978
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">users</span>(<span class="ruby-identifier">lookup</span>=<span class="ruby-keyword">nil</span>)
979
+ <span class="ruby-identifier">user</span> = <span class="ruby-identifier">people_findByEmail</span>(<span class="ruby-string">&#39;find_email&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">lookup</span>)[<span class="ruby-string">&#39;user&#39;</span>] <span class="ruby-keyword">rescue</span> <span class="ruby-identifier">people_findByUsername</span>(<span class="ruby-string">&#39;username&#39;</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">lookup</span>)[<span class="ruby-string">&#39;user&#39;</span>]
980
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">User</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;id&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">user</span>[<span class="ruby-string">&quot;nsid&quot;</span>], <span class="ruby-string">&quot;username&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">user</span>[<span class="ruby-string">&quot;username&quot;</span>], <span class="ruby-string">&quot;client&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">self</span>)
981
+ <span class="ruby-keyword">end</span></pre>
982
+ </div>
983
+
984
+ </div>
985
+
986
+
987
+
988
+
989
+ </div>
990
+
991
+
992
+ </section>
993
+
994
+ </section>
995
+ </main>
996
+
997
+
998
+ <footer id="validator-badges" role="contentinfo">
999
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
1000
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
1001
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
1002
+ </footer>
1003
+