serbea 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/lib/serbea/helpers.rb +14 -3
- data/lib/serbea/pipeline.rb +2 -4
- data/lib/version.rb +1 -1
- data/serbea.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbaec081de265cae08c41dbcbfe2ea7686447ff169d8756f45ea446d756a4519
|
4
|
+
data.tar.gz: 40d58553c10c8c10299064ce1ae88a030b947ac6c0b92aea8e8c9282cca7ac16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4762251bb0285d122b59ac3611cbda5afdfedb6c075f97b2746456ce6be3fffd6362a82967d9bbedbc8fa092649f9e8240de293e58826dd79e4128be15c4922
|
7
|
+
data.tar.gz: 3e224dbdf536ac4f8207a217cb216151ce5609c3be8e984971470267cce69b7c1ab85fa3f6c88f95467fcc553d7f6f790ef5ba54563647203b114d4221a8800c
|
data/.github/workflows/ci.yml
CHANGED
@@ -13,7 +13,7 @@ jobs:
|
|
13
13
|
runs-on: ubuntu-latest
|
14
14
|
strategy:
|
15
15
|
matrix:
|
16
|
-
ruby_version: [2.7.2, 3.0.0]
|
16
|
+
ruby_version: [2.7.2, 3.0.0, 3.2.0]
|
17
17
|
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
|
18
18
|
# Has to be top level to cache properly
|
19
19
|
env:
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 2.1.0
|
4
|
+
|
5
|
+
- Remove Active Support as a dependency
|
6
|
+
- This now provides rudimentary support of `html_safe` mechanics. Note that
|
7
|
+
it does NOT handle _any_ additional String methods. It simply allows cloning a string via `html_safe` to mark it safe, and `html_safe?` to query if it's safe.
|
8
|
+
- This _might_ be a breaking change, but likely not if you're using Serbea along with Rails or Bridgetown. To restore previous functionality manually, just install the `activesupport` gem and `require "active_support/core_ext/string/output_safety"` before you require the Serbea gem.
|
9
|
+
|
3
10
|
## 2.0.0
|
4
11
|
|
5
12
|
- Add plain ol' Ruby pipeline functionality
|
data/lib/serbea/helpers.rb
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
-
|
1
|
+
unless "".respond_to?(:html_safe)
|
2
|
+
# The simplest HTML safety "polyfill" around
|
3
|
+
class String
|
4
|
+
def html_safe
|
5
|
+
self.class.new(self).tap { _1.instance_variable_set(:@html_safe, true) }
|
6
|
+
end
|
7
|
+
|
8
|
+
def html_safe?
|
9
|
+
instance_variable_get(:@html_safe) == true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
2
13
|
|
3
14
|
module Serbea
|
4
15
|
module Helpers
|
@@ -10,7 +21,7 @@ module Serbea
|
|
10
21
|
previous_buffer_state = @_erbout
|
11
22
|
@_erbout = Serbea::OutputBuffer.new
|
12
23
|
result = yield(*args)
|
13
|
-
result = @_erbout.
|
24
|
+
result = @_erbout.empty? ? result : @_erbout
|
14
25
|
@_erbout = previous_buffer_state
|
15
26
|
|
16
27
|
Serbea::OutputBuffer === result ? result.html_safe : result
|
@@ -36,7 +47,7 @@ module Serbea
|
|
36
47
|
end
|
37
48
|
|
38
49
|
def h(input)
|
39
|
-
|
50
|
+
Erubi.h(input.to_s)
|
40
51
|
end
|
41
52
|
alias_method :escape, :h
|
42
53
|
|
data/lib/serbea/pipeline.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
require "set"
|
2
|
-
require "active_support/core_ext/string/output_safety"
|
3
|
-
require "active_support/core_ext/object/blank"
|
4
2
|
|
5
3
|
module Serbea
|
6
4
|
class Pipeline
|
@@ -36,7 +34,7 @@ module Serbea
|
|
36
34
|
full_template = "{{ #{template} | assign_to: :output }}"
|
37
35
|
|
38
36
|
tmpl = Tilt::SerbeaTemplate.new { full_template }
|
39
|
-
tmpl.render(pipeline_obj, locals.
|
37
|
+
tmpl.render(pipeline_obj, locals.empty? ? kwargs : locals)
|
40
38
|
|
41
39
|
pipeline_obj.output
|
42
40
|
end
|
@@ -49,7 +47,7 @@ module Serbea
|
|
49
47
|
# @return [Proc]
|
50
48
|
def self.output_processor
|
51
49
|
@output_processor ||= lambda do |input|
|
52
|
-
(!input.html_safe? && self.autoescape) ?
|
50
|
+
(!input.html_safe? && self.autoescape) ? Erubi.h(input) : input.html_safe
|
53
51
|
end
|
54
52
|
end
|
55
53
|
|
data/lib/version.rb
CHANGED
data/serbea.gemspec
CHANGED
@@ -16,7 +16,6 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|script|spec|features|docs|serbea-rails)/!) }
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.add_runtime_dependency("activesupport", ">= 6.0")
|
20
19
|
spec.add_runtime_dependency("erubi", ">= 1.10")
|
21
20
|
spec.add_runtime_dependency("tilt", "~> 2.0")
|
22
21
|
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serbea
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activesupport
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '6.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '6.0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: erubi
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|