Skip to content

Commit e848621

Browse files
authored
Merge pull request #383 from gjtorikian/ignore-dirs-for-zeitwerk
Have Zeitwerk not automatically load filters
2 parents a2e02ac + 716e537 commit e848621

17 files changed

+46
-11
lines changed

.github/dependabot.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,25 @@ updates:
33
- package-ecosystem: "github-actions"
44
directory: "/"
55
schedule:
6-
interval: daily
6+
interval: weekly
7+
day: monday
78
time: "09:00"
89
timezone: "Etc/UTC"
10+
groups:
11+
github-actions:
12+
patterns:
13+
- "*"
914
open-pull-requests-limit: 10
1015

11-
- package-ecosystem: "bundler"
16+
- package-ecosystem: bundler
1217
directory: "/"
1318
schedule:
14-
interval: daily
19+
interval: weekly
20+
day: monday
1521
time: "09:00"
1622
timezone: "Etc/UTC"
1723
open-pull-requests-limit: 10
24+
groups:
25+
bundler-dependencies:
26+
patterns:
27+
- "*"

README.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ end
7979

8080
pipeline = HTMLPipeline.new(
8181
text_filters: [HelloJohnnyFilter.new]
82-
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new),
82+
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
8383
# note: next line is not needed as sanitization occurs by default;
8484
# see below for more info
8585
sanitization_config: HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG,
@@ -126,8 +126,8 @@ context = {
126126

127127
# Pipeline used for user provided content on the web
128128
MarkdownPipeline = HTMLPipeline.new (
129-
text_filters: [HTMLPipeline::TextFilter::ImageMaxWidthFilter.new],
130-
convert_filter: [HTMLPipeline::ConvertFilter::MarkdownFilter.new],
129+
text_filters: [HTMLPipeline::TextFilter::ImageFilter.new],
130+
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
131131
node_filters: [
132132
HTMLPipeline::NodeFilter::HttpsFilter.new,HTMLPipeline::NodeFilter::MentionFilter.new,
133133
], context: context)
@@ -137,7 +137,7 @@ MarkdownPipeline = HTMLPipeline.new (
137137
HtmlEmailPipeline = HTMLPipeline.new(
138138
text_filters: [
139139
PlainTextInputFilter.new,
140-
ImageMaxWidthFilter.new
140+
ImageFilter.new
141141
], {})
142142
```
143143

@@ -173,7 +173,7 @@ pipeline = HTMLPipeline.new \
173173
text_filters: [
174174
HTMLPipeline::MarkdownFilter,
175175
],
176-
convert_filter: [HTMLPipeline::ConvertFilter::MarkdownFilter.new],
176+
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
177177
sanitization_config: ALLOWLIST
178178

179179
result = pipeline.call <<-CODE
@@ -201,7 +201,7 @@ pipeline = HTMLPipeline.new \
201201
text_filters: [
202202
HTMLPipeline::MarkdownFilter,
203203
],
204-
convert_filter: [HTMLPipeline::ConvertFilter::MarkdownFilter.new],
204+
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
205205
sanitization_config: nil
206206
```
207207

@@ -267,6 +267,14 @@ gem "rouge"
267267
268268
When developing a custom filter, call `HTMLPipeline.require_dependency` at the start to ensure that the local machine has the necessary dependency. You can also use `HTMLPipeline.require_dependencies` to provide a list of dependencies to check.
269269

270+
On a similar note, you must manually require whichever filters you desire:
271+
272+
```ruby
273+
require "html_pipeline" # must be included
274+
require "html_pipeline/convert_filter/markdown_filter" # included because you want to use this filter
275+
require "html_pipeline/node_filter/mention_filter" # included because you want to use this filter
276+
```
277+
270278
## Documentation
271279

272280
Full reference documentation can be [found here](http://rubydoc.info/gems/html-pipeline/frames).

lib/html_pipeline.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
require "zeitwerk"
44
lib_dir = File.join(File.dirname(__dir__), "lib")
5+
lib_html_pipeline_dir = File.join(File.dirname(__dir__), "lib", "html_pipeline")
56
gem_loader = Zeitwerk::Loader.for_gem
67
gem_loader.inflector.inflect(
78
"html_pipeline" => "HTMLPipeline",
89
)
10+
11+
gem_loader.ignore(File.join(lib_html_pipeline_dir, "convert_filter"))
12+
gem_loader.ignore(File.join(lib_html_pipeline_dir, "node_filter"))
13+
gem_loader.ignore(File.join(lib_html_pipeline_dir, "text_filter"))
914
gem_loader.ignore(File.join(lib_dir, "html-pipeline.rb"))
1015
gem_loader.setup
1116

lib/html_pipeline/node_filter/emoji_filter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class EmojiFilter < NodeFilter
1717

1818
# Build a regexp that matches all valid :emoji: names.
1919
def after_initialize
20-
@emoji_pattern ||= /:(#{emoji_names.map { |name| Regexp.escape(name) }.join('|')}):/
20+
@emoji_pattern ||= /:(#{emoji_names.map { |name| Regexp.escape(name) }.join("|")}):/
2121
end
2222

2323
def selector

lib/html_pipeline/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
class HTMLPipeline
4-
VERSION = "3.0.0.pre5"
4+
VERSION = "3.0.0.pre6"
55
end

test/html_pipeline/convert_filter/markdown_filter_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "html_pipeline/convert_filter/markdown_filter"
45

56
MarkdownFilter = HTMLPipeline::ConvertFilter::MarkdownFilter
67

test/html_pipeline/node_filter/absolute_source_filter_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "html_pipeline/node_filter/absolute_source_filter"
45

56
AbsoluteSourceFilter = HTMLPipeline::NodeFilter::AbsoluteSourceFilter
67
class HTMLPipeline

test/html_pipeline/node_filter/asset_proxy_filter_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "html_pipeline/node_filter/asset_proxy_filter"
45

56
class HTMLPipeline
67
class AssetProxyFilterTest < Minitest::Spec

test/html_pipeline/node_filter/emoji_filter_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "html_pipeline/node_filter/emoji_filter"
45

56
EmojiFilterFilter = HTMLPipeline::NodeFilter::EmojiFilter
67
class HTMLPipeline

test/html_pipeline/node_filter/https_filter_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "html_pipeline/node_filter/https_filter"
45

56
HttpsFilter = HTMLPipeline::NodeFilter::HttpsFilter
67

0 commit comments

Comments
 (0)