zine 0.16.0 → 0.17.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: 1a733c0fc351f0cebc4de9bc02c2960217ec5ff32ddced28ccc8e8ea6b3104b8
4
- data.tar.gz: 2d877e8987f3f575da1a128921db7510cd683f9868457d189b622facfe409054
3
+ metadata.gz: 0a66a879974bd37a0bae5528bbfbc4026abedcb2d299e423b27e6b10cc127ec1
4
+ data.tar.gz: dd4492c3f3e9b82355d1eb4c7ef8c30c44b04d6c8dfabe3156ad4f4d6fb7bfb4
5
5
  SHA512:
6
- metadata.gz: 161010777cf556c39c64669e1983fcb25a6114e30c82404d18c1ef5f3bbb45b20a74c3acfb5a5da48b502a7f38c52645f37c86ffbb2e3f0da717625bb2423ef0
7
- data.tar.gz: addf78c26a6cd74b1127a2e0a225ca0540f3c3205e03053d2f9f0c164172368987db648651dd8b0c02c86289d84f77cdcc5f28334a7a789a8daff1a7db83e008
6
+ metadata.gz: 954d1e78f5345ac73c499b8d1dd820769be59df6e3632af7b44be97088a61d77c6df89e2e4d1fe104128076b472b261bae40243dde87be04a53ad62d5d46eb78
7
+ data.tar.gz: adfcbad9184fff6f95473ee2000dfc4da0be91c97cc3a145bda6c8a01a6324e3908551e00c3172f88a3940f5ad15c60b7d45cf962bc5842c1dc2cc022f99096c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Zine Changelog
2
2
 
3
+ # 0.17.0 - 17 February, 2023
4
+
5
+ - forced polling for the listener gem, which was skipping new files on linux otherwise
6
+ - fixed an errant inverted comma in links, introduced in the last commit
7
+ - added a UTF 8 tag to the RSS template
8
+ - added HTML encoding for ellipses, em and en dashes with Kramdown's "typographic symbols"
9
+ - added a two day cache header for AWS uploads
10
+ - dependency updates
11
+ - year bump in the starter template
12
+ - dropped the faraday-retry gem again after Octokit updated
13
+
14
+ # towards 0.17.0 - 20 June, 2022 (on Github, but not RubyGems)
15
+
16
+ - customised the rake file
17
+ - refactored - from 112 rubocop offenses, to 33
18
+ - fixed a failing test
19
+ - bumped the minimum Ruby version again, 2.6 was EOL 31 Mar 2022 - from 2.6 to 2.7
20
+ - dependency updates
21
+ - added the faraday-retry gem as a dependency, to suppress warnings (from Octokit)
22
+
3
23
  # 0.16.0 - 17 June, 2022
4
24
 
5
25
  - temp warning about missing atom template in zine.yaml, better handling of missing templates
@@ -10,7 +30,7 @@
10
30
  - reversed the sort order for this change log
11
31
  - changed the date format in the log - from US style, to everywhere else style
12
32
 
13
- # 0.16.0 - 3 February, 2022 - not published as a gem
33
+ # towards 0.16.0 - 3 February, 2022
14
34
 
15
35
  - BREAKING CHANGE: added an RSS 2.0 feed in addition to the Atom feed, the rss.erb file and /rss.xml feed link will now be RSS, an Atom and RSS template are both required in the local site copy, and need to be listed in a site's zine.yml file
16
36
  - year bump in starter template
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'zine'
data/bin/zine CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
5
 
4
6
  require 'zine/cli'
data/lib/zine/cli.rb CHANGED
@@ -12,26 +12,26 @@ module Zine
12
12
  # CLI for zine
13
13
  class CLI < Thor
14
14
  include Thor::Actions
15
- attr_accessor :the_site # only used in testing
15
+ attr_accessor :site # only used in testing
16
16
 
17
17
  no_commands do
18
18
  def self.exit_on_failure?
19
19
  true
20
20
  end
21
21
 
