shrine-flickr 0.1.0 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12ab499b1ff7996632ad117ae88b3942f34a5b18
4
- data.tar.gz: 7e288b9df96f09379f15f25a2c16579e5c26aca5
3
+ metadata.gz: 4761bed9ab500b93b20b470079e6f250306e5022
4
+ data.tar.gz: 444f254394e988529d323b1f725b5f2e26338c77
5
5
  SHA512:
6
- metadata.gz: 21bf0cd8d224802249b45135429a5a1e8c59e6e6043527200e0f13b08ecc07c03a99f2a14439592842cf713379a51c70d92e0f56053c1ec8f7ec1e797d9a6e75
7
- data.tar.gz: db89dd5f8298879254fdf2d1a0f3df6b7222cc22d1fd3f79c4a937157e0c6105c0ab37ef19f08835900ddd5134782e478848229d318cd0dd96e41c06c9f15c0f
6
+ metadata.gz: 6d1b39cb97e7917b7b12edd804e0d826fd927090b7a0b17aa8987fc96171198f8cff1aa814e34a34058e9b0f6667454a89ffd7c727ef6e099596af5b86a1c6e8
7
+ data.tar.gz: cbaacdf09623d2f40cd2326ecf599ed0ccc579902e726ef100a117580b33d51cfe980de16a2cbda60ad47036c81928b7d574a467253a8950d38b9ed307766cbe
data/README.md CHANGED
@@ -31,33 +31,60 @@ require "shrine/storage/flickr"
31
31
  Shrine::Storage::Flickr.new(access_token: ["key", "secret"])
32
32
  ```
33
33
 
34
- ### URL options
34
+ ### URL, width and height
35
35
 
36
- After the image is uploaded, available sizes and their URLs will be saved to
37
- file's `#metadata`:
36
+ After the image is uploaded, URLs, widths and heighs of all sizes will be saved
37
+ to "flickr_sizes" metadata key:
38
38
 
39
39
  ```rb
40
- user.avatar.metadata #=>
41
- # {
42
- # "flickr_sizes" => {
43
- # "Square 75" => "https://farm6.staticflickr.com/5687/23578693711_ab9745cfd0_s.jpg",
44
- # "Thumbnail" => "https://farm6.staticflickr.com/5687/23578693711_ab9745cfd0_t.jpg",
45
- # "Original" => "https://farm6.staticflickr.com/5687/23578693711_0bf01bb96a_o.jpg",
40
+ user.avatar.metadata["flickr_sizes"] #=>
41
+ # [
42
+ # {
43
+ # "name" => "Square 75",
44
+ # "url" => "https://farm6.staticflickr.com/5706/23367159280_36d62093cf_s.jpg",
45
+ # "width" => 75,
46
+ # "height" => 75
47
+ # },
48
+ # {
49
+ # "name" => "Thumbnail",
50
+ # "url" => "https://farm6.staticflickr.com/5706/23367159280_36d62093cf_t.jpg",
51
+ # "width" => 100,
52
+ # "height" => 67
53
+ # },
54
+ # {
55
+ # "name" => "Original",
56
+ # "url" => "https://farm6.staticflickr.com/5706/23367159280_499ddf155e_o.jpg",
57
+ # "width" => 100,
58
+ # "height" => 67
46
59
  # }
47
- # }
60
+ # ]
48
61
  ```
49
62
 
50
- You can pass in the name of the size as a URL option:
63
+ You can pass the size name to `#url`, `#width` and `#height`:
51
64
 
52
65
  ```rb
53
66
  user.avatar.url(size: "Medium 500")
67
+ user.avatar.width(size: "Thumbnail")
68
+ user.avatar.height(size: "Small 320")
69
+
70
+ # alternative notation
54
71
  user.avatar.url(size: :medium_500)
72
+ user.avatar.width(size: :thumbnail)
73
+ user.avatar.height(size: :small_320)
74
+
75
+ # defaults to "Original"
76
+ user.avatar.url
77
+ user.avatar.width
78
+ user.avatar.height
55
79
  ```
56
80
 
