jekyll_plugin_support 0.8.5 → 0.8.6

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: 20c575e857da7ffa50f37a587494b25232e1eb1309040946dd13d8f896250f07
4
- data.tar.gz: 4aa5e163875f4e99adca9a6bc4ca97927c95c4cc4d017f52ca0b108d9ea24670
3
+ metadata.gz: 6bf93dd0ea77ecf7c70380afdddc398824f3e1e27226ed3b8e996e8170a15443
4
+ data.tar.gz: 32e434ab647fcfc81e674a54fb676b1b17450ceef5c38f0f51c1a5f59588f666
5
5
  SHA512:
6
- metadata.gz: f2a2123c073c9e344e097e3eecd364606037bdd0213045d7060a09d48acaac1810eb609e201126e3f4fc8e5edc0e4e6e81db43800aa4eea954490d4e21e91cdc
7
- data.tar.gz: 2d4e8daa6ea71e412065356a7029f3ff0b432fb7a06cdc98f403ba02709106f75c62e8236bae12668e6b181f4c52ccba328811fdb9619cd075597fea622052e7
6
+ metadata.gz: 2c254100e325c89dfd874e7403d83c5e3b10a808de8d987748fca7ef955d92dba2a90157868d7dd525953661968eb142a208bafc0015dbf99f357b1bf255dcf0
7
+ data.tar.gz: ae9cf29baf54d74c957bea4ff126edfe49ddcebb3ba327b2ae7729ef2e783fbe6f1df73a0a635f865a8f8fcbd00b33ebbc3e94ba949c892480a33543a31d21d4
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log
2
2
 
3
3
 
4
+ ## 0.8.6 / 2024-06-11
5
+
6
+ * Fixup version, containing what was supposed to be in v0.8.5
7
+
8
+
4
9
  ## 0.8.5 / 2024-03-25
5
10
 
6
11
  * Empty block tags now return a value. See https://talk.jekyllrb.com/t/empty-liquid-block-not-rendering
@@ -1,4 +1,4 @@
1
- require_relative 'jekyll_plugin_error_handling'
1
+ require_relative '../error/jekyll_plugin_error_handling'
2
2
 
3
3
  module JekyllSupport
4
4
  # Base class for Jekyll block tags
@@ -56,7 +56,8 @@ module JekyllSupport
56
56
  @paginator = @envs[:paginator]
57
57
  @theme = @envs[:theme]
58
58
 
59
- @mode = @config['env']&.key?('JEKYLL_ENV') ? @config['env']['JEKYLL_ENV'] : 'development'
59
+ env = @config['env']
60
+ @mode = env&.key?('JEKYLL_ENV') ? env['JEKYLL_ENV'] : 'development'
60
61
 
61
62
  @helper.reinitialize @markup.strip
62
63
 
@@ -69,13 +70,13 @@ module JekyllSupport
69
70
  render_impl(text)
70
71
  rescue StandardError => e
71
72
  e.shorten_backtrace
72
- @logger.error { "#{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{tag_name} - #{e.message}" }
73
+ @logger.error { "#{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{@tag_name} - #{e.message}" }
73
74
  binding.pry if @pry_on_standard_error # rubocop:disable Lint/Debugger
74
75
  raise e if @die_on_standard_error
75
76
 
76
77
  <<~END_MSG
77
78
  <div class='standard_error'>
78
- #{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{tag_name}: #{e.message}
79
+ #{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{@tag_name}: #{e.message}
79
80
  </div>
80
81
  END_MSG
81
82
  end
@@ -1,4 +1,4 @@
1
- require_relative 'jekyll_plugin_error_handling'
1
+ require_relative '../error/jekyll_plugin_error_handling'
2
2
 
3
3
  module JekyllSupport
4
4
  class JekyllBlockNoArgParsing < JekyllBlock
@@ -20,6 +20,12 @@ module JekyllSupport
20
20
  JekyllSupport.error_short_trace(@logger, e)
21
21
  end
22
22
 
23
+ # Liquid::Block subclasses do not render if there is no content within the tag
24
+ # This override fixes that
25
+ def blank?
26
+ false
27
+ end
28
+
23
29
  # Jekyll plugins must override this method, not render, so their plugin can be tested more easily
