zine 0.16.0 → 0.17.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: 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: []