flickr.rb 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 391c82af2bf803d64c850c14ad37666863c91fcf
4
- data.tar.gz: 0499a23f3cf853de16fd868bff4404b97476b419
3
+ metadata.gz: a2839dc51d7158f2dd122918426745eba5ebac3b
4
+ data.tar.gz: f22833fed59a888c2121bac68b068f0347082809
5
5
  SHA512:
6
- metadata.gz: c57dba590616d64298f449c38d0202377516ed676dd4e29d30a029c86cdd772aa334157dd1e68d6833c71899fa8afbbbdfb646c9b5397b532934b95f1b34aa41
7
- data.tar.gz: 784c23286e25c46a615ea27868fba8a32c28ad62704faf2fb2eedb867cd2635be6f0478fd45401a3a8b7f7cc4e1773cc25a962d3d77bd70648e56c3353f779ce
6
+ metadata.gz: 09fb1d306927fede79b5433cf5030d5751c70b7fbf4a3e221898515eb2df56d0f08b17362e0d924b85fac3a72e2a3722c9ae62f9fcfadacd3ce08c9285d66b71
7
+ data.tar.gz: 08679aabcefc91079ca7b606e2264bcce19301fdcdabc737fd49b8514c9dc5575fe0cb979ede9445bdcae89493d438f9edd91c279fdc84d65aaf16ea8a8cb934
@@ -1,3 +1,11 @@
1
+ 1.2.0 2014-05-13
2
+ * New image sizes support: Large square, Small 320, Medium 640 - #5 - https://github.com/RaVbaker/flickr/issues/5
3
+ * SSL support for requests to Flickr API - #4 - https://github.com/RaVbaker/flickr/issues/4
4
+ This change might not be backward compatible so I changed gem version to 1.2. See README.md for more info about SSL
5
+
6
+ 1.1.2 2014-04-17
7
+ * No changes at all. I failed to set a gem update date for 1.1.1
8
+
1
9
  1.1.1 2014-04-17
2
10
  * Migrated to usage of Bundler for dependency tracking
3
11
  * Fixes retrieving list of photos no matter which sibling they are in XML structure
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flickr (1.1.0)
4
+ flickr.rb (1.2.0)
5
5
  xml-simple (>= 1.0.7)
6
6
 
7
7
  GEM
@@ -18,7 +18,7 @@ PLATFORMS
18
18
  ruby
19
19
 
20
20
  DEPENDENCIES
21
- flickr!
21
+ flickr.rb!
22
22
  mocha
23
23
  rake
24
24
  rdoc
