jekyll-flickr 0.1.2 → 0.2.1

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
  SHA256:
3
- metadata.gz: 36695c3c9dde937ec527bf19b34865327ec83248d5acab73ba1e88b84f6f79a9
4
- data.tar.gz: 7092b44fc42b05d27716c2805f5fb5aa73be2d0fe264ff34d036d49a6dc4d996
3
+ metadata.gz: eb2f0ca419b0edf09cc93e3c122d8bf8c9325c9619951d3be4b35c5f18a0fd39
4
+ data.tar.gz: 78b24210551fd30062797d42460f94abc1a876c90731fe1dca938db93d2f8975
5
5
  SHA512:
6
- metadata.gz: 7423f1d84db3884f2e2c2b9dcb5c266db713a33e71788ae478993bb141136f4961b4e310cc110d272f14a7c744522f00331b9fb09c875ef5e68441ed6bcc58dc
7
- data.tar.gz: 0a71a46c59c36f8f8708096360acc253cf9533adce08785f75371f8e5e3d57e768bcd8e43558658923217692cca91cec4acca70de3baa8544de92349846fbc09
6
+ metadata.gz: d681c5b700606cf9547bd8215387f76cdc0cd65c7d51357d313eb474551e69c5e6f850e4807fa94f179aff18d98ecd8c50c0673f5cb6cfacb2641aacfe166b0d
7
+ data.tar.gz: 0f00350dabab634676e742fb53380565a882fbe0e920f4359b4091b40729c13c3fa384d3a84658e9295792ba70596a2790481525778ca168a05457d0028bc95d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  ## HEAD
2
2
 