24
30
  # The following variables are predefined:
25
31
  # @argument_string, @config, @envs, @helper, @layout, @logger, @mode, @page, @paginator, @site, @tag_name and @theme
@@ -0,0 +1,78 @@
1
+ require 'jekyll'
2
+ require_relative '../error/jekyll_plugin_error_handling'
3
+
4
+ module JekyllSupport
5
+ # Base class for Jekyll generators.
6
+ # PluginMetaLogger.instance.config is populated with the contents of `_config.yml` before Jekyll::Generator instances run.
7
+ class JekyllGenerator < Jekyll::Generator
8
+ attr_reader :helper, :line_number, :logger, :site
9
+
10
+ include JekyllSupportErrorHandling
11
+ extend JekyllSupportErrorHandling
12
+
13
+ # Method prescribed by the Jekyll plugin lifecycle.
14
+ # Defines @config, @envs, @mode and @site
15
+ # @return [void]
16
+ def generate(site)
17
+ @logger ||= PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
18
+
19
+ @error_name = "#{self.class.name}Error"
20
+ # Jekyll::CustomError.factory @error_name
21
+
22
+ @site = site
23
+ @config = @site.config
24
+ @envs = site.config['env']
25
+ @theme = @site.theme
26
+
27
+ @mode = ENV['JEKYLL_ENV'] || 'development'
28
+
29
+ # set_error_context(self.class)
30
+
31
+ generate_impl
32
+ rescue StandardError => e
33
+ e.shorten_backtrace
34
+ @logger.error { "#{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{self.class.name} - #{e.message}" }
35
+ binding.pry if @pry_on_standard_error # rubocop:disable Lint/Debugger
36
+ raise e if @die_on_standard_error
37
+
38
+ <<~END_MSG
39
+ <div class='standard_error'>
40
+ #{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} by #{self.class.name}: #{e.message}
41
+ </div>
42
+ END_MSG
43
+ end
44
+
45
+ # Jekyll plugins should override this method, not `generate`, so they can be tested more easily.
46
+ # The following variables are predefined:
47
+ # @config, @envs, @helper, @logger, @mode, @paginator, @site and @theme
48
+ # @return [void]
49
+ def generate_impl; end
50
+
51
+ def self.register(klass)
52
+ abort("Error: The #{klass.name} plugin does not define VERSION") \
53
+ unless klass.const_defined?(:VERSION)
54
+
55
+ version = klass.const_get(:VERSION)
56
+ error_name_stub = klass.name.include?('::') ? klass.name.split('::')[1] : klass.name
57
+ error_ruby_class_name = "#{error_name_stub.camelcase(:upper)}Error"
58
+ error_css_class_name = error_ruby_class_name.split('::').last.snakecase
59
+ msg = <<~END_MSG
60
+ Loaded generator plugin #{klass.name} v#{version}. It has:
61
+ Error class: #{@error_name}
62
+ CSS class for error messages: #{error_css_class_name}
63
+ END_MSG
64
+
65
+ PluginMetaLogger.instance.info { msg }
66
+ end
67
+
68
+ def set_error_context(klass)
69
+ return unless Object.const_defined? @error_name
70
+
71
+ error_class = Object.const_get @error_name
72
+ error_class.class_variable_set(:@@argument_string, @argument_string)
73
+ error_class.class_variable_set(:@@line_number, @line_number)
74
+ error_class.class_variable_set(:@@path, @page['path'])
75
+ error_class.class_variable_set(:@@tag_name, klass.name)
76
+ end
77
+ end
78
+ end
@@ -1,4 +1,4 @@
1
- require_relative 'jekyll_custom_error'
1
+ require_relative '../error/jekyll_custom_error'
2
2
 
3
3
  # Monkey patch StandardError so a new method called shorten_backtrace is added.
4
4
  class StandardError
@@ -1,3 +1,3 @@
1
1
  module JekyllPluginSupportVersion
2
- VERSION = '0.8.5'.freeze
2
+ VERSION = '0.8.6'.freeze
3
3
  end
@@ -1,8 +1,12 @@
1
1
  require 'colorator'
2
2
  require 'jekyll'
3
3
  require 'jekyll_plugin_logger'