@@ -0,0 +1,115 @@
1
+ # flickr.rb
2
+
3
+ http://github.com/RaVbaker/flickr
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/flickr.rb.svg)](http://badge.fury.io/rb/flickr.rb)
6
+
7
+ ## DESCRIPTION:
8
+
9
+ An insanely easy interface to the Flickr photo-sharing service. By Scott Raymond. (& updated May 2008 by Chris Taggart, http://pushrod.wordpress.com & maintained since May 2010 by me - Rafal Piekarski)
10
+
11
+ It's a simple interface for using Flickr API - [https://www.flickr.com/services/api/](https://www.flickr.com/services/api/)
12
+
13
+ ## FEATURES/PROBLEMS:
14
+
15
+ The flickr gem (famously featured in a RubyonRails screencast) had broken with Flickr's new authentication scheme and updated API.
16
+ This has now been largely corrected, though not all current API calls are supported yet. If you need something let me know in pull requests.
17
+
18
+ ## SYNOPSIS:
19
+
20
+ require 'flickr'
21
+ flickr = Flickr.new('some_flickr_api_key') # create a flickr client (get an API key from http://api.flickr.com/services/api/)
22
+ user = flickr.users('sco@scottraymond.net') # lookup a user
23
+ user.name # get the user's name
24
+ user.location # and location
25
+ user.photos # grab their collection of Photo objects...
26
+ user.groups # ...the groups they're in...
27
+ user.contacts # ...their contacts...
28
+ user.favorites # ...favorite photos...
29
+ user.photosets # ...their photo sets...
30
+ user.tags # ...their tags...
31
+ user.popular_tags # ...and their popular tags
32
+ recentphotos = flickr.photos # get the 100 most recent public photos
33
+ photo = recentphotos.first # or very most recent one
34
+ photo.url # see its URL,
35
+ photo.title # title,
36
+ photo.description # and description,
37
+ photo.owner # and its owner.
38
+ File.open(photo.filename, 'w') do |file|
39
+ file.puts p.file # save the photo to a local file
40
+ end
41
+ flickr.photos.each do |p| # get the last 100 public photos...
42
+ File.open(p.filename, 'w') do |f|
43
+ f.puts p.file('Square') # ...and save a local copy of their square thumbnail
44
+ end
45
+ end
46
+
47
+ ## REQUIREMENTS:
48
+
49
+ * Xmlsimple gem
50
+
51
+ ## INSTALLATION:
52
+
53
+ Add this line to your application's Gemfile:
54
+
55
+ gem 'flickr.rb'
56
+
57
+ And then execute:
58
+
59
+ $ bundle
60
+
61
+ Or install it yourself as:
62
+
63
+ $ gem install flickr.rb
64
+
65
+
66
+ * Gem homepage: [http://rubygems.org/gems/flickr.rb](http://rubygems.org/gems/flickr.rb)
67
+
68
+ ## CONFIGURING:
69
+
70
+ You can provide just a api_key `Flickr.new('api_key')` or full set of advanced configuration options:
71
+
72
+ flickr = Flickr.new(
73
+ api_key: 'your_api_key',
74
+ shared_secret: 'shared_secret_code',
75
+ auth_token: 'authSecretToken',
76
+ verify_ssl: true,
77
+ ca_file: '/path/to/cert.pem'
78
+ )
79
+
80
+ As you see you can turn off ssl verification (`verify_ssl: false`) or provide your own CA file (`:ca_file` option) for SSL verification. By default gem uses the `OpenSSL::X509::DEFAULT_CERT_FILE` definitions.
81
+
82
+
83
+ If you want to use this gem/plugin with Rails (for version 3) you can create configuration file in /config directory with specified api connection settings. For example:
84
+
85
+ development:
86
+ api_key: SomeLongApiKey
87
+ shared_secret: secret!
88
+ auth_token: authSecretToken
89
+
90
+ beta:
91
+ api_key: SomeLongApiKeyBeta
92
+ shared_secret: secretBeta!
93
+ auth_token: authSecretTokenBeta
94
+
95
+
96
+
97
+ ## CONTRIBUTING
98
+
99
+ 1. Fork it
100
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
101
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
102
+ 4. Push to the branch (`git push origin my-new-feature`)
103
+ 5. Create new Pull Request
104
+
105
+ ## THANKS
106
+
107
+ * Scott Raymond
108
+ * Patrick Plattes
109
+ * Chris Taggart
110
+
111
+ ## LICENSE
112
+
113
+ MIT License , see `LICENSE` for more details.
114
+
115
+ © 2010 - 2014 Rafal "RaVbaker" Piekarski
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
18
18
  rdoc.rdoc_dir = 'rdoc'
19
19
  rdoc.title = 'Flickr'
20
20
  rdoc.options << '--line-numbers' << '--inline-source'
21
- rdoc.rdoc_files.include('README.txt')
21
+ rdoc.rdoc_files.include('README.md')
22
22
  rdoc.rdoc_files.include('lib/**/*.rb')
23
23
  end
24
24
 
@@ -1,9 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'flickr.rb'
3
- s.version = '1.1.2'
3
+ s.version = '1.2.0'
4
4
  s.authors = ['Scott Raymond, Patrick Plattes, Rafal Piekarski']
5
5
  s.autorequire = 'flickr.rb'
6
- s.date = '2014-04-17'
6
+ s.date = '2014-05-13'
7
7
  s.email = 'ravbaker@gmail.com'
8
8
  s.files = Dir.glob("**/*").delete_if { |item| item.include?(".git") || item[/^pkg/] }
9
9
  s.homepage = 'http://github.com/RaVbaker/flickr/'
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
  require 'cgi'
37
- require 'net/http'
37
+ require 'net/https'
38
38
  require 'xmlsimple'
39
39
  require 'digest/md5'
40
40
 
@@ -43,7 +43,7 @@ class Flickr
43
43
  attr_reader :api_key, :auth_token
44
44
  attr_accessor :user
45
45
 
46
- HOST_URL = 'http://api.flickr.com'
46
+ HOST_URL = 'https://api.flickr.com'
47
47
  API_PATH = '/services/rest'
48
48
 
49
49
  # Flickr, annoyingly, uses a number of representations to specify the size
@@ -59,9 +59,12 @@ class Flickr
59
59
  # "http://farm4.static.flickr.com/3118/2397458775_2ec2ddc324_m.jpg".
60
60
  # The VALID_SIZES hash associates the correct letter with a label
61
61
  VALID_SIZES = { "Square" => ["s", "sq"],
62
+ "Large Square" => ["q", "q"],
62
63
  "Thumbnail" => ["t", "t"],
63
64
  "Small" => ["m", "s"],
65
+ "Small 320" => ["n", "n"],
64
66
  "Medium" => [nil, "m"],
67
+ "Medium 640" => ["z", "z"],
65
68
  "Large" => ["b", "l"]
66
69
  }
67
70
 
@@ -72,12 +75,13 @@ class Flickr
72
75
  # private photos)
73
76
  # There are two ways to initialize the Flickr client. The preferred way is with
74
77
  # a hash of params, e.g. 'api_key' => 'your_api_key', 'shared_secret' =>
75
- # 'shared_secret_code'. Other way is to use in Rails an config file
76
- # RAILS_ROOT/config/flickr.api.yml and there use params as key/values even
77
- # specified for every environment.
78
+ # 'shared_secret_code', 'verify_ssl' => true, 'ca_file' => '/path/to/cert.pem'.
79
+ # Other way is to use in Rails an config file RAILS_ROOT/config/flickr.api.yml
80
+ # and there use params as key/values even specified for every environment.
78
81
  def initialize(api_key_or_params={})
79
82
  @host = HOST_URL
80
83
  @api = API_PATH
84
+ @verify_ssl = true
81
85
  api_key_or_params={} if api_key_or_params.nil? # fix for nil value as argument
82
86
  api_key_or_params = {:api_key => api_key_or_params} if api_key_or_params.is_a?(String)
83
87
  api_key_or_params = Config.get if Config.parsed? and api_key_or_params.empty?
@@ -88,6 +92,8 @@ class Flickr
88
92
  @api_key = api_key_or_params[:api_key]
89
93
  @shared_secret = api_key_or_params[:shared_secret]
90
94
  @auth_token = api_key_or_params[:auth_token]
95
+ @ca_file = api_key_or_params[:ca_file]
96
+ @verify_ssl = !(api_key_or_params[:verify_ssl].to_s === 'false')
91
97
  end
92
98
 
93
99
  # Gets authentication token given a Flickr frob, which is returned when user
@@ -163,7 +169,7 @@ class Flickr
163
169
 
164
170
  # Returns url for user to login in to Flickr to authenticate app for a user
165
171
  def login_url(perms)
166
- "http://flickr.com/services/auth/?api_key=#{@api_key}&perms=#{perms}&api_sig=#{signature_from('api_key'=>@api_key, 'perms' => perms)}"
172
+ "https://flickr.com/services/auth/?api_key=#{@api_key}&perms=#{perms}&api_sig=#{signature_from('api_key'=>@api_key, 'perms' => perms)}"
167
173
  end
168
174
 
169
175
  # Implements everything else.
@@ -176,7 +182,14 @@ class Flickr
176
182
 
177
183
  # Does an HTTP GET on a given URL and returns the response body
178
184
  def http_get(url)
179
- Net::HTTP.get_response(URI.parse(url)).body.to_s
185
+ url = URI.parse(url)
186
+ http = Net::HTTP.new url.host, url.port
187
+ http.use_ssl = true
188
+ http.verify_mode = (@verify_ssl ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE)
189
+ http.ca_file = @ca_file if @ca_file
190
+ http.start do |res|
191
+ res.request_get(url).body.to_s
192
+ end
180
193
  end
181
194
 
182
195
  # Takes a Flickr API method name and set of parameters; returns an XmlSimple object with the response
@@ -2,76 +2,76 @@
2
2
 
3
3
  <html>
4
4
  <head>
5
- <meta charset="UTF-8">
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
6
 
7
7
  <title>class Flickr - Flickr</title>
8
8
 
9
- <link href="./fonts.css" rel="stylesheet">
10
- <link href="./rdoc.css" rel="stylesheet">
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
11
10
 
12
11
  <script type="text/javascript">
13
12
  var rdoc_rel_prefix = "./";
14
13
  </script>
15
14
 
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>
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
22
21
 
23
22
 
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>
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
34
28
  <a href="./table_of_contents.html#classes">Classes</a>
35
29
  <a href="./table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
30
+ </h3>
31
+ </nav>
38
32
 
39
- <div id="search-section" role="search" class="project-section initially-hidden">
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
40
35
  <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"
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
45
38
  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>
39
+ </h3>
51
40
  </form>
52
- </div>
53
41
 
54
- </div>
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
55
45
 
56
46
 
57
47
 
58
- <div id="class-metadata">
48
+ <div id="file-metadata">
49
+ <nav id="file-list-section" class="section">
50
+ <h3 class="section-header">Defined In</h3>
51
+ <ul>
52
+ <li>lib/flickr.rb
53
+ </ul>
54
+ </nav>
55
+
59
56
 
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
57
+ </div>
62
58
 
59
+ <div id="class-metadata">
60
+
61
+ <nav id="parent-class-section" class="section">
62
+ <h3 class="section-header">Parent</h3>
63
63
 
64
64
  <p class="link">Object
65
65
 
66
- </div>
66
+ </nav>
67
67
 
68
68
 
69
69
 
70
70
  <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
71
+ <nav id="method-list-section" class="section">
72
+ <h3 class="section-header">Methods</h3>
73
73
 
74
- <ul class="link-list" role="directory">
74
+ <ul class="link-list">
75
75
 
76
76
  <li ><a href="#method-c-new">::new</a>
77
77
 
@@ -116,21 +116,54 @@
116
116
  <li ><a href="#method-i-users">#users</a>
117
117
 
118
118
  </ul>
119
- </div>
119
+ </nav>
120
+
121
+ </div>
122
+
123
+ <div id="project-metadata">
124
+ <nav id="fileindex-section" class="section project-section">
125
+ <h3 class="section-header">Pages</h3>
126
+
127
+ <ul>
128
+
129
+ <li class="file"><a href="./README_md.html">README</a>
130
+
131
+ </ul>
132
+ </nav>
133
+
134
+ <nav id="classindex-section" class="section project-section">
135
+ <h3 class="section-header">Class and Module Index</h3>
136
+
137
+ <ul class="link-list">
138
+
139
+ <li><a href="./Flickr.html">Flickr</a>
140
+
141
+ <li><a href="./Flickr/Config.html">Flickr::Config</a>
142
+
143
+ <li><a href="./Flickr/Group.html">Flickr::Group</a>
144
+
145
+ <li><a href="./Flickr/Photo.html">Flickr::Photo</a>
146
+
147
+ <li><a href="./Flickr/PhotoCollection.html">Flickr::PhotoCollection</a>
148
+
149
+ <li><a href="./Flickr/Photoset.html">Flickr::Photoset</a>
150
+
151
+ <li><a href="./Flickr/User.html">Flickr::User</a>
152
+
153
+ </ul>
154
+ </nav>
120
155
 
121
156
  </div>
122
157
  </nav>
123
158
 
124
- <main role="main" aria-labelledby="class-Flickr">
125
- <h1 id="class-Flickr" class="class">
126
- class Flickr
127
- </h1>
159
+ <div id="documentation">
160
+ <h1 class="class">class Flickr</h1>
128
161
 
129
- <section class="description">
162
+ <div id="description" class="description">
130
163
 
131
164
  <p><a href="Flickr.html">Flickr</a> client class. Requires an API key</p>
132
165
 
133
- </section>
166
+ </div><!-- description -->
134
167
 
135
168
 
136
169
 
@@ -141,25 +174,24 @@
141
174
 
142
175
 
143
176
 
144
- <section class="constants-list">
145
- <header>
146
- <h3>Constants</h3>
147
- </header>
177
+ <!-- Constants -->
178
+ <section id="constants-list" class="section">
179
+ <h3 class="section-header">Constants</h3>
148
180
  <dl>
149
181
 
150
182
  <dt id="API_PATH">API_PATH
151
183
 
152
- <dd>
184
+ <dd class="description">
153
185
 
154
186
 
155
187
  <dt id="HOST_URL">HOST_URL
156
188
 
157
- <dd>
189
+ <dd class="description">
158
190
 
159
191
 
160
192
  <dt id="VALID_SIZES">VALID_SIZES
161
193
 
162
- <dd><p><a href="Flickr.html">Flickr</a>, annoyingly, uses a number of
194
+ <dd class="description"><p><a href="Flickr.html">Flickr</a>, annoyingly, uses a number of
163
195
  representations to specify the size of a photo, depending on the context.
164
196
  It gives a label such a “Small” or “Medium” to a size of photo, when
165
197
  returning all possible sizes. However, when generating the uri for the page
@@ -180,10 +212,9 @@ correct letter with a label</p>
180
212
 
181
213
 
182
214
 
183
- <section class="attribute-method-details" class="method-section">
184
- <header>
185
- <h3>Attributes</h3>
186
- </header>
215
+ <!-- Attributes -->
216
+ <section id="attribute-method-details" class="method-section section">
217
+ <h3 class="section-header">Attributes</h3>
187
218
 
188
219
 
189
220
  <div id="attribute-i-api_key" class="method-detail">
@@ -225,14 +256,13 @@ correct letter with a label</p>
225
256
  </div>
226
257
  </div>
227
258
 
228
- </section>
259
+ </section><!-- attribute-method-details -->
229
260
 
230
261
 
262
+ <!-- Methods -->
231
263
 
232
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
233
- <header>
234
- <h3>Public Class Methods</h3>
235
- </header>
264
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
265
+ <h3 class="section-header">Public Class Methods</h3>
236
266
 
237
267
 
238
268
  <div id="method-c-new" class="method-detail ">
@@ -255,39 +285,40 @@ also need a shared secret code if you want to use authentication (e.g. to
255
285
  get a user&#39;s private photos) There are two ways to initialize the <a
256
286
  href="Flickr.html">Flickr</a> client. The preferred way is with a hash of
257
287
  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>
288
+ &#39;shared_secret&#39; =&gt; &#39;shared_secret_code&#39;,
289
+ &#39;verify_ssl&#39; =&gt; true, &#39;ca_file&#39; =&gt;
290
+ &#39;/path/to/cert.pem&#39;. Other way is to use in Rails an config file
291
+ RAILS_ROOT/config/flickr.api.yml and there use params as key/values even
292
+ specified for every environment.</p>
261
293
 
262
294
 
263
295
 
264
296
 
265
297
  <div class="method-source-code" id="new-source">
266
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 78</span>
298
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 81</span>
267
299
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">api_key_or_params</span>={})
268
300
  <span class="ruby-ivar">@host</span> = <span class="ruby-constant">HOST_URL</span>
269
301
  <span class="ruby-ivar">@api</span> = <span class="ruby-constant">API_PATH</span>
302
+ <span class="ruby-ivar">@verify_ssl</span> = <span class="ruby-keyword">true</span>
270
303
  <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
304
  <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
305
  <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
306
  <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
307
  <span class="ruby-keyword">end</span></pre>
275
- </div>
308
+ </div><!-- new-source -->
276
309
 
277
310
  </div>
278
311
 
279
312
 
280
313
 
281
314
 
282
- </div>
315
+ </div><!-- new-method -->
283
316
 
284
317
 
285
- </section>
318
+ </section><!-- public-class-method-details -->
286
319
 
287
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
288
- <header>
289
- <h3>Public Instance Methods</h3>
290
- </header>
320
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
321
+ <h3 class="section-header">Public Instance Methods</h3>
291
322
 
292
323
 
293
324
  <div id="method-i-find_by_url" class="method-detail ">
@@ -309,19 +340,19 @@ params as key/values even specified for every environment.</p>
309
340
 
310
341
 
311
342
  <div class="method-source-code" id="find_by_url-source">
312
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 107</span>
343
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 113</span>
313
344
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_by_url</span>(<span class="ruby-identifier">url</span>)
314
345
  <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
346
  (<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
347
  <span class="ruby-keyword">end</span></pre>
317
- </div>
348
+ </div><!-- find_by_url-source -->
318
349
 
319
350
  </div>
320
351
 
321
352
 
322
353
 
323
354
 
324
- </div>
355
+ </div><!-- find_by_url-method -->
325
356
 
326
357
 
327
358
  <div id="method-i-get_token_from" class="method-detail ">
@@ -346,7 +377,7 @@ which made the request</p>
346
377
 
347
378
 
348
379
  <div class="method-source-code" id="get_token_from-source">
349
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 96</span>
380
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 102</span>
350
381
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_token_from</span>(<span class="ruby-identifier">frob</span>)
351
382
  <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
383
  <span class="ruby-ivar">@auth_token</span> = <span class="ruby-identifier">auth_response</span>[<span class="ruby-string">&#39;token&#39;</span>]
@@ -356,14 +387,14 @@ which made the request</p>
356
387
  <span class="ruby-string">&#39;client&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">self</span>)
357
388
  <span class="ruby-ivar">@auth_token</span>
358
389
  <span class="ruby-keyword">end</span></pre>
359
- </div>
390
+ </div><!-- get_token_from-source -->
360
391
 
361
392
  </div>
362
393
 
363
394
 
364
395
 
365
396
 
366
- </div>
397
+ </div><!-- get_token_from-method -->
367
398
 
368
399
 
369
400
  <div id="method-i-groups" class="method-detail ">
@@ -385,7 +416,7 @@ which made the request</p>
385
416
 
386
417
 
387
418
  <div class="method-source-code" id="groups-source">
388
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 140</span>
419
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 146</span>
389
420
  <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
421
  <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
422
  <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>
@@ -395,14 +426,14 @@ which made the request</p>
395
426
  <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
427
  <span class="ruby-string">&quot;client&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">self</span>) }
397
428
  <span class="ruby-keyword">end</span></pre>
398
- </div>
429
+ </div><!-- groups-source -->
399
430
 
400
431
  </div>
401
432
 
402
433
 
403
434
 
404
435
 
405
- </div>
436
+ </div><!-- groups-method -->
406
437
 
407
438
 
408
439
  <div id="method-i-http_get" class="method-detail ">
@@ -424,18 +455,25 @@ which made the request</p>
424
455
 
425
456
 
426
457
  <div class="method-source-code" id="http_get-source">
427
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 178</span>
458
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 184</span>
428
459
  <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>
460
+ <span class="ruby-identifier">url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">url</span>)
461
+ <span class="ruby-identifier">http</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">url</span>.<span class="ruby-identifier">host</span>, <span class="ruby-identifier">url</span>.<span class="ruby-identifier">port</span>
462
+ <span class="ruby-identifier">http</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword">true</span>
463
+ <span class="ruby-identifier">http</span>.<span class="ruby-identifier">verify_mode</span> = (<span class="ruby-ivar">@verify_ssl</span> <span class="ruby-operator">?</span> <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">SSL</span><span class="ruby-operator">::</span><span class="ruby-constant">VERIFY_PEER</span> <span class="ruby-operator">:</span> <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">SSL</span><span class="ruby-operator">::</span><span class="ruby-constant">VERIFY_NONE</span>)
464
+ <span class="ruby-identifier">http</span>.<span class="ruby-identifier">ca_file</span> = <span class="ruby-ivar">@ca_file</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@ca_file</span>
465
+ <span class="ruby-identifier">http</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">res</span><span class="ruby-operator">|</span>
466
+ <span class="ruby-identifier">res</span>.<span class="ruby-identifier">request_get</span>(<span class="ruby-identifier">url</span>).<span class="ruby-identifier">body</span>.<span class="ruby-identifier">to_s</span>
467
+ <span class="ruby-keyword">end</span>
430
468
  <span class="ruby-keyword">end</span></pre>
431
- </div>
469
+ </div><!-- http_get-source -->
432
470
 
433
471
  </div>
434
472
 
435
473
 
436
474
 
437
475
 
438
- </div>
476
+ </div><!-- http_get-method -->
439
477
 
440
478
 
441
479
  <div id="method-i-licenses" class="method-detail ">
@@ -457,18 +495,18 @@ which made the request</p>
457
495
 
458
496
 
459
497
  <div class="method-source-code" id="licenses-source">
460
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 160</span>
498
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 166</span>
461
499
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">licenses</span>
462
500
  <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
501
  <span class="ruby-keyword">end</span></pre>
464
- </div>
502
+ </div><!-- licenses-source -->
465
503
 
466
504
  </div>
467
505
 
468
506
 
469
507
 
470
508
 
471
- </div>
509
+ </div><!-- licenses-method -->
472
510
 
473
511
 
474
512
  <div id="method-i-login_url" class="method-detail ">
@@ -491,18 +529,18 @@ authenticate app for a user</p>
491
529
 
492
530
 
493
531
  <div class="method-source-code" id="login_url-source">
494
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 165</span>
532
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 171</span>
495
533
  <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>
534
+ <span class="ruby-node">&quot;https://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
535
  <span class="ruby-keyword">end</span></pre>
498
- </div>
536
+ </div><!-- login_url-source -->
499
537
 
500
538
  </div>
501
539
 
502
540
 
503
541
 
504
542
 
505
- </div>
543
+ </div><!-- login_url-method -->
506
544
 
507
545
 
508
546
  <div id="method-i-method_missing" class="method-detail ">
@@ -527,18 +565,18 @@ will pass the call to the flickr.test.echo method.</p>
527
565
 
528
566
 
529
567
  <div class="method-source-code" id="method_missing-source">
530
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 173</span>
568
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 179</span>
531
569
  <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
570
  <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
571
  <span class="ruby-keyword">end</span></pre>
534
- </div>
572
+ </div><!-- method_missing-source -->
535
573
 
536
574
  </div>
537
575
 
538
576
 
539
577
 
540
578
 
541
- </div>
579
+ </div><!-- method_missing-method -->
542
580
 
543
581
 
544
582
  <div id="method-i-photos" class="method-detail ">
@@ -560,18 +598,18 @@ will pass the call to the flickr.test.echo method.</p>
560
598
 
561
599
 
562
600
  <div class="method-source-code" id="photos-source">
563
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 113</span>
601
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 119</span>
564
602
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">photos</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">criteria</span>)
565
603
  <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
604
  <span class="ruby-keyword">end</span></pre>
567
- </div>
605
+ </div><!-- photos-source -->
568
606
 
569
607
  </div>
570
608
 
571
609
 
572
610
 
573
611
 
574
- </div>
612
+ </div><!-- photos-method -->
575
613
 
576
614
 
577
615
  <div id="method-i-photos_request" class="method-detail ">
@@ -595,19 +633,19 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
595
633
 
596
634
 
597
635
  <div class="method-source-code" id="photos_request-source">
598
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 191</span>
636
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 204</span>
599
637
  <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
638
  <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
639
  <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
640
  <span class="ruby-keyword">end</span></pre>
603
- </div>
641
+ </div><!-- photos_request-source -->
604
642
 
605
643
  </div>
606
644
 
607
645
 
608
646
 
609
647
 
610
- </div>
648
+ </div><!-- photos_request-method -->
611
649
 
612
650
 
613
651
  <div id="method-i-photos_search" class="method-detail ">
@@ -629,11 +667,11 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
629
667
 
630
668
 
631
669
  <div class="method-source-code" id="photos_search-source">
632
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 123</span>
670
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 129</span>
633
671
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">photos_search</span>(<span class="ruby-identifier">params</span>={})
634
672
  <span class="ruby-identifier">photos_request</span>(<span class="ruby-string">&#39;photos.search&#39;</span>, <span class="ruby-identifier">params</span>)
635
673
  <span class="ruby-keyword">end</span></pre>
636
- </div>
674
+ </div><!-- photos_search-source -->
637
675
 
638
676
  </div>
639
677
 
@@ -644,7 +682,7 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
644
682
 
645
683
 
646
684
 
647
- </div>
685
+ </div><!-- photos_search-method -->
648
686
 
649
687
 
650
688
  <div id="method-i-photoset" class="method-detail ">
@@ -666,18 +704,18 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
666
704
 
667
705
 
668
706
  <div class="method-source-code" id="photoset-source">
669
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 150</span>
707
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 156</span>
670
708
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">photoset</span>(<span class="ruby-identifier">photoset_id</span>)
671
709
  <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
710
  <span class="ruby-keyword">end</span></pre>
673
- </div>
711
+ </div><!-- photoset-source -->
674
712
 
675
713
  </div>
676
714
 
677
715
 
678
716
 
679
717
 
680
- </div>
718
+ </div><!-- photoset-method -->
681
719
 
682
720
 
683
721
  <div id="method-i-recent" class="method-detail ">
@@ -699,18 +737,18 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
699
737
 
700
738
 
701
739
  <div class="method-source-code" id="recent-source">
702
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 119</span>
740
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 125</span>
703
741
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">recent</span>
704
742
  <span class="ruby-identifier">photos_request</span>(<span class="ruby-string">&#39;photos.getRecent&#39;</span>)
705
743
  <span class="ruby-keyword">end</span></pre>
706
- </div>
744
+ </div><!-- recent-source -->
707
745
 
708
746
  </div>
709
747
 
710
748
 
711
749
 
712
750
 
713
- </div>
751
+ </div><!-- recent-method -->
714
752
 
715
753
 
716
754
  <div id="method-i-related_tags" class="method-detail ">
@@ -732,18 +770,18 @@ href="Flickr/Photo.html">Photo</a> objects)</p>
732
770
 
733
771
 
734
772
  <div class="method-source-code" id="related_tags-source">
735
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 155</span>
773
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 161</span>
736
774
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">related_tags</span>(<span class="ruby-identifier">tag</span>)
737
775
  <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
776
  <span class="ruby-keyword">end</span></pre>
739
- </div>
777
+ </div><!-- related_tags-source -->
740
778
 
741
779
  </div>
742
780
 
743
781
 
744
782
 
745
783
 
746
- </div>
784
+ </div><!-- related_tags-method -->
747
785
 
748
786
 
749
787
  <div id="method-i-request" class="method-detail ">
@@ -766,21 +804,21 @@ parameters; returns an XmlSimple object with the response</p>
766
804
 
767
805
 
768
806
  <div class="method-source-code" id="request-source">
769
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 183</span>
807
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 196</span>
770
808
  <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
809
  <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
810
  <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
811
  <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
812
  <span class="ruby-identifier">response</span>
775
813
  <span class="ruby-keyword">end</span></pre>
776
- </div>
814
+ </div><!-- request-source -->
777
815
 
778
816
  </div>
779
817
 
780
818
 
781
819
 
782
820
 
783
- </div>
821
+ </div><!-- request-method -->
784
822
 
785
823
 
786
824
  <div id="method-i-request_url" class="method-detail ">
@@ -805,7 +843,7 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
805
843
 
806
844
 
807
845
  <div class="method-source-code" id="request_url-source">
808
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 199</span>
846
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 212</span>
809
847
  <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
848
  <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
849
  <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{@host}#{@api}/?api_key=#{@api_key}&amp;method=#{method}&quot;</span>
@@ -814,14 +852,14 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
814
852
 
815
853
  <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
854
  <span class="ruby-keyword">end</span></pre>
817
- </div>
855
+ </div><!-- request_url-source -->
818
856
 
819
857
  </div>
820
858
 
821
859
 
822
860
 
823
861
 
824
- </div>
862
+ </div><!-- request_url-method -->
825
863
 
826
864
 
827
865
  <div id="method-i-search" class="method-detail method-alias">
@@ -849,7 +887,7 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
849
887
  Alias for: <a href="Flickr.html#method-i-photos_search">photos_search</a>
850
888
  </div>
851
889
 
852
- </div>
890
+ </div><!-- search-method -->
853
891
 
854
892
 
855
893
  <div id="method-i-set_up_configuration" class="method-detail ">
@@ -871,20 +909,22 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
871
909
 
872
910
 
873
911
  <div class="method-source-code" id="set_up_configuration-source">
874
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 87</span>
912
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 91</span>
875
913
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_up_configuration</span> <span class="ruby-identifier">api_key_or_params</span> = {}
876
914
  <span class="ruby-ivar">@api_key</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:api_key</span>]
877
915
  <span class="ruby-ivar">@shared_secret</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:shared_secret</span>]
878
916
  <span class="ruby-ivar">@auth_token</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:auth_token</span>]
917
+ <span class="ruby-ivar">@ca_file</span> = <span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:ca_file</span>]
918
+ <span class="ruby-ivar">@verify_ssl</span> = <span class="ruby-operator">!</span>(<span class="ruby-identifier">api_key_or_params</span>[<span class="ruby-value">:verify_ssl</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">===</span> <span class="ruby-string">&#39;false&#39;</span>)
879
919
  <span class="ruby-keyword">end</span></pre>
880
- </div>
920
+ </div><!-- set_up_configuration-source -->
881
921
 
882
922
  </div>
883
923
 
884
924
 
885
925
 
886
926
 
887
- </div>
927
+ </div><!-- set_up_configuration-method -->
888
928
 
889
929
 
890
930
  <div id="method-i-signature_from" class="method-detail ">
@@ -906,20 +946,20 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
906
946
 
907
947
 
908
948
  <div class="method-source-code" id="signature_from-source">
909
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 208</span>
949
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 221</span>
910
950
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">signature_from</span>(<span class="ruby-identifier">params</span>={})
911
951
  <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
952
  <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
953
  <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
954
  <span class="ruby-keyword">end</span></pre>
915
- </div>
955
+ </div><!-- signature_from-source -->
916
956
 
917
957
  </div>
918
958
 
919
959
 
920
960
 
921
961
 
922
- </div>
962
+ </div><!-- signature_from-method -->
923
963
 
924
964
 
925
965
  <div id="method-i-tag" class="method-detail ">
@@ -941,18 +981,18 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
941
981
 
942
982
 
943
983
  <div class="method-source-code" id="tag-source">
944
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 129</span>
984
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 135</span>
945
985
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">tag</span>(<span class="ruby-identifier">tag</span>)
946
986
  <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
987
  <span class="ruby-keyword">end</span></pre>
948
- </div>
988
+ </div><!-- tag-source -->
949
989
 
950
990
  </div>
951
991
 
952
992
 
953
993
 
954
994
 
955
- </div>
995
+ </div><!-- tag-method -->
956
996
 
957
997
 
958
998
  <div id="method-i-users" class="method-detail ">
@@ -974,30 +1014,31 @@ Hash (e.g &#39;user_id&#39; =&gt; “foo123”)</p>
974
1014
 
975
1015
 
976
1016
  <div class="method-source-code" id="users-source">
977
- <pre><span class="ruby-comment"># File lib/flickr.rb, line 134</span>
1017
+ <pre><span class="ruby-comment"># File lib/flickr.rb, line 140</span>
978
1018
  <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
1019
  <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
1020
  <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
1021
  <span class="ruby-keyword">end</span></pre>
982
- </div>
1022
+ </div><!-- users-source -->
983
1023
 
984
1024
  </div>
985
1025
 
986
1026
 
987
1027
 
988
1028
 
989
- </div>
1029
+ </div><!-- users-method -->
990
1030
 
991
1031
 
992
- </section>
1032
+ </section><!-- public-instance-method-details -->
993
1033
 
994
- </section>
995
- </main>
1034
+ </section><!-- 5Buntitled-5D -->
1035
+
1036
+ </div><!-- documentation -->
996
1037
 
997
1038
 
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>.
1039
+ <footer id="validator-badges">
1040
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
1041
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0.
1042
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
1002
1043
  </footer>
1003
1044