flickraw 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +48 -0
- data/flickraw_rdoc.rb +1 -0
- data/lib/flickraw.rb +9 -3
- data/rakefile +76 -10
- data/test/test.rb +6 -0
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -25,6 +25,7 @@ This will recreate the documentation by fetching the methods descriptions from f
|
|
25
25
|
* Photo upload
|
26
26
|
* Proxy support
|
27
27
|
* Delayed library loading (for rails users)
|
28
|
+
* Flickr URLs helpers
|
28
29
|
|
29
30
|
= Usage
|
30
31
|
|
@@ -115,9 +116,56 @@ You can pass some options to modify flickraw behavior:
|
|
115
116
|
|
116
117
|
require 'flickraw'
|
117
118
|
|
119
|
+
== Flickr URL Helpers
|
120
|
+
|
121
|
+
There are some helpers to build flickr urls :
|
122
|
+
|
123
|
+
=== url, url_m, url_s, url_t, url_b, url_o
|
124
|
+
|
125
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
126
|
+
FlickRaw.url_b(info) # => "http://farm3.static.flickr.com/2485/3839885270_6fb8b54e06_b.jpg"
|
127
|
+
|
128
|
+
=== url_profile
|
129
|
+
|
130
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
131
|
+
FlickRaw.url_profile(info) # => "http://www.flickr.com/people/41650587@N02/"
|
132
|
+
|
133
|
+
=== url_photopage
|
134
|
+
|
135
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
136
|
+
FlickRaw.url_photopage(photo) # => "http://www.flickr.com/photos/41650587@N02/3839885270"
|
137
|
+
|
138
|
+
=== url_photoset, url_photosets
|
139
|
+
|
140
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
141
|
+
FlickRaw.url_photosets(photo) # => "http://www.flickr.com/photos/41650587@N02/sets/"
|
142
|
+
|
143
|
+
=== url_short
|
144
|
+
|
145
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
146
|
+
FlickRaw.url_short(photo) # => "http://flic.kr/p/6Rjq7s"
|
147
|
+
|
148
|
+
=== url_photostream
|
149
|
+
|
150
|
+
info = flickr.photos.getInfo(:photo_id => "3839885270")
|
151
|
+
FlickRaw.url_photostream(photo) # => "http://flic.kr/p/6Rjq7s"
|
152
|
+
|
118
153
|
|
119
154
|
See the _examples_ directory to find more examples.
|
120
155
|
|
156
|
+
== Cached version
|
157
|
+
|
158
|
+
You can use
|
159
|
+
|
160
|
+
require 'flickraw-cached'
|
161
|
+
|
162
|
+
instead of
|
163
|
+
|
164
|
+
require 'flickraw'
|
165
|
+
|
166
|
+
This way it it doesn't fetch available flickr methods each time it is loaded.
|
167
|
+
The flickraw-cached gem is on rubyforge and should be up-to-date with regard to flickr api most of the time.
|
168
|
+
|
121
169
|
= Notes
|
122
170
|
If you want to use the api authenticated with several user at the same time, you must pass the authentication token explicitely each time.
|
123
171
|
This is because it is keeping the authentication token internally.
|
data/flickraw_rdoc.rb
CHANGED
data/lib/flickraw.rb
CHANGED
@@ -33,7 +33,7 @@ if ENV['http_proxy'] and not FlickRawOptions['proxy_host']
|
|
33
33
|
end
|
34
34
|
|
35
35
|
module FlickRaw
|
36
|
-
VERSION='0.8.
|
36
|
+
VERSION='0.8.2'
|
37
37
|
|
38
38
|
FLICKR_HOST='api.flickr.com'.freeze
|
39
39
|
REST_PATH='/services/rest/?'.freeze
|
@@ -44,7 +44,7 @@ module FlickRaw
|
|
44
44
|
PHOTO_SOURCE_URL='http://farm%s.static.flickr.com/%s/%s_%s%s.%s'.freeze
|
45
45
|
URL_PROFILE='http://www.flickr.com/people/'.freeze
|
46
46
|
URL_PHOTOSTREAM='http://www.flickr.com/photos/'.freeze
|
47
|
-
URL_SHORT=
|
47
|
+
URL_SHORT='http://flic.kr/p/'.freeze
|
48
48
|
|
49
49
|
class Response
|
50
50
|
def self.build(h, type) # :nodoc:
|
@@ -292,6 +292,9 @@ module FlickRaw
|
|
292
292
|
def url_photosets(r); url_photostream(r) + "sets/" end
|
293
293
|
def url_photoset(r); url_photosets(r) + r.id end
|
294
294
|
def url_short(r); URL_SHORT + base58(r.id) end
|
295
|
+
def url_short_m(r); URL_SHORT + "img/" + base58(r.id) + "_m.jpg" end
|
296
|
+
def url_short_s(r); URL_SHORT + "img/" + base58(r.id) + ".jpg" end
|
297
|
+
def url_short_t(r); URL_SHORT + "img/" + base58(r.id) + "_t.jpg" end
|
295
298
|
def url_photostream(r)
|
296
299
|
URL_PHOTOSTREAM +
|
297
300
|
if r.respond_to?(:pathalias) and r.pathalias
|
@@ -313,4 +316,7 @@ end
|
|
313
316
|
def flickr; $flickraw ||= FlickRaw::Flickr.new end
|
314
317
|
|
315
318
|
# Load the methods if the option lazyload is not specified
|
316
|
-
|
319
|
+
begin
|
320
|
+
flickr
|
321
|
+
rescue
|
322
|
+
end if not FlickRawOptions['lazyload']
|
data/rakefile
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
+
require 'rake/clean'
|
1
2
|
require 'rake/rdoctask'
|
2
3
|
require 'rake/packagetask'
|
3
4
|
require 'rake/gempackagetask'
|
4
5
|
require 'rake/testtask'
|
5
6
|
|
7
|
+
FlickRawOptions = {'lazyload' => true}
|
6
8
|
require 'lib/flickraw'
|
7
9
|
require 'flickraw_rdoc' if RUBY_VERSION >= "1.9"
|
8
10
|
|
@@ -14,27 +16,91 @@ spec = Gem::Specification.new do |s|
|
|
14
16
|
s.author = "Mael Clerambault"
|
15
17
|
s.email = "maelclerambault@yahoo.fr"
|
16
18
|
s.homepage = "http://hanklords.github.com/flickraw/"
|
17
|
-
s.rubyforge_project = "flickraw"
|
18
19
|
s.version = FlickRaw::VERSION
|
19
20
|
s.files = PKG_FILES
|
20
|
-
s.test_files = FileList["test/*.rb"].to_a
|
21
21
|
s.add_dependency 'json', '>= 1.1.1'
|
22
22
|
end
|
23
23
|
|
24
|
+
Rake::GemPackageTask.new(spec).define
|
25
|
+
|
26
|
+
desc "Create default gemspec file"
|
27
|
+
file "flickraw.gemspec" do
|
28
|
+
open("flickraw.gemspec", "w") {|g| g.puts spec.to_ruby }
|
29
|
+
end
|
30
|
+
task :gem => ["flickraw.gemspec"]
|
31
|
+
CLOBBER.add "flickraw.gemspec"
|
32
|
+
|
24
33
|
Rake::RDocTask.new do |rd|
|
25
34
|
rd.rdoc_files.include "README.rdoc", "lib/flickraw.rb"
|
26
35
|
rd.options << "--inline-source"
|
27
36
|
end
|
28
37
|
|
29
|
-
Rake::
|
30
|
-
|
38
|
+
Rake::TestTask.new
|
39
|
+
|
40
|
+
|
41
|
+
# Freezed version tasks
|
42
|
+
file "flickraw-cached.rb" do |t|
|
43
|
+
open(t.name, "w") {|f|
|
44
|
+
f.puts %{FlickRawOptions = {'lazyload' => true}}
|
45
|
+
f.puts %{require 'flickraw'}
|
46
|
+
f.puts %{FlickRaw::VERSION << '.#{Time.now.strftime("%Y%m%d")}-cached'}
|
47
|
+
f.puts 'ms = %w{' + flickr.reflection.getMethods.to_a.join(' ') + '}'
|
48
|
+
f.puts %{FlickRaw::Flickr.build(ms)}
|
49
|
+
}
|
31
50
|
end
|
51
|
+
CLOBBER.add "flickraw-cached.rb"
|
32
52
|
|
33
|
-
|
53
|
+
spec_cached = Gem::Specification.new do |s|
|
54
|
+
s.name = 'flickraw-cached'
|
55
|
+
s.summary = "Cached version of Flickraw"
|
56
|
+
s.author = "Mael Clerambault"
|
57
|
+
s.email = "maelclerambault@yahoo.fr"
|
58
|
+
s.homepage = "http://hanklords.github.com/flickraw/"
|
59
|
+
s.version = Time.now.strftime("%Y%m%d")
|
60
|
+
s.files = ["flickraw-cached.rb"]
|
61
|
+
s.require_path = '.'
|
62
|
+
s.add_dependency 'flickraw'
|
63
|
+
end
|
64
|
+
Rake::GemPackageTask.new(spec_cached).define
|
65
|
+
task :gem => ["flickraw-cached.rb"]
|
66
|
+
|
67
|
+
desc "Create cached gemspec file"
|
68
|
+
file "flickraw-cached.gemspec" do
|
69
|
+
open("flickraw-cached.gemspec", "w") {|g| g.puts spec.to_ruby }
|
70
|
+
end
|
71
|
+
task :gem => ["flickraw-cached.gemspec"]
|
72
|
+
CLOBBER.add "flickraw-cached.gemspec"
|
73
|
+
|
74
|
+
FREEZED_CACHE_FILE = ENV['HOME'] + '/.flickraw_cached'
|
75
|
+
task :sync_cached do
|
76
|
+
require 'mail'
|
77
|
+
Mail.defaults {delivery_method :sendmail}
|
78
|
+
|
79
|
+
local_list = File.read(FREEZED_CACHE_FILE).split.sort
|
80
|
+
remote_list = flickr.reflection.getMethods.to_a.sort
|
81
|
+
|
82
|
+
if remote_list != local_list
|
83
|
+
# Flickr API has been updated
|
84
|
+
Mail.deliver do
|
85
|
+
from 'flickraw-cached-updater'
|
86
|
+
to ENV['MAILTO'] || ENV['LOGNAME']
|
87
|
+
subject "[flickraw-cached-updater'] flickraw-cached.gem updated"
|
88
|
+
body %|
|
89
|
+
flickraw-cached.gem has been updated.
|
90
|
+
|
91
|
+
New Flickr API methods :
|
92
|
+
- #{(remote_list-local_list).join("\n- ")}
|
93
|
+
|
|
94
|
+
end
|
95
|
+
|
96
|
+
# Build gem
|
97
|
+
Rake.application[:gem].invoke
|
98
|
+
|
99
|
+
# Upload gem
|
100
|
+
sh "gem push pkg/flickraw-cached-*.gem"
|
34
101
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
open("flickraw.gemspec", "w") {|g| g.puts spec_clone.to_ruby }
|
102
|
+
# Update cache and clean gem files
|
103
|
+
open(FREEZED_CACHE_FILE, 'w') {|f| remote_list.each {|m| f.puts m} }
|
104
|
+
Rake.application[:clobber_package].invoke
|
105
|
+
end
|
40
106
|
end
|
data/test/test.rb
CHANGED
@@ -61,6 +61,7 @@ class Basic < Test::Unit::TestCase
|
|
61
61
|
flickr.people.findByEmail
|
62
62
|
flickr.people.findByUsername
|
63
63
|
flickr.people.getInfo
|
64
|
+
flickr.people.getPhotosOf
|
64
65
|
flickr.people.getPublicGroups
|
65
66
|
flickr.people.getPublicPhotos
|
66
67
|
flickr.people.getUploadStatus
|
@@ -100,6 +101,11 @@ class Basic < Test::Unit::TestCase
|
|
100
101
|
flickr.photos.notes.add
|
101
102
|
flickr.photos.notes.delete
|
102
103
|
flickr.photos.notes.edit
|
104
|
+
flickr.photos.people.add
|
105
|
+
flickr.photos.people.delete
|
106
|
+
flickr.photos.people.deleteCoords
|
107
|
+
flickr.photos.people.editCoords
|
108
|
+
flickr.photos.people.getList
|
103
109
|
flickr.photos.recentlyUpdated
|
104
110
|
flickr.photos.removeTag
|
105
111
|
flickr.photos.search
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flickraw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mael Clerambault
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-05-05 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
65
|
version:
|
66
66
|
requirements: []
|
67
67
|
|
68
|
-
rubyforge_project:
|
68
|
+
rubyforge_project:
|
69
69
|
rubygems_version: 1.3.5
|
70
70
|
signing_key:
|
71
71
|
specification_version: 3
|