4
- require_relative 'jekyll_plugin_helper'
5
- require_relative 'jekyll_plugin_support/version'
4
+
5
+ def require_directory(dir)
6
+ Dir[File.join(dir, '*.rb')].sort.each do |file|
7
+ require file unless file == __FILE__
8
+ end
9
+ end
6
10
 
7
11
  module NoArgParsing
8
12
  attr_accessor :no_arg_parsing
@@ -10,9 +14,10 @@ module NoArgParsing
10
14
  @no_arg_parsing = true
11
15
  end
12
16
 
13
- require_relative 'jekyll_plugin_support_class'
14
- require_relative 'jekyll_plugin_support_block'
15
- require_relative 'jekyll_plugin_support_block_noarg'
16
- require_relative 'jekyll_plugin_support_tag'
17
- require_relative 'jekyll_plugin_support_tag_noarg'
18
- require_relative 'jekyll_custom_error'
17
+ require_directory __dir__
18
+ require_directory "#{__dir__}/block"
19
+ require_directory "#{__dir__}/error"
20
+ require_directory "#{__dir__}/generator"
21
+ require_directory "#{__dir__}/helper"
22
+ require_directory "#{__dir__}/jekyll_plugin_support"
23
+ require_directory "#{__dir__}/tag"
@@ -1,5 +1,5 @@
1
1
  require 'pry'
2
- require_relative 'jekyll_plugin_error_handling'
2
+ require_relative '../error/jekyll_plugin_error_handling'
3
3
 
4
4
  module JekyllSupport
5
5
  # Base class for Jekyll tags
@@ -1,4 +1,4 @@
1
- require_relative 'jekyll_plugin_error_handling'
1
+ require_relative '../error/jekyll_plugin_error_handling'
2
2
 
3
3
  module JekyllSupport
4
4
  class JekyllTagNoArgParsing < JekyllTag
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll_plugin_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-25 00:00:00.000000000 Z
11
+ date: 2024-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facets
@@ -94,19 +94,20 @@ files:
94
94
  - README.md
95
95
  - Rakefile
96
96
  - jekyll_plugin_support.gemspec
97
- - lib/jekyll_custom_error.rb
98
- - lib/jekyll_plugin_error_handling.rb
99
- - lib/jekyll_plugin_helper.rb
100
- - lib/jekyll_plugin_helper_attribution.rb
101
- - lib/jekyll_plugin_helper_class.rb
97
+ - lib/block/jekyll_plugin_support_block.rb
98
+ - lib/block/jekyll_plugin_support_block_noarg.rb
99
+ - lib/error/jekyll_custom_error.rb
100
+ - lib/error/jekyll_plugin_error_handling.rb
101
+ - lib/generator/jekyll_plugin_support_generator.rb
102
+ - lib/helper/jekyll_plugin_helper.rb
103
+ - lib/helper/jekyll_plugin_helper_attribution.rb
104
+ - lib/helper/jekyll_plugin_helper_class.rb
102
105
  - lib/jekyll_plugin_support.rb
106
+ - lib/jekyll_plugin_support/jekyll_plugin_support_class.rb
107
+ - lib/jekyll_plugin_support/jekyll_plugin_support_spec_support.rb
103
108
  - lib/jekyll_plugin_support/version.rb
104
- - lib/jekyll_plugin_support_block.rb
105
- - lib/jekyll_plugin_support_block_noarg.rb
106
- - lib/jekyll_plugin_support_class.rb
107
- - lib/jekyll_plugin_support_spec_support.rb
108
- - lib/jekyll_plugin_support_tag.rb
109
- - lib/jekyll_plugin_support_tag_noarg.rb
109
+ - lib/tag/jekyll_plugin_support_tag.rb
110
+ - lib/tag/jekyll_plugin_support_tag_noarg.rb
110
111
  - spec/custom_error_spec.rb
111
112
  - spec/jekyll_plugin_helper_options_spec.rb
112
113
  - spec/liquid_variable_parsing_spec.rb
@@ -139,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  requirements: []
142
- rubygems_version: 3.5.6
143
+ rubygems_version: 3.5.10
143
144
  signing_key:
144
145
  specification_version: 4
145
146
  summary: Provides a framework for writing and testing Jekyll plugins