3
+ ## 0.2.1 / 2024-01-01
4
+
5
+ * fix: change cache name according to recommendation from <https://jekyllrb.com/tutorials/cache-api/>
6
+ * feature: Add flexibility to searching for the right picture width and some minor issues (courtesy of <akarwande@coredigital.com>)
7
+
8
+ ## 0.2.0 / 2021-02-25
9
+
10
+ * dependencies: require Jekyll 4.x and use gem flickr instead of flickraw
11
+ * use native Jekyll cache API (<https://jekyllrb.com/tutorials/cache-api/>) instead of jekyll-cache
12
+
13
+ ## 0.1.3 / 2019-03-13
14
+
15
+ * refactor: use simpler API provided by gem flickraw 0.9.10
16
+
3
17
  ## 0.1.2 / 2019-03-06
4
18
 
5
19
  * feature: reduce overhead due to class variables
@@ -7,7 +7,7 @@ require "jekyll-flickr/version"
7
7
 
8
8
  Gem::Specification.new do |spec|
9
9
  spec.name = "jekyll-flickr"
10
- spec.version = Jekyll::Onebox::VERSION
10
+ spec.version = Jekyll::Flickr::VERSION
11
11
  spec.authors = ["Robert Riemann"]
12
12
  spec.email = ["robert@riemann.cc"]
13
13
  spec.summary = "Liquid tag for responsive Flickr images using HTML5 srcset."
@@ -21,10 +21,8 @@ Gem::Specification.new do |spec|
21
21
  # spec.test_files = spec.files.grep(%r!^(test|spec|features)/!)
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "jekyll-cache", "~> 1.2"
25
- spec.add_dependency "flickraw-cached", ">= 20120701"
26
- spec.add_dependency "flickraw", "~> 0.9.9"
24
+ spec.add_dependency "flickr", "~> 2.0"
27
25
  spec.add_development_dependency "bundler", "~> 1.6"
28
- spec.add_development_dependency "jekyll", ">= 3.0"
26
+ spec.add_development_dependency "jekyll", "~>4.0", "< 5.0"
29
27
  spec.add_development_dependency "rake"
30
28
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'flickraw-cached'
4
- require 'jekyll-cache'
3
+ require 'flickr'
5
4
 
6
5
  module Jekyll
7
6
  module Flickr
8
7
  class FlickrTag < Liquid::Tag
8
+ CACHE_NAME = "Jekyll::Flickr::FlickrTag"
9
9
 
10
10
  # selection of sizes from those offered by Flickr API
11
11
  DEFAULT_CONFIG = {
@@ -73,15 +73,13 @@ module Jekyll
73
73
 
74
74
  def flickr
75
75
  @@flickr ||= begin
76
- FlickRaw.api_key = ENV['FLICKR_API_KEY'] || config['api_key']
77
- FlickRaw.shared_secret = ENV['FLICKR_API_SECRET'] || config['api_secret']
78
-
79
- @@flickr = FlickRaw::Flickr.new
76
+ # by default, Flickr uses ENV FLICKR_API_KEY and FLICKR_SHARED_SECRET, support here legacy name FLICKR_API_SECRET, too
77
+ @@flickr = ::Flickr.new(ENV['FLICKR_API_KEY'] || config['api_key'], ENV['FLICKR_SHARED_SECRET'] || ENV['FLICKR_API_SECRET'] || config['api_secret'])
80
78
  end
81
79
  end
82
80
 
83
81
  def cache
84
- @@cache ||= Jekyll::Cache::FileStore.new 'flickr'
82
+ @@cache ||= Jekyll::Cache.new(CACHE_NAME)
85
83
  end
86
84
 
87
85
  def config
@@ -90,13 +88,13 @@ module Jekyll
90
88
 
91
89
  def render(context)
92
90
 
93
- match = /(?<photo_id>\d+)(\s(\"(?<caption>[^"]+)\"))?(?<attr>.*)/.match @text
91
+ match = /(?<photo_id>\d+)(\s(\"(?<caption>[^"]*)\"))?(?<attr>.*)/.match @text
94
92
 
95
93
  photo_id = match.named_captures['photo_id']
96
94
  photo_caption = match.named_captures['caption']
97
95
  photo_attr = match.named_captures['attr']
98
96
 
99
- photo_data = cache.fetch photo_id, expires_in: -1 do # disable expiry in production and development environment
97
+ photo_data = cache.getset photo_id do
100
98
  {
101
99
  info: flickr.photos.getInfo(photo_id: photo_id),
102
100
  sizes: flickr.photos.getSizes(photo_id: photo_id)
@@ -107,6 +105,25 @@ module Jekyll
107
105
  photo_sizes = photo_data[:sizes].select{ |photo| widths.include?(photo['width'].to_i) }
108
106
  photo_legacy = photo_data[:sizes].find{ |photo| photo['width'].to_i == config['width_legacy']} || photo_data[:sizes].find{ |photo| photo['label'] == 'Original'}
109
107
 
108
+ # if these sizes are not found, pick the one closes to width_legacy
109
+ unless photo_legacy
110
+ candidate = nil
111
+ smallest_delta = nil
112
+ photo_data[:sizes].each do |photo|
113
+ current_delta = (photo['width'].to_i - config['width_legacy']).abs
114
+ if !smallest_delta || (current_delta < smallest_delta)
115
+ candidate = photo
116
+ smallest_delta = current_delta
117
+ end
118
+ end
119
+ photo_legacy = candidate
120
+ end
121
+
122
+ # if no photo is found return
123
+ unless photo_legacy
124
+ return ""
125
+ end
126
+
110
127
  srcset = photo_sizes.map{|photo| "#{photo['source']} #{photo['width']}w"}.join(", ")
111
128
 
112
129
  sizes = unless photo_attr.include?('sizes=') then
@@ -121,7 +138,7 @@ module Jekyll
121
138
 
122
139
  img_tag = "<img class=\"flickr\" src=\"#{photo_legacy.source}\" srcset=\"#{srcset}\" sizes=\"#{sizes}\" #{photo_attr}>"
123
140
 
124
- return img_tag if not config['figcaption']
141
+ return compute_html_tag(img_tag) if not config['figcaption']
125
142
 
126
143
  photo_license = if config['license'] then
127
144
  license = LICENSES[photo_data[:info].license.to_i]
@@ -144,12 +161,24 @@ module Jekyll
144
161
  ""
145
162
  end
146
163
 
147
- return img_tag if photo_license.empty? and photo_caption.empty?
164
+ return compute_html_tag(img_tag) if photo_license.empty? and photo_caption.empty?
148
165
 
149
166
  return <<-HTML
150
167
  <figure class="flickr">
151
168
  #{img_tag}
152
169
  <figcaption>#{photo_caption}#{photo_license}</figcaption>
170
+ </figure>
171
+ HTML
172
+ end
173
+
174
+ #######
175
+ private
176
+ #######
177
+
178
+ def compute_html_tag(img_tag)
179
+ return <<-HTML
180
+ <figure class="flickr">
181
+ #{img_tag}
153
182
  </figure>
154
183
  HTML
155
184
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jekyll
4
- module Onebox
5
- VERSION = "0.1.2".freeze
4
+ module Flickr
5
+ VERSION = "0.2.1".freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,57 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-flickr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Riemann
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-08 00:00:00.000000000 Z
11
+ date: 2024-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: jekyll-cache
14
+ name: flickr
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
27
- - !ruby/object:Gem::Dependency
28
- name: flickraw-cached
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '20120701'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '20120701'
41
- - !ruby/object:Gem::Dependency
42
- name: flickraw
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.9.9
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.9.9
26
+ version: '2.0'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: bundler
57
29
  requirement: !ruby/object:Gem::Requirement
@@ -70,16 +42,22 @@ dependencies:
70
42
  name: jekyll
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
- - - ">="
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.0'
48
+ - - "<"
74
49
  - !ruby/object:Gem::Version
75
- version: '3.0'
50
+ version: '5.0'
76
51
  type: :development
77
52
  prerelease: false
78
53
  version_requirements: !ruby/object:Gem::Requirement
79
54
  requirements:
80
- - - ">="
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '4.0'
58
+ - - "<"
81
59
  - !ruby/object:Gem::Version
82
- version: '3.0'
60
+ version: '5.0'
83
61
  - !ruby/object:Gem::Dependency
84
62
  name: rake
85
63
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +72,7 @@ dependencies:
94
72
  - - ">="
95
73
  - !ruby/object:Gem::Version
96
74
  version: '0'
97
- description:
75
+ description:
98
76
  email:
99
77
  - robert@riemann.cc
100
78
  executables: []
@@ -115,7 +93,7 @@ homepage: https://github.com/rriemann/jekyll-flickr
115
93
  licenses:
116
94
  - MIT
117
95
  metadata: {}
118
- post_install_message:
96
+ post_install_message:
119
97
  rdoc_options: []
120
98
  require_paths:
121
99
  - lib
@@ -130,9 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
108
  - !ruby/object:Gem::Version
131
109
  version: '0'
132
110
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.7.9
135
- signing_key:
111
+ rubygems_version: 3.0.1
112
+ signing_key:
136
113
  specification_version: 4
137
114
  summary: Liquid tag for responsive Flickr images using HTML5 srcset.
138
115
  test_files: []