jekyll-recker 1.10.0 → 1.11.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
  SHA256:
3
- metadata.gz: 9e61434d17d1a940324300e971e46521b5775f0831090a0f0f7ff7a7d6779bdb
4
- data.tar.gz: bfa3635b5fb0e128347216e4855904252b172147172ef4e3176d348947d3fbbf
3
+ metadata.gz: 15d0b79e8f6f9370433856ad0d89a1ae7996d0900644739fa915bd5f155e60c9
4
+ data.tar.gz: 630418f988d9e17ac451be9932aa6e3f881cb71a37570b7d4e70bd3f1b629477
5
5
  SHA512:
6
- metadata.gz: '094e0465155a843d4e3955700ca6244dff42b88a3d6b28860371ed0ab6a4e970f1c7b97b1d1750b9bfbb06ac51ee691b308420ad49b1e6da84393253d872f7f9'
7
- data.tar.gz: 7a944d6f918a52b903715ab6034704ee244d59fffc2a0d929983cbb4427e165387d55c508b3e62d8b9d641cc45bf94e23ac450ff75b625aa9748cea905144595
6
+ metadata.gz: 141f627ae47682e8cd42320cd522693e33f01970f8f229c7394f26d66e1a13284ac1f73f8ac90fc4361093dccef209698a89ea168be299b9fae264efe6106523
7
+ data.tar.gz: 9563f420e21f8a343c409521b06065c5d36f8aad3f503303511e913ec37b1d15ee476819bcffa1ccf4a6c8781b6c1da8d52b474c25dbc007a68e3d27395412aa
@@ -7,7 +7,6 @@ require 'jekyll'
7
7
  # The greatest jekyll plugin in the world
8
8
  module JekyllRecker
9
9
  autoload :Configuration, 'jekyll_recker/configuration.rb'
10
- autoload :Error, 'jekyll_recker/error.rb'
11
10
  autoload :Mixins, 'jekyll_recker/mixins.rb'
12
11
  autoload :Shell, 'jekyll_recker/shell.rb'
13
12
  autoload :Social, 'jekyll_recker/social.rb'
@@ -18,7 +18,7 @@ module JekyllRecker
18
18
 
19
19
  def self.action(args, options)
20
20
  JekyllRecker::Social.action(args, options)
21
- rescue ::JekyllRecker::Error => e
21
+ rescue Error => e
22
22
  logger.error e.message
23
23
  exit 1
24
24
  end
@@ -1,7 +1,50 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'mini_magick'
4
+ require 'fastimage'
5
+
3
6
  module JekyllRecker
4
7
  module Generators
8
+ # Image Resize Generator
9
+ class ImageResize < Jekyll::Generator
10
+ include Mixins::Logging
11
+
12
+ def generate(site)
13
+ @site = site
14
+ logger.info 'checking images'
15
+ resizeable_images.each do |f, d|
16
+ logger.info "resizing #{f} to fit #{d}"
17
+ image = MiniMagick::Image.new(f)
18
+ image.resize d
19
+ end
20
+ end
21
+
22
+ def image?(file)
23
+ ['.jpg', 'jpeg', '.png', '.svg'].include? File.extname(file)
24
+ end
25
+
26
+ def too_big?(width, height)
27
+ width > 800 || height > 800
28
+ end
29
+
30
+ def images
31
+ @site.static_files.collect(&:path).select { |f| image?(f) }
32
+ end
33
+
34
+ def resizeable_images
35
+ with_sizes = images.map { |f| [f, FastImage.size(f)].flatten }
36
+ with_sizes.select! { |f| too_big?(f[1], f[2]) }
37
+ with_sizes.map do |f, w, h|
38
+ dimensions = if w > h
39
+ '800x600'
40
+ else
41
+ '600x800'
42
+ end
43
+ [f, dimensions]
44
+ end
45
+ end
46
+ end
47
+
5
48
  # Stats Module
6
49
  #
7
50
  # Functions for stats generators.
@@ -5,9 +5,6 @@ require 'open3'
5
5
  module JekyllRecker
6
6
  # Shell
7
7
  module Shell
8
- # ShellCommandFailed
9
- class ShellCommandFailed < JekyllRecker::Error; end
10
-
11
8
  def self.run(cmd)
12
9
  out, err, status = Open3.capture3(cmd)
13
10
  return out if status.success?
@@ -22,7 +19,7 @@ module JekyllRecker
22
19
  #{err}
23
20
  ERROR
24
21
 
25
- raise ShellCommandFailed, msg
22
+ raise msg
26
23
  end
27
24
  end
28
25
  end
@@ -47,10 +47,10 @@ module JekyllRecker
47
47
  def post_body
48
48
  url = File.join Configuration.jekyll['url'], latest.url
49
49
  <<~BODY
50
- #{latest.data['date'].strftime('%A, %B %-d %Y')}
51
- #{latest.data['title']}
52
- #{url}
53
- BODY
50
+ #{latest.data['date'].strftime('%A, %B %-d %Y')}
51
+ #{latest.data['title']}
52
+ #{url}
53
+ BODY
54
54
  end
55
55
 
56
56
  def latest
@@ -79,7 +79,7 @@ module JekyllRecker
79
79
  workspaces.each do |key, data|
80
80
  webhook = ENV["SLACK_#{key.upcase}_WEBHOOK"] || extract_from_config(data)
81
81
  if webhook.nil?
82
- raise ReckerError, "cannot find slack webhook for #{key} workspace!"
82
+ raise "cannot find slack webhook for #{key} workspace!"
83
83
  end
84
84
 
85
85
  @creds[key] = webhook
@@ -123,7 +123,7 @@ module JekyllRecker
123
123
  class Twitter < Share
124
124
  def configure!
125
125
  creds = extract_from_env || extract_from_config
126
- raise ReckerError, 'cannot find twitter credentials!' if creds.nil?
126
+ raise 'cannot find twitter credentials!' if creds.nil?
127
127
 
128
128
  @client = ::Twitter::REST::Client.new do |settings|
129
129
  settings.consumer_key = creds['consumer_api_key']
@@ -163,11 +163,11 @@ module JekyllRecker
163
163
  end
164
164
 
165
165
  def cred_fieldnames
166
- [
167
- 'access_token_secret',
168
- 'access_token',
169
- 'consumer_api_key',
170
- 'consumer_api_secret'
166
+ %w[
167
+ access_token_secret
168
+ access_token
169
+ consumer_api_key
170
+ consumer_api_secret
171
171
  ]
172
172
  end
173
173
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllRecker
4
- VERSION = '1.10.0'
4
+ VERSION = '1.11.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-recker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Recker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2020-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bump
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: fastimage
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: jekyll
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: '3.8'
125
+ - !ruby/object:Gem::Dependency
126
+ name: mini_magick
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: slack-notifier
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +185,6 @@ files:
157
185
  - lib/jekyll-recker.rb
158
186
  - lib/jekyll_recker/commands.rb
159
187
  - lib/jekyll_recker/configuration.rb
160
- - lib/jekyll_recker/error.rb
161
188
  - lib/jekyll_recker/filters.rb
162
189
  - lib/jekyll_recker/generators.rb
163
190
  - lib/jekyll_recker/mixins.rb
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module JekyllRecker
4
- # Error
5
- class Error < StandardError; end
6
- end