jekyll_plugin_support 0.7.1 → 0.7.2

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: e4093bb78659c8a6b9e75df1ed8e288e7ba8a0216b7d870f04856933c992e631
4
- data.tar.gz: 69c2191230866feb2552a9a170140008b5d16290703f525d1a6487b28df78706
3
+ metadata.gz: 89499adafe6c65e0579f3a9bb6a1e724001dda3465777f189ba67407ae105f73
4
+ data.tar.gz: 284b6a91b644e2989e4f28decb8a29c597b0b1baaf30549b611ea21939d00990
5
5
  SHA512:
6
- metadata.gz: e63ab6ea4dc5a241d4fdafd00fd088943dee27591a36297a2a5a4984e0096775365c902bd43ece243cea45ac26e64e5a374c1afcc72f51653825e680e33f40ae
7
- data.tar.gz: 25db74e77f3f24dd4d40fb2aba3b3717ff630c6afb6e3e9743ac91dc1331a29139fe79c9c7e596e8e9a7c7149c83c2cedd6503401ff9f83cf1b3eb7ada94197c
6
+ metadata.gz: 1bb5b49b8bcf8d7ac2f6a8b0650c4ddf2e405db76295190cf5257154495db1f4f2491c676842a01c1c8607f4abd666655336fd4675828df716eff85bf0f66483
7
+ data.tar.gz: 54bc0d824c5e635be5143b70088a0229cd79b6a80992284e53119c2578b3e7a6fb3e57a31ec0b23f2dec5a8ed6afffd800213d0b5e1617d1d2d087241651d3b9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.7.2 / 2023-08-14
4
+
5
+ * Hopefully takes care of issue [#4](../../issues/4).
6
+
7
+
3
8
  ## 0.7.1 / 2023-08-11
4
9
 
5
10
  * Suppressed stack trace from issue [#4](../../issues/4).
@@ -1,3 +1,3 @@
1
1
  module JekyllPluginSupportVersion
2
- VERSION = '0.7.1'.freeze
2
+ VERSION = '0.7.2'.freeze
3
3
  end
@@ -16,7 +16,7 @@ module JekyllSupport
16
16
  DISPLAYED_CALLS = 8
17
17
 
18
18
  def self.error_short_trace(logger, error)
19
- remaining = e.backtrace.length - DISPLAYED_CALLS
19
+ remaining = error.backtrace.length - DISPLAYED_CALLS
20
20
  logger.error do
21
21
  error.message + "\n" + # rubocop:disable Style/StringConcatenation
22
22
  error.backtrace.take(DISPLAYED_CALLS).join("\n") +
@@ -25,7 +25,7 @@ module JekyllSupport
25
25
  end
26
26
 
27
27
  def self.warn_short_trace(logger, error)
28
- remaining = e.backtrace.length - DISPLAYED_CALLS
28
+ remaining = error.backtrace.length - DISPLAYED_CALLS
29
29
  logger.warn do
30
30
  error.message + "\n" + # rubocop:disable Style/StringConcatenation
31
31
  error.backtrace.take(DISPLAYED_CALLS).join("\n") +
@@ -76,14 +76,12 @@ module JekyllSupport
76
76
  @paginator = @envs[:paginator]
77
77
  @theme = @envs[:theme]
78
78
 
79
- @mode = @config['env']['JEKYLL_ENV'] || 'development'
79
+ @mode = @config['env']&.key?('JEKYLL_ENV') ? @config['env']['JEKYLL_ENV'] : 'development'
80
80
 
81
81
  render_impl text
82
82
  rescue StandardError => e
83
83
  @logger.error { "#{self.class} died with a #{e.full_message}" }
84
- # raise SystemExit, 3, []
85
- e.set_backtrace []
86
- raise e
84
+ JekyllSupport.error_short_trace(@logger, e)
87
85
  end
88
86
 
89
87
  # Jekyll plugins should override this method, not render,
@@ -110,7 +108,7 @@ module JekyllSupport
110
108
  @logger.debug { "#{self.class}: respond_to?(:o_arg_parsing) #{respond_to?(:no_arg_parsing) ? 'yes' : 'no'}." }
111
109
  rescue StandardError => e
112
110
  @logger.error { "#{self.class} died with a #{e.full_message}" }
113
- exit 2
111
+ JekyllSupport.error_short_trace(@logger, e)
114
112
  end
115
113
 
116
114
  def warn_short_trace(error)
@@ -140,12 +138,26 @@ module JekyllSupport
140
138
  @helper = JekyllPluginHelper.new(tag_name, argument_string, @logger, respond_to?(:no_arg_parsing))
141
139
  end
142
140
 
143
- def exit_without_stack_trace(error)
141
+ # If a Jekyll plugin needs to crash exit, and stop Jekyll, call this method.
142
+ # It does not generate a stack trace.
143
+ # This method does not return because the process is abruptly terminated.
144
+ #
145
+ # @param error StandardError or a subclass of StandardError is required
146
+ #
147
+ # Do not raise the error before calling this method, just create it via 'new', like this:
148
+ # exit_without_stack_trace StandardError.new('This is my error message')
149
+ #
150
+ # If you want to call this method from a handler method, the default index for the backtrace array must be specified.
151
+ # The default backtrace index is 1, which means the calling method.
152
+ # To specify the calling method's caller, pass in 2, like this:
153
+ # exit_without_stack_trace StandardError.new('This is my error message'), 2
154
+ def exit_without_stack_trace(error, caller_index = 1)
144
155
  raise error
145
156
  rescue StandardError => e
146
- file, line_number, caller = e.backtrace[1].split(':')
157
+ file, line_number, caller = e.backtrace[caller_index].split(':')
147
158
  caller = caller.tr('`', "'")
148
159
  warn "#{self.class} died with a '#{error.message}' #{caller} on line #{line_number} of #{file}".red
160
+ # Process.kill('HUP', Process.pid) # generates huge stack trace
149
161
  exec "echo ''"
150
162
  end
151
163
 
@@ -170,11 +182,11 @@ module JekyllSupport
170
182
  @site = liquid_context.registers[:site]
171
183
 
172
184
  @config = @site.config
173
- @mode = @config['env'].key?('JEKYLL_ENV') ? @config['env']['JEKYLL_ENV'] : 'development'
185
+ @mode = @config['env']&.key?('JEKYLL_ENV') ? @config['env']['JEKYLL_ENV'] : 'development'
174
186
 
175
187
  render_impl
176
188
  rescue StandardError => e
177
- exit_without_stack_trace(e)
189
+ JekyllSupport.error_short_trace(@logger, e)
178
190
  end
179
191
 
180
192
  # Jekyll plugins must override this method, not render, so their plugin can be tested more easily
@@ -1,6 +0,0 @@
1
- example_id | status | run_time |
2
- ------------------------------------------------ | ------ | --------------- |
3
- ./spec/jekyll_plugin_helper_options_spec.rb[1:1] | passed | 0.00559 seconds |
4
- ./spec/jekyll_plugin_helper_options_spec.rb[1:2] | passed | 0.00583 seconds |
5
- ./spec/jekyll_plugin_helper_options_spec.rb[1:3] | passed | 0.00543 seconds |
6
- ./spec/jekyll_plugin_helper_options_spec.rb[1:4] | passed | 0.00157 seconds |
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.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-11 00:00:00.000000000 Z
11
+ date: 2023-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facets