flickrie 1.3.0 → 1.3.1
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/lib/flickrie/api_methods.rb +5 -9
- data/lib/flickrie/collection.rb +24 -16
- data/lib/flickrie/media/class_methods.rb +16 -18
- data/lib/flickrie/media.rb +7 -2
- data/lib/flickrie/set.rb +43 -38
- data/lib/flickrie/version.rb +1 -1
- metadata +19 -19
data/lib/flickrie/api_methods.rb
CHANGED
@@ -95,8 +95,7 @@ module Flickrie
|
|
95
95
|
#
|
96
96
|
# @note This method requires authentication with "read" permissions.
|
97
97
|
def photos_from_user(nsid, params = {})
|
98
|
-
media_from_user(nsid, params).
|
99
|
-
select { |media| media.is_a?(Photo) }
|
98
|
+
media_from_user(nsid, params).select { |media| media.is_a?(Photo) }
|
100
99
|
end
|
101
100
|
# Fetches videos from the Flickr user with the given NSID.
|
102
101
|
#
|
@@ -106,8 +105,7 @@ module Flickrie
|
|
106
105
|
#
|
107
106
|
# @note This method requires authentication with "read" permissions.
|
108
107
|
def videos_from_user(nsid, params = {})
|
109
|
-
media_from_user(nsid, params).
|
110
|
-
select { |media| media.is_a?(Video) }
|
108
|
+
media_from_user(nsid, params).select { |media| media.is_a?(Video) }
|
111
109
|
end
|
112
110
|
|
113
111
|
# Fetches public photos and videos from the Flickr user with the given
|
@@ -126,8 +124,7 @@ module Flickrie
|
|
126
124
|
# @return [Flickrie::Collection<Flickrie::Photo>]
|
127
125
|
# @api_method [flickr.people.getPublicPhotos](http://www.flickr.com/services/api/flickr.people.getPublicPhotos.html)
|
128
126
|
def public_photos_from_user(nsid, params = {})
|
129
|
-
public_media_from_user(nsid, params).
|
130
|
-
select { |media| media.is_a?(Photo) }
|
127
|
+
public_media_from_user(nsid, params).select { |media| media.is_a?(Photo) }
|
131
128
|
end
|
132
129
|
# Fetches public videos from the Flickr user with the given NSID.
|
133
130
|
#
|
@@ -135,8 +132,7 @@ module Flickrie
|
|
135
132
|
# @return [Flickrie::Collection<Flickrie::Video>]
|
136
133
|
# @api_method [flickr.people.getPublicPhotos](http://www.flickr.com/services/api/flickr.people.getPublicPhotos.html)
|
137
134
|
def public_videos_from_user(nsid, params = {})
|
138
|
-
public_media_from_user(nsid, params).
|
139
|
-
select { |media| media.is_a?(Video) }
|
135
|
+
public_media_from_user(nsid, params).select { |media| media.is_a?(Video) }
|
140
136
|
end
|
141
137
|
|
142
138
|
# Returns the upload status of the user who is currently authenticated.
|
@@ -505,7 +501,7 @@ module Flickrie
|
|
505
501
|
# @api_method [flickr.photosets.getList](http://www.flickr.com/services/api/flickr.photosets.getList.html)
|
506
502
|
def sets_from_user(nsid, params = {})
|
507
503
|
response = client.sets_from_user(nsid, params)
|
508
|
-
Set.from_user(response.body['photosets']
|
504
|
+
Set.from_user(response.body['photosets'], nsid)
|
509
505
|
end
|
510
506
|
|
511
507
|
# Fetches photos and videos from a set with the given ID.
|
data/lib/flickrie/collection.rb
CHANGED
@@ -3,26 +3,34 @@ if Flickrie.pagination == :will_paginate
|
|
3
3
|
end
|
4
4
|
|
5
5
|
module Flickrie
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
if Flickrie.pagination == :will_paginate
|
7
|
+
const_set(:Collection, Class.new(WillPaginate::Collection) do
|
8
|
+
def initialize(hash)
|
9
|
+
current_page = Integer(hash['page'])
|
10
|
+
per_page = Integer(hash['per_page'] || hash['perpage'])
|
11
|
+
total_entries = Integer(hash['total'])
|
12
|
+
super(current_page, per_page, total_entries)
|
13
|
+
end
|
14
|
+
end)
|
15
|
+
else
|
16
|
+
const_set(:Collection, Class.new(Array) do
|
17
|
+
attr_reader :current_page, :per_page, :total_entries, :total_pages
|
12
18
|
|
13
|
-
|
14
|
-
hash = params[:pagination]
|
15
|
-
if defined?(WillPaginate)
|
16
|
-
@current_page = WillPaginate::PageNumber(Integer(hash['page']))
|
17
|
-
else
|
19
|
+
def initialize(hash)
|
18
20
|
@current_page = Integer(hash['page'])
|
21
|
+
@per_page = Integer(hash['per_page'] || hash['perpage'])
|
22
|
+
@total_entries = Integer(hash['total'])
|
23
|
+
@total_pages = Integer(hash['pages'])
|
19
24
|
end
|
20
|
-
|
21
|
-
|
22
|
-
@total_pages = Integer(hash['pages'])
|
25
|
+
end)
|
26
|
+
end
|
23
27
|
|
24
|
-
|
25
|
-
|
28
|
+
# You can think of this as a richer Array. It defines some pagination attributes
|
29
|
+
# (you can even use it with [will_paginate](https://github.com/mislav/will_paginate),
|
30
|
+
# see {Flickrie.pagination}). It also has the method {#find} which finds by ID
|
31
|
+
# (just like ActiveRecord).
|
32
|
+
class Collection
|
33
|
+
# @!parse attr_reader :current_page, :per_page, :total_entries, :total_pages
|
26
34
|
|
27
35
|
# Finds an object by ID (just like ActiveRecord does). This is just a
|
28
36
|
# shorthand for
|
@@ -3,18 +3,17 @@ module Flickrie
|
|
3
3
|
# @private
|
4
4
|
module ClassMethods
|
5
5
|
def from_set(hash)
|
6
|
-
hash
|
7
|
-
|
6
|
+
collection = hash.delete('photo').map do |media_hash|
|
7
|
+
media_hash['owner'] = {
|
8
8
|
'id' => hash['owner'],
|
9
9
|
'nsid' => hash['owner'],
|
10
10
|
'username' => hash['ownername'],
|
11
11
|
}
|
12
|
-
fix_extras(
|
13
|
-
new(
|
12
|
+
fix_extras(media_hash)
|
13
|
+
new(media_hash)
|
14
14
|
end
|
15
15
|
|
16
|
-
Collection.new
|
17
|
-
:pagination => hash
|
16
|
+
Collection.new(hash).replace(collection)
|
18
17
|
end
|
19
18
|
|
20
19
|
def from_info(hash)
|
@@ -23,19 +22,18 @@ module Flickrie
|
|
23
22
|
end
|
24
23
|
|
25
24
|
def from_user(hash)
|
26
|
-
hash
|
27
|
-
|
28
|
-
'id' =>
|
29
|
-
'nsid' =>
|
30
|
-
'username' =>
|
25
|
+
collection = hash.delete('photo').map do |media_hash|
|
26
|
+
media_hash['owner'] = {
|
27
|
+
'id' => media_hash['owner'],
|
28
|
+
'nsid' => media_hash.delete('owner'),
|
29
|
+
'username' => media_hash.delete('ownername')
|
31
30
|
}
|
32
|
-
fix_extras(
|
33
|
-
fix_visibility(
|
34
|
-
new(
|
31
|
+
fix_extras(media_hash)
|
32
|
+
fix_visibility(media_hash)
|
33
|
+
new(media_hash)
|
35
34
|
end
|
36
35
|
|
37
|
-
Collection.new
|
38
|
-
:pagination => hash
|
36
|
+
Collection.new(hash).replace(collection)
|
39
37
|
end
|
40
38
|
|
41
39
|
def from_sizes(hash)
|
@@ -48,8 +46,8 @@ module Flickrie
|
|
48
46
|
end
|
49
47
|
|
50
48
|
def from_contacts(hash)
|
51
|
-
hash['photo'].each do |
|
52
|
-
|
49
|
+
hash['photo'].each do |media_hash|
|
50
|
+
media_hash['ownername'] = media_hash.delete('username')
|
53
51
|
end
|
54
52
|
|
55
53
|
from_user(hash)
|
data/lib/flickrie/media.rb
CHANGED
@@ -142,8 +142,13 @@ module Flickrie
|
|
142
142
|
# @return [Array<Flickrie::Media::Note>]
|
143
143
|
def notes() @hash['notes']['note'].map { |info| Note.new(info) } rescue nil end
|
144
144
|
|
145
|
-
# @return [
|
146
|
-
def favorites
|
145
|
+
# @return [Flickrie::Collection<Flickrie::User>]
|
146
|
+
def favorites
|
147
|
+
collection = @hash['person'].map { |info| User.new(info) }
|
148
|
+
Collection.new(@hash).replace(collection)
|
149
|
+
rescue
|
150
|
+
nil
|
151
|
+
end
|
147
152
|
|
148
153
|
def [](key) @hash[key] end
|
149
154
|
# Returns the raw hash from the response. Useful if something isn't available by methods.
|
data/lib/flickrie/set.rb
CHANGED
@@ -8,38 +8,38 @@ module Flickrie
|
|
8
8
|
# :created_at, :updated_at, :url, :hash
|
9
9
|
|
10
10
|
# @return [String]
|
11
|
-
def id() @
|
11
|
+
def id() @hash['id'] end
|
12
12
|
# @return [String]
|
13
|
-
def secret() @
|
13
|
+
def secret() @hash['secret'] end
|
14
14
|
# @return [String]
|
15
|
-
def server() @
|
15
|
+
def server() @hash['server'] end
|
16
16
|
# @return [Fixnum]
|
17
|
-
def farm() @
|
17
|
+
def farm() @hash['farm'] end
|
18
18
|
# @return [String]
|
19
|
-
def title() @
|
19
|
+
def title() @hash['title'] end
|
20
20
|
# @return [String]
|
21
|
-
def description() @
|
21
|
+
def description() @hash['description'] end
|
22
22
|
|
23
23
|
# @return [String]
|
24
|
-
def primary_media_id() @
|
24
|
+
def primary_media_id() @hash['primary'] end
|
25
25
|
alias primary_photo_id primary_media_id
|
26
26
|
alias primary_video_id primary_media_id
|
27
27
|
|
28
28
|
# @return [Fixnum]
|
29
|
-
def views_count() Integer(@
|
29
|
+
def views_count() Integer(@hash['count_views']) rescue nil end
|
30
30
|
# @return [Fixnum]
|
31
|
-
def comments_count() Integer(@
|
31
|
+
def comments_count() Integer(@hash['count_comments']) rescue nil end
|
32
32
|
# @return [Fixnum]
|
33
|
-
def photos_count() Integer(@
|
33
|
+
def photos_count() Integer(@hash['count_photos']) rescue nil end
|
34
34
|
# @return [Fixnum]
|
35
|
-
def videos_count() Integer(@
|
35
|
+
def videos_count() Integer(@hash['count_videos']) rescue nil end
|
36
36
|
# @return [Fixnum]
|
37
37
|
def media_count
|
38
38
|
photos_count + videos_count rescue nil
|
39
39
|
end
|
40
40
|
|
41
41
|
# @return [Flickrie::User]
|
42
|
-
def owner() User.new('nsid' => @
|
42
|
+
def owner() User.new('nsid' => @hash['owner']) if @hash['owner'] end
|
43
43
|
|
44
44
|
# Same as calling `Flickrie.photos_from_set(set.id)`.
|
45
45
|
#
|
@@ -61,59 +61,64 @@ module Flickrie
|
|
61
61
|
end
|
62
62
|
|
63
63
|
# @return [Boolean]
|
64
|
-
def can_comment?() Integer(@
|
64
|
+
def can_comment?() Integer(@hash['can_comment']) == 1 rescue nil end
|
65
65
|
|
66
66
|
# @return [Boolean]
|
67
|
-
def needs_interstitial?() Integer(@
|
67
|
+
def needs_interstitial?() Integer(@hash['needs_interstitial']) == 1 rescue nil end
|
68
68
|
# @return [Boolean]
|
69
|
-
def visibility_can_see_set?() Integer(@
|
69
|
+
def visibility_can_see_set?() Integer(@hash['visibility_can_see_set']) == 1 rescue nil end
|
70
70
|
|
71
71
|
# @return [Time]
|
72
|
-
def created_at() Time.at(Integer(@
|
72
|
+
def created_at() Time.at(Integer(@hash['date_create'])) rescue nil end
|
73
73
|
# @return [Time]
|
74
|
-
def updated_at() Time.at(Integer(@
|
74
|
+
def updated_at() Time.at(Integer(@hash['date_update'])) rescue nil end
|
75
75
|
|
76
76
|
# @return [String]
|
77
77
|
def url() "http://www.flickr.com/photos/#{owner.nsid}/sets/#{id}" rescue nil end
|
78
78
|
|
79
|
-
def [](key) @
|
79
|
+
def [](key) @hash[key] end
|
80
80
|
# @return [Hash]
|
81
|
-
def hash() @
|
81
|
+
def hash() @hash end
|
82
82
|
|
83
83
|
# Same as calling `Flickrie.get_set_info(set.id)`
|
84
84
|
#
|
85
85
|
# @return [self]
|
86
|
-
def get_info(params = {}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
# Fixes
|
91
|
-
@info['title'] = @info['title']['_content']
|
92
|
-
@info['description'] = @info['description']['_content']
|
86
|
+
def get_info(params = {})
|
87
|
+
hash ||= Flickrie.client.get_set_info(id, params).body['photoset']
|
88
|
+
self.class.fix_info(hash)
|
89
|
+
@hash.update(hash)
|
93
90
|
|
94
91
|
self
|
95
92
|
end
|
96
93
|
|
97
94
|
private
|
98
95
|
|
99
|
-
def initialize(
|
100
|
-
@
|
96
|
+
def initialize(hash = {})
|
97
|
+
@hash = hash
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.from_info(hash)
|
101
|
+
fix_info(hash)
|
102
|
+
new(hash)
|
101
103
|
end
|
102
104
|
|
103
|
-
def self.
|
104
|
-
|
105
|
+
def self.fix_info(hash)
|
106
|
+
hash['title'] = hash['title']['_content']
|
107
|
+
hash['description'] = hash['description']['_content']
|
105
108
|
end
|
106
109
|
|
107
|
-
def self.from_user(
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
def self.from_user(hash, user_nsid)
|
111
|
+
collection = hash.delete('photoset').map do |set_hash|
|
112
|
+
set_hash['count_photos'] = set_hash.delete('photos')
|
113
|
+
set_hash['count_videos'] = set_hash.delete('videos')
|
114
|
+
set_hash['title'] = set_hash['title']['_content']
|
115
|
+
set_hash['description'] = set_hash['description']['_content']
|
116
|
+
set_hash['owner'] = user_nsid
|
114
117
|
|
115
|
-
new(
|
118
|
+
new(set_hash)
|
116
119
|
end
|
120
|
+
|
121
|
+
Collection.new(hash).replace(collection)
|
117
122
|
end
|
118
123
|
end
|
119
124
|
end
|
data/lib/flickrie/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flickrie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday_middleware
|
16
|
-
requirement: &
|
16
|
+
requirement: &70205943354860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: '0.9'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *70205943354860
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: faraday
|
30
|
-
requirement: &
|
30
|
+
requirement: &70205943340760 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -38,10 +38,10 @@ dependencies:
|
|
38
38
|
version: '0.9'
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
|
-
version_requirements: *
|
41
|
+
version_requirements: *70205943340760
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: simple_oauth
|
44
|
-
requirement: &
|
44
|
+
requirement: &70205943338120 !ruby/object:Gem::Requirement
|
45
45
|
none: false
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
@@ -49,10 +49,10 @@ dependencies:
|
|
49
49
|
version: '0.1'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
|
-
version_requirements: *
|
52
|
+
version_requirements: *70205943338120
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: multi_xml
|
55
|
-
requirement: &
|
55
|
+
requirement: &70205943336520 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
@@ -60,10 +60,10 @@ dependencies:
|
|
60
60
|
version: '0.4'
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
|
-
version_requirements: *
|
63
|
+
version_requirements: *70205943336520
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: bundler
|
66
|
-
requirement: &
|
66
|
+
requirement: &70205943335000 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
@@ -71,10 +71,10 @@ dependencies:
|
|
71
71
|
version: '1.0'
|
72
72
|
type: :development
|
73
73
|
prerelease: false
|
74
|
-
version_requirements: *
|
74
|
+
version_requirements: *70205943335000
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rake
|
77
|
-
requirement: &
|
77
|
+
requirement: &70205943333720 !ruby/object:Gem::Requirement
|
78
78
|
none: false
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
@@ -82,10 +82,10 @@ dependencies:
|
|
82
82
|
version: '0.9'
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
|
-
version_requirements: *
|
85
|
+
version_requirements: *70205943333720
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: rspec
|
88
|
-
requirement: &
|
88
|
+
requirement: &70205943325680 !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
91
|
- - ! '>='
|
@@ -96,10 +96,10 @@ dependencies:
|
|
96
96
|
version: '3'
|
97
97
|
type: :development
|
98
98
|
prerelease: false
|
99
|
-
version_requirements: *
|
99
|
+
version_requirements: *70205943325680
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: vcr
|
102
|
-
requirement: &
|
102
|
+
requirement: &70205943322700 !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|
105
105
|
- - ~>
|
@@ -107,7 +107,7 @@ dependencies:
|
|
107
107
|
version: '2.1'
|
108
108
|
type: :development
|
109
109
|
prerelease: false
|
110
|
-
version_requirements: *
|
110
|
+
version_requirements: *70205943322700
|
111
111
|
description: This gem wraps the Flickr API with a nice object-oriented interface.
|
112
112
|
email: janko.marohnic@gmail.com
|
113
113
|
executables: []
|
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
163
|
version: '0'
|
164
164
|
segments:
|
165
165
|
- 0
|
166
|
-
hash: -
|
166
|
+
hash: -3848221286022942563
|
167
167
|
requirements: []
|
168
168
|
rubyforge_project:
|
169
169
|
rubygems_version: 1.8.11
|