22
- def init_site
23
- @the_site ||= Zine::Site.new
22
+ def site
23
+ @site ||= Zine::Site.new
24
24
  end
25
25
 
26
26
  def options
27
- init_site
27
+ site
28
28
 
29
- # for v0.16.0 only
30
- unless @the_site.options['templates']['atom']
29
+ # for v0.16.0 & a few more only
30
+ unless @site.options['templates'] && @site.options['templates']['atom']
31
31
  puts "v0.16.0 changes how rss & atom works, see CHANGELOG.md if you haven't already\n\n"
32
32
  end
33
33
 
34
- @the_site.options
34
+ @site.options
35
35
  end
36
36
  end
37
37
 
@@ -42,28 +42,28 @@ module Zine
42
42
  # printf "%25s\#%s\t\t\t%s:%-2d\n", classname, id, file, line
43
43
  # end
44
44
  # }
45
- init_site
46
- @the_site.build_site
45
+ site
46
+ @site.build_site
47
47
  puts Rainbow('Site built').green
48
48
  end
49
49
 
50
50
  desc 'force', 'Build the site, forcing writes & uploads'
51
51
  def force
52
- init_site
53
- @the_site.build_site_forcing_writes
52
+ site
53
+ @site.build_site_forcing_writes
54
54
  puts Rainbow('Site built').green
55
55
  end
56
56
 
57
57
  desc 'notice POST', 'Build the site, then force the one POST'
58
58
  def notice(file)
59
- init_site
60
- @the_site.notice(file)
59
+ site
60
+ @site.notice(file)
61
61
  puts Rainbow('Site built').green
62
62
  end
63
63
 
64
64
  desc 'nuke', 'Delete the build folder'
65
65
  def nuke
66
- init_site
66
+ site
67
67
  FileUtils.remove_dir options['directories']['build'],
68
68
  force: true
69
69
  puts Rainbow('Site nuked. It\'s the only way to be sure.').green
@@ -71,7 +71,7 @@ module Zine
71
71
 
72
72
  desc 'post TITLE', 'Create the file for a new blog post, titled TITLE'
73
73
  def post(name)
74
- init_site
74
+ site
75
75
  option_dir = options['directories']
76
76
  Zine::CLI.source_root option_dir['templates']
77
77
  @date = DateTime.now
@@ -82,8 +82,8 @@ module Zine
82
82
  File.join(Dir.pwd, option_dir['posts'], file)
83
83
  end
84
84
 
85
- desc 'site', 'Create the skeleton of a new site (overwriting files)'
86
- def site
85
+ desc 'skeleton', 'Create the skeleton of a new site (overwriting files)'
86
+ def skeleton
87
87
  # @skeleton_dir ?
88
88
  skeleton_dir = File.join File.dirname(__FILE__), 'skeleton', '/.'
89
89
  FileUtils.cp_r skeleton_dir, Dir.pwd
@@ -92,7 +92,7 @@ module Zine
92
92
 
93
93
  desc 'style', 'Build the site\'s stylesheet'
94
94
  def style
95
- init_site
95
+ site
96
96
  style = Zine::Style.new(options['directories'])
97
97
  style.process(File)
98
98
  puts Rainbow('Stylesheet rendered').green
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zine/page'
2
4
 
3
5
  module Zine
data/lib/zine/page.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'erb'
2
4
  require 'date'
3
5
  require 'htmlcompressor'
@@ -16,16 +18,13 @@ module Zine
16
18
  attr_accessor :source_file # used in zine notice --
17
19
  # PostsAndHeadlines.one_new_post
18
20
  attr_reader :dest_path, :formatted_data, :template_bundle
21
+
19
22
  # the meta data, passed formatted to the template
20
23
  class FormattedData
21
24
  include ERB::Util
22
25
 
23
- attr_accessor :data
24
- attr_accessor :footer_partial
25
- attr_accessor :header_partial
26
- attr_accessor :html
26
+ attr_accessor :data, :footer_partial, :header_partial, :html, :uri
27
27
  attr_reader :page
28
- attr_accessor :uri
29
28
 