57
81
  All possible sizes are: "Square 75", "Thumbnail", "Square 150", "Small 240",
58
82
  "Small 320", "Medium 500", "Medium 640", "Medium 800", "Large 1024", "Large
59
83
  1600", "Large 2048" and "Original".
60
84
 
85
+ Note that when using storage-flickr you shouldn't load the `store_dimensions`
86
+ plugin, because they're not compatible.
87
+
61
88
  ### Album
62
89
 
63
90
  You can choose to upload all your photos in an album by giving the album ID:
@@ -102,6 +129,18 @@ flickr = Shrine::Storage::Flickr.new(access_token: ["...", "..."])
102
129
  flickr.clear!(:confirm)
103
130
  ```
104
131
 
132
+ ### Linking back
133
+
134
+ In Flickr's guidelines it states that if you're displaying photos from Flickr
135
+ on another webiste, you should always link back to Flickr. For that you can
136
+ use `#flickr_url`:
137
+
138
+ ```erb
139
+ <a href="<%= @user.avatar.flickr_url %>">
140
+ <img src="<%= @user.avatar.url(size: "Small 320") %>">
141
+ </a>
142
+ ```
143
+
105
144
  ## Contributing
106
145
 
107
146
  First you need to create an `.env` file where you will store your credentials:
@@ -22,10 +22,16 @@ class Shrine
22
22
  id.replace(photo_id)
23
23
  album.add_photo(id) if album
24
24
 
25
- metadata["flickr_sizes"] = {}
25
+ metadata["flickr_sizes"] = []
26
26
  photo = photo(id).get_sizes!
27
27
  photo.available_sizes.each do |size|
28
- metadata["flickr_sizes"][size] = photo.size!(size).source_url
28
+ photo.size!(size)
29
+ metadata["flickr_sizes"] << {
30
+ "name" => size,
31
+ "url" => photo.source_url,
32
+ "width" => photo.width,
33
+ "height" => photo.height,
34
+ }
29
35
  end
30
36
  end
31
37
 
@@ -76,7 +82,7 @@ class Shrine
76
82
  module FileMethods
77
83
  def download
78
84
  if storage.is_a?(Storage::Flickr)
79
- Down.download(original_url)
85
+ Down.download(url)
80
86
  else
81
87
  super
82
88
  end
@@ -84,19 +90,32 @@ class Shrine
84
90
 
85
91
  def url(**options)
86
92
  if storage.is_a?(Storage::Flickr)
87
- if size = options[:size]
88
- size = size.to_s.tr("_", " ").capitalize if size.is_a?(Symbol)
89
- flickr_sizes.fetch(size)
90
- else
91
- original_url
92
- end
93
+ size_attribute("url", **options)
93
94
  else
94
95
  super
95
96
  end
96
97
  end
97
98
 
99
+ def width(**options)
100
+ size_attribute("width", **options)
101
+ end
102
+
103
+ def height(**options)
104
+ size_attribute("height", **options)
105
+ end
106
+
107
+ def flickr_url
108
+ "https://www.flickr.com/photos/#{storage.person.id}/#{id}"
109
+ end
110
+
98
111
  private
99
112
 
113
+ def size_attribute(key, size: "Original")
114
+ size = size.to_s.tr("_", " ").capitalize if size.is_a?(Symbol)
115
+ hash = flickr_sizes.find { |hash| hash["name"] == size }
116
+ hash.fetch(key) if hash
117
+ end
118
+
100
119
  def io
101
120
  if storage.is_a?(Storage::Flickr)
102
121
  @io ||= download
@@ -105,10 +124,6 @@ class Shrine
105
124
  end
106
125
  end
107
126
 
108
- def original_url
109
- flickr_sizes.fetch("Original")
110
- end
111
-
112
127
  def flickr_sizes
113
128
  metadata["flickr_sizes"]
114
129
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = "shrine-flickr"
3
- gem.version = "0.1.0"
3
+ gem.version = "0.2.0"
4
4
 
5
5
  gem.required_ruby_version = ">= 2.1"
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shrine-flickr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janko Marohnić
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-10 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flickr-objects