jekyll-recker 1.10.0 → 1.11.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
  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