30
29
  def initialize(front_matter, site_opt)
31
30
  site = site_opt['options']
@@ -64,8 +63,9 @@ module Zine
64
63
  end
65
64
 
66
65
  def slugify_tags(tags)
67
- return unless tags && tags.any?
68
- tags.map { |tag| { name: tag, tag_slug: Page.slug(tag) } }
66
+ return unless tags
67
+
68
+ tags&.map { |tag| { name: tag, tag_slug: Page.slug(tag) } }
69
69
  end
70
70
  end
71
71
 
@@ -75,7 +75,7 @@ module Zine
75
75
 
76
76
  def initialize(md_file_name, dest, templates, site_options)
77
77
  @source_file = md_file_name
78
- file_parts = File.open(md_file_name, 'r').read.split('---', 3)
78
+ file_parts = File.read(md_file_name).split('---', 3)
79
79
  @formatted_data = FormattedData.new(parse_yaml(file_parts[1],
80
80
  md_file_name),
81
81
  site_options)
@@ -113,6 +113,7 @@ module Zine
113
113
  input: 'GFM',
114
114
  auto_ids: false,
115
115
  smart_quotes: %w[apos apos quot quot],
116
+ typographic_symbols: { hellip: '&hellip;', mdash: '&mdash;', ndash: '&ndash;' }
116
117
  ).to_html
117
118
  @raw_text = nil
118
119
  end
data/lib/zine/post.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Zine
@@ -5,7 +7,7 @@ module Zine
5
7
  class Post < Page
6
8
  def initialize(md_file_name, templates, site_options)
7
9
  @source_file = md_file_name
8
- file_parts = File.open(md_file_name, 'r').read.split('---', 3)
10
+ file_parts = File.read(md_file_name).split('---', 3)
9
11
  @formatted_data = FormattedData.new(parse_yaml(file_parts[1],
10
12
  md_file_name),
11
13
  site_options)
@@ -35,7 +37,7 @@ module Zine
35
37
  @dest_dir = File.join(build_dir,
36
38
  date.strftime('%Y'),
37
39
  date.strftime('%-m'))
38
- slg = Zine::Page.slug(page_data[:title]) + '.html'
40
+ slg = "#{Zine::Page.slug(page_data[:title])}.html"
39
41
  @dest_path = File.join(@dest_dir, slg)
40
42
  end
41
43
 
@@ -43,7 +45,7 @@ module Zine
43
45
  page_data = @formatted_data.page
44
46
  file_path = rel_path_from_build_dir(@dest_path).to_s
45
47
  # URI.join will expect a root directory to start...
46
- @formatted_data.uri = page_data[:site_URL] + '/' + file_path
48
+ @formatted_data.uri = "#{page_data[:site_URL]}/#{file_path}"
47
49
  TagData.new(page_data[:tags],
48
50
  file_path,
49
51
  page_data[:title],
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zine/data_page'
2
4
  require 'zine/post'
3
5
  require 'zine/tag'
@@ -32,7 +34,7 @@ module Zine
32
34
  dir = @options['directories']['build']
33
35
  options = @options['options']
34
36
  templates = @options['templates']
35
-
37
+
36
38
  headlines = []
37
39
  if templates['home']
38
40
  headlines <<
@@ -112,7 +114,7 @@ module Zine
112
114
  Pathname(File.absolute_path(directories['source']))
113
115
  )
114
116
  relative_path = File.dirname(relative)
115
- file = File.basename(relative, '.md') + '.html'
117
+ file = "#{File.basename(relative, '.md')}.html"
116
118
  File.delete(File.join(directories['build'], relative_path, file))
117
119
  else
118
120
  File.delete(page[:post].dest_path)
@@ -153,7 +155,7 @@ module Zine
153
155
  def preview_straight_delete(file)
154
156
  FileUtils.rm(File.join(
155
157
  preview_relative_equivalent(file), File.basename(file)
156
- ))
158
+ ))
157
159
  end
158
160
 
159
161
  # rebuild a page that's not a post - doesn't create the file structure for a
data/lib/zine/query.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zine
2
4
  # Returns an answer from the CLI
3
5
  class Query
data/lib/zine/server.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zine/query'
2
4
  require 'rainbow'
3
5
  require 'rack'
@@ -23,7 +25,6 @@ module Zine
23
25
  motd unless upload_options['test']
24
26
  @thin.start
25
27
  possible_upload rel_path_build, upload_options
26
- @thin
27
28
  end
28
29
 
29
30
  # Stop the server - only used in test
@@ -48,23 +49,23 @@ module Zine
48
49
 
49
50
  def header_rules
50
51
  [[:all,
51
- { 'ETag' => nil,
52
- 'Last-Modified' => (Time.now + 100**4).to_s,
52
+ { 'ETag' => nil,
53
+ 'Last-Modified' => (Time.now + (100**4)).to_s,
53
54
  'Cache-Control' =>
54
55
  'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
55
- 'Pragma' => 'no-cache',
56
- 'Expires' => (Time.now - 100**4).to_s }]]
56
+ 'Pragma' => 'no-cache',
57
+ 'Expires' => (Time.now - (100**4)).to_s }]]
57
58
  end
58
59
 
59
60
  def motd
60
- puts "\nPreview running on " +
61
- Rainbow('http://127.0.0.1:8080/').blue.underline +
62
- "\nCommand double click the URL to open, Control C to quit\n"
61
+ puts "Preview running at #{Rainbow('http://127.0.0.1:8080/').blue.underline}
62
+ Control C to quit\n"
63
63
  end
64
64
 
65
65
  def possible_upload(rel_path_build, upload_options)
66
66
  return if upload_options['method'] == 'none' ||
67
67
  (@delete_array.empty? && @upload_array.empty?)
68
+
68
69
  uploader = Zine::Upload.new rel_path_build, upload_options,
69
70
  @delete_array, @upload_array
70
71
  uploader.upload_decision Query
@@ -18,7 +18,7 @@
18
18
  <h3>The fine print</h3>
19
19
  <ul>
20
20
  <li>Built with <a href="https://mikekreuzer.com/projects/zine/">Zine</a></li>
21
- <li>&copy;2017-2022<span> <%= page[:site_author] %></span></li>
21
+ <li>&copy; 2023<span> <%= page[:site_author] %></span></li>
22
22
  </ul>
23
23
  </div>
24
24
  </footer>
@@ -1,3 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8" standalone="yes"?>
1
2
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
2
3
  <channel>
3
4
  <title><%= page[:site_name] %></title>
data/lib/zine/style.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sassc'
2
4
 
3
5
  module Zine
@@ -11,7 +13,7 @@ module Zine
11
13
 
12
14
  # Write the CSS file
13
15
  def process(string_or_file_writer)
14
- sass = File.open(@style_file, 'r').read
16
+ sass = File.read(@style_file)
15
17
  css = SassC::Engine.new(sass, style: :compressed).render
16
18
  string_or_file_writer.write @css_file, css
17
19
  end
data/lib/zine/tag.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zine/data_page'
2
4
 
3
5
  module Zine
@@ -15,7 +17,7 @@ module Zine
15
17
  def write_tags
16
18
  @posts_by_tag.each do |tag_name, struct_array|
17
19
  sorted_array = sort_tags_by_date struct_array
18
- data = { name: tag_name, title: 'Tags: ' + tag_name,
20
+ data = { name: tag_name, title: "Tags: #{tag_name}",
19
21
  post_array: sorted_array, build_dir: @tag_dir }
20
22
  tag_page = Zine::DataPage.new(data, @templates[:tag], @options)
21
23
  tag_page.write
@@ -25,21 +27,17 @@ module Zine
25
27
 
26
28
  private
27
29
 
28
- # Take an array of posts each with the tags it has, & make an array of tags,
29
- # each with the posts it's in
30
- def sort_tags(tags_by_post)
31
- posts_by_tag = {}
32
- tags_by_post.each do |post|
30
+ # Take an array of posts, each with an array of tags it has, &
31
+ # make a hash of posts each with an array of posts the tag's in
32
+ def sort_tags(posts)
33
+ tags = {}
34
+ posts.each do |post|
33
35
  post['tagsArray'].each do |tag|
34
36
  name = tag[:name]
35
- if posts_by_tag.key?(name)
36
- posts_by_tag[name] << post
37
- else
38
- posts_by_tag[name] = [post]
39
- end
37
+ tags.key?(name) ? tags[name] << post : tags[name] = [post]
40
38
  end
41
39
  end
42
- posts_by_tag
40
+ tags
43
41
  end
44
42
 
45
43
  def sort_tags_by_date(tag_array)
@@ -1,9 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zine
2
4
  # Trio of templates used to create a page
3
5
  class TemplateFiles
4
- attr_reader :body
5
- attr_reader :footer
6
- attr_reader :header
6
+ attr_reader :body, :footer, :header
7
7
 
8
8
  def initialize(body, header, footer)
9
9
  @body = body
data/lib/zine/upload.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rainbow'
2
4
  require 'set'
3
5
  require 'zine'
@@ -23,9 +25,11 @@ module Zine
23
25
 
24
26
  def upload_decision(query_class)
25
27
  return if @no_upload
28
+
26
29
  cli = query_class.new
27
30
  answer = cli.call 'Upload files? (Y/n)'
28
31
  return if answer != 'Y'
32
+
29
33
  puts Rainbow('Connecting...').green
30
34
  upload
31
35
  end
@@ -74,11 +78,12 @@ module Zine
74
78
  end
75
79
 
76
80
  def upload
77
- if @options['method'] == 'aws'
81
+ case @options['method']
82
+ when 'aws'
78
83
  aws_upload
79
- elsif @options['method'] == 'sftp'
84
+ when 'sftp'
80
85
  sftp_upload
81
- elsif @options['method'] == 'github'
86
+ when 'github'
82
87
  github_upload
83
88
  else
84
89
  puts Rainbow('Unknown upload option in zine.yaml').red
@@ -31,8 +31,8 @@ module Zine
31
31
  delete
32
32
  deploy
33
33
  invalidate
34
- rescue Aws::S3::Errors::ServiceError => err
35
- puts Rainbow("S3 error: #{err}").red
34
+ rescue Aws::S3::Errors::ServiceError => e
35
+ puts Rainbow("S3 error: #{e}").red
36
36
  end
37
37
 
38
38
  private
@@ -61,10 +61,11 @@ module Zine
61
61
  def deploy_one_file(local_path, remote_path)
62
62
  File.open(local_path, 'rb') do |file|
63
63
  content_type = Rack::Mime.mime_type(File.extname(local_path))
64
- @s3.put_object(bucket: @bucket_name,
65
- key: remote_path,
64
+ @s3.put_object(body: file,
65
+ cache_control: 'max-age=86400',
66
66
  content_type: content_type,
67
- body: file)
67
+ bucket: @bucket_name,
68
+ key: remote_path)
68
69
  puts "Add: #{remote_path}" if @verbose
69
70
  end
70
71
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'octokit'
2
4
  require 'rainbow'
3
5
  require 'yaml'
@@ -29,6 +31,7 @@ module Zine
29
31
  # then .each... upload & delete - uses @build_dir to create relative paths
30
32
  def upload
31
33
  return if @no_upload
34
+
32
35
  @delete_file_array.each do |file_pathname|
33
36
  delete_file file_pathname
34
37
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'net/ssh'
2
4
  require 'net/sftp'
3
5
  require 'rainbow'
@@ -12,6 +14,7 @@ module Zine
12
14
  def initialize(build_dir, options, credentials, delete_file_array,
13
15
  upload_file_array)
14
16
  return unless options['method'] == 'sftp'
17
+
15
18
  @build_dir = build_dir
16
19
  @host = options['host']
17
20
  @path = options['path_or_repo']
@@ -67,6 +70,7 @@ module Zine
67
70
  node_array.each do |level|
68
71
  level.each do |node|
69
72
  next if node.nil?
73
+
70
74
  path_string = node.path_string
71
75
  mkdir_p(sftp, path_string)
72
76
  puts "mkdir_p #{path_string}" if @verbose
@@ -96,8 +100,8 @@ module Zine
96
100
 
97
101
  def mkdir_p(sftp, path)
98
102
  sftp.mkdir!(File.join(@path, path), permissions: 0o755) # drwxr-xr-x
99
- rescue Net::SFTP::StatusException => error
100
- raise if error.code != 4 && error.code != 11 # folder already exists
103
+ rescue Net::SFTP::StatusException => e
104
+ raise if e.code != 4 && e.code != 11 # folder already exists
101
105
  end
102
106
 
103
107
  # for each level, if a node has the same name & same path it's a duplicate
data/lib/zine/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Zine
4
4
  # The version
5
- VERSION = '0.16.0'
5
+ VERSION = '0.17.0'
6
6
  end
data/lib/zine/watcher.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'listen'
2
4
  require 'pathname'
3
5
 
@@ -74,7 +76,7 @@ module Zine
74
76
  end
75
77
 
76
78
  def watch_build_dir
77
- listener = Listen.to(@build_directory) do |modified, added, removed|
79
+ listener = Listen.to(@build_directory, force_polling: true) do |modified, added, removed|
78
80
  on_build_change modified unless modified.empty?
79
81
  on_build_change added unless added.empty?
80
82
  on_build_delete removed unless removed.empty?
@@ -84,7 +86,7 @@ module Zine
84
86
  end
85
87
 
86
88
  def watch_source_dir
87
- listener = Listen.to(@source_directory) do |modified, added, removed|
89
+ listener = Listen.to(@source_directory, force_polling: true) do |modified, added, removed|
88
90
  on_source_change modified unless modified.empty?
89
91
  on_source_change added unless added.empty?
90
92
  on_source_delete removed unless removed.empty?
data/lib/zine.rb CHANGED
@@ -73,7 +73,7 @@ module Zine
73
73
 
74
74
  # currently used to say yes on a script's behalf - in #notice
75
75
  class MockYes
76
- def ask(_question)
76
+ def call(_question)
77
77
  'Y'
78
78
  end
79
79
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Kreuzer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-18 00:00:00.000000000 Z
11
+ date: 2023-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,34 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.1'
19
+ version: '2.3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.1.4
22
+ version: 2.3.16
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '2.1'
29
+ version: '2.3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.1.4
32
+ version: 2.3.16
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: curb
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.9.10
39
+ version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.5
40
43
  type: :development
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
- version: 0.9.10
49
+ version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.5
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: rake
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +59,7 @@ dependencies:
53
59
  version: '13.0'
54
60
  - - ">="
55
61
  - !ruby/object:Gem::Version
56
- version: 13.0.1
62
+ version: 13.0.6
57
63
  type: :development
58
64
  prerelease: false
59
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,69 +69,63 @@ dependencies:
63
69
  version: '13.0'
64
70
  - - ">="
65
71
  - !ruby/object:Gem::Version
66
- version: 13.0.1
72
+ version: 13.0.6
67
73
  - !ruby/object:Gem::Dependency
68
74
  name: rspec
69
75
  requirement: !ruby/object:Gem::Requirement
70
76
  requirements:
71
77
  - - "~>"
72
78
  - !ruby/object:Gem::Version
73
- version: '3.9'
79
+ version: '3.11'
74
80
  type: :development
75
81
  prerelease: false
76
82
  version_requirements: !ruby/object:Gem::Requirement
77
83
  requirements:
78
84
  - - "~>"
79
85
  - !ruby/object:Gem::Version
80
- version: '3.9'
86
+ version: '3.11'
81
87
  - !ruby/object:Gem::Dependency
82
88
  name: simplecov
83
89
  requirement: !ruby/object:Gem::Requirement
84
90
  requirements:
85
91
  - - "~>"
86
92
  - !ruby/object:Gem::Version
87
- version: 0.18.5
93
+ version: '0.22'
88
94
  type: :development
89
95
  prerelease: false
90
96
  version_requirements: !ruby/object:Gem::Requirement
91
97
  requirements:
92
98
  - - "~>"
93
99
  - !ruby/object:Gem::Version
94
- version: 0.18.5
100
+ version: '0.22'
95
101
  - !ruby/object:Gem::Dependency
96
102
  name: aws-sdk-cloudfront
97
103
  requirement: !ruby/object:Gem::Requirement
98
104
  requirements:
99
105
  - - "~>"
100
106
  - !ruby/object:Gem::Version
101
- version: '1.27'
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: 1.27.1
107
+ version: '1.65'
105
108
  type: :runtime
106
109
  prerelease: false
107
110
  version_requirements: !ruby/object:Gem::Requirement
108
111
  requirements:
109
112
  - - "~>"
110
113
  - !ruby/object:Gem::Version
111
- version: '1.27'
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: 1.27.1
114
+ version: '1.65'
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: aws-sdk-s3
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '1.66'
121
+ version: '1.114'
122
122
  type: :runtime
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: '1.66'
128
+ version: '1.114'
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: htmlcompressor
131
131
  requirement: !ruby/object:Gem::Requirement
@@ -146,20 +146,14 @@ dependencies:
146
146
  requirements:
147
147
  - - "~>"
148
148
  - !ruby/object:Gem::Version
149
- version: '2.2'
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 2.2.1
149
+ version: '2.4'
153
150
  type: :runtime
154
151
  prerelease: false
155
152
  version_requirements: !ruby/object:Gem::Requirement
156
153
  requirements:
157
154
  - - "~>"
158
155
  - !ruby/object:Gem::Version
159
- version: '2.2'
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: 2.2.1
156
+ version: '2.4'
163
157
  - !ruby/object:Gem::Dependency
164
158
  name: kramdown-parser-gfm
165
159
  requirement: !ruby/object:Gem::Requirement
@@ -180,116 +174,122 @@ dependencies:
180
174
  requirements:
181
175
  - - "~>"
182
176
  - !ruby/object:Gem::Version
183
- version: '3.2'
177
+ version: '3.7'
184
178
  - - ">="
185
179
  - !ruby/object:Gem::Version
186
- version: 3.2.1
180
+ version: 3.7.1
187
181
  type: :runtime
188
182
  prerelease: false
189
183
  version_requirements: !ruby/object:Gem::Requirement
190
184
  requirements:
191
185
  - - "~>"
192
186
  - !ruby/object:Gem::Version
193
- version: '3.2'
187
+ version: '3.7'
194
188
  - - ">="
195
189
  - !ruby/object:Gem::Version
196
- version: 3.2.1
190
+ version: 3.7.1
197
191
  - !ruby/object:Gem::Dependency
198
192
  name: net-sftp
199
193
  requirement: !ruby/object:Gem::Requirement
200
194
  requirements:
201
195
  - - "~>"
202
196
  - !ruby/object:Gem::Version
203
- version: '2.1'
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: 2.1.2
197
+ version: '4.0'
207
198
  type: :runtime
208
199
  prerelease: false
209
200
  version_requirements: !ruby/object:Gem::Requirement
210
201
  requirements:
211
202
  - - "~>"
212
203
  - !ruby/object:Gem::Version
213
- version: '2.1'
214
- - - ">="
215
- - !ruby/object:Gem::Version
216
- version: 2.1.2
204
+ version: '4.0'
217
205
  - !ruby/object:Gem::Dependency
218
206
  name: octokit
219
207
  requirement: !ruby/object:Gem::Requirement
220
208
  requirements:
221
209
  - - "~>"
222
210
  - !ruby/object:Gem::Version
223
- version: '4.18'
211
+ version: '6.0'
224
212
  type: :runtime
225
213
  prerelease: false
226
214
  version_requirements: !ruby/object:Gem::Requirement
227
215
  requirements:
228
216
  - - "~>"
229
217
  - !ruby/object:Gem::Version
230
- version: '4.18'
218
+ version: '6.0'
231
219
  - !ruby/object:Gem::Dependency
232
220
  name: rainbow
233
221
  requirement: !ruby/object:Gem::Requirement
234
222
  requirements:
235
223
  - - "~>"
236
224
  - !ruby/object:Gem::Version
237
- version: '3.0'
225
+ version: '3.1'
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: 3.1.1
238
229
  type: :runtime
239
230
  prerelease: false
240
231
  version_requirements: !ruby/object:Gem::Requirement
241
232
  requirements:
242
233
  - - "~>"
243
234
  - !ruby/object:Gem::Version
244
- version: '3.0'
235
+ version: '3.1'
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: 3.1.1
245
239
  - !ruby/object:Gem::Dependency
246
240
  name: sassc
247
241
  requirement: !ruby/object:Gem::Requirement
248
242
  requirements:
249
243
  - - "~>"
250
244
  - !ruby/object:Gem::Version
251
- version: '2.3'
245
+ version: '2.4'
252
246
  type: :runtime
253
247
  prerelease: false
254
248
  version_requirements: !ruby/object:Gem::Requirement
255
249
  requirements:
256
250
  - - "~>"
257
251
  - !ruby/object:Gem::Version
258
- version: '2.3'
252
+ version: '2.4'
259
253
  - !ruby/object:Gem::Dependency
260
254
  name: thin
261
255
  requirement: !ruby/object:Gem::Requirement
262
256
  requirements:
263
257
  - - "~>"
264
258
  - !ruby/object:Gem::Version
265
- version: '1.7'
259
+ version: '1.8'
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: 1.8.1
266
263
  type: :runtime
267
264
  prerelease: false
268
265
  version_requirements: !ruby/object:Gem::Requirement
269
266
  requirements:
270
267
  - - "~>"
271
268
  - !ruby/object:Gem::Version
272
- version: '1.7'
269
+ version: '1.8'
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: 1.8.1
273
273
  - !ruby/object:Gem::Dependency
274
274
  name: thor
275
275
  requirement: !ruby/object:Gem::Requirement
276
276
  requirements:
277
277
  - - "~>"
278
278
  - !ruby/object:Gem::Version
279
- version: '1.0'
279
+ version: '1.2'
280
280
  - - ">="
281
281
  - !ruby/object:Gem::Version
282
- version: 1.0.1
282
+ version: 1.2.1
283
283
  type: :runtime
284
284
  prerelease: false
285
285
  version_requirements: !ruby/object:Gem::Requirement
286
286
  requirements:
287
287
  - - "~>"
288
288
  - !ruby/object:Gem::Version
289
- version: '1.0'
289
+ version: '1.2'
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
- version: 1.0.1
292
+ version: 1.2.1
293
293
  description: |-
294
294
  Yet another blog aware static site generator.
295
295
  There are many like it, but this one is mine.
@@ -347,8 +347,9 @@ files:
347
347
  homepage: https://mikekreuzer.com/projects/zine/
348
348
  licenses:
349
349
  - AGPL-3.0-or-later
350
- metadata: {}
351
- post_install_message:
350
+ metadata:
351
+ rubygems_mfa_required: 'true'
352
+ post_install_message:
352
353
  rdoc_options: []
353
354
  require_paths:
354
355
  - lib
@@ -356,15 +357,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
356
357
  requirements:
357
358
  - - ">="
358
359
  - !ruby/object:Gem::Version
359
- version: '2.6'
360
+ version: '2.7'
360
361
  required_rubygems_version: !ruby/object:Gem::Requirement
361
362
  requirements:
362
363
  - - ">="
363
364
  - !ruby/object:Gem::Version
364
365
  version: '0'
365
366
  requirements: []
366
- rubygems_version: 3.1.4
367
- signing_key:
367
+ rubygems_version: 3.3.7
368
+ signing_key:
368
369
  specification_version: 4
369
370
  summary: Yet another blog aware static site generator.
370
371
  test_files: []