hamlit 3.0.2-java → 4.0.0-java

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: 8b1bf9d7169d21910155348a5e9a26e3b2ff1cdccaa998dd191145849366a1d3
4
- data.tar.gz: 91c2f6d2fef0e0c92765195d30201027308fc1ba2cf581ee1264842026995c9a
3
+ metadata.gz: f5e5ecef3392a822bd6ec28ddce1464bb45c057f15b8c73b57dc3965fabcad29
4
+ data.tar.gz: 1f02f20589723236465ed54d5ba566cafa57284528da8a273081fd09244d2c73
5
5
  SHA512:
6
- metadata.gz: 02e5db6ffafa7815e18e6ab7455a4abe4fd731260961d35c815fa87423cc26abd159fdaea357943178eb6235de125c11f002d96255ac4e9d2f3582778da55716
7
- data.tar.gz: 6d8fe8e3de9be2f50f82197955f7c6a2bacc275ac4942785af24515e845407a09a684dd482327016185dd25a3c5788c3a7050849115fae4c288f6d69ebd935f7
6
+ metadata.gz: ccd22d94e1b679e21481e780425736a6cf3961a0a450f5292bbd39bf14d29d0d302bbb27cbe4067803125339531c0478b884a2d2d6dc678a6789540a63a4dc1b
7
+ data.tar.gz: a37a9603fba6e70b41578b8240c7681b13eb4a30345fc6d0eaa9c2c2979a1a0e38a408ca7d5508326b2ef630980fa030ad2ee42437fd570df6a1979c43762216
@@ -0,0 +1,50 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ push:
13
+ if: github.repository_owner == 'k0kubun'
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ ruby: [ruby, jruby]
18
+ fail-fast: false
19
+
20
+ environment:
21
+ name: rubygems.org
22
+ url: https://rubygems.org/gems/hamlit
23
+
24
+ permissions:
25
+ contents: write
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Harden Runner
30
+ uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
31
+ with:
32
+ egress-policy: audit
33
+
34
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
35
+
36
+ - name: Set up Ruby
37
+ uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
38
+ with:
39
+ bundler-cache: true
40
+ ruby-version: ${{ matrix.ruby }}
41
+
42
+ - name: Publish to RubyGems
43
+ uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
44
+
45
+ - name: Create GitHub release
46
+ run: |
47
+ tag_name="$(git describe --tags --abbrev=0)"
48
+ gh release create "${tag_name}" --verify-tag --generate-notes
49
+ env:
50
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -17,24 +17,17 @@ jobs:
17
17
  fail-fast: false
18
18
  matrix:
19
19
  ruby:
20
- - '2.5'
21
- - '2.6'
22
- - '2.7'
23
- - '3.0'
20
+ - '3.2'
21
+ - '3.3'
22
+ - '3.4'
24
23
  - jruby
25
- - truffleruby-head
24
+ - truffleruby
26
25
  steps:
27
26
  - uses: actions/checkout@v2
27
+ - run: sudo apt-get update && sudo apt-get install -y nodejs libxslt-dev # nodejs for execjs, libxslt for TruffleRuby nokogiri
28
28
  - name: Set up Ruby
29
29
  uses: ruby/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
- - uses: actions/cache@v2
33
- with:
34
- path: vendor/bundle
35
- key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
36
- restore-keys: ${{ runner.os }}-gems-
37
- - run: sudo apt-get update && sudo apt-get install -y nodejs libxslt-dev # nodejs for execjs, libxslt for TruffleRuby nokogiri
38
- - name: bundle install
39
- run: bundle config path vendor/bundle && bundle install -j$(nproc) --retry 3
32
+ bundler-cache: true
40
33
  - run: bundle exec rake test
data/CHANGELOG.md CHANGED
@@ -1,8 +1,16 @@
1
1
  # Change Log
2
2
 
3
- All notable changes to this project will be documented in this file. This
4
- project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
- [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
3
+ ## 4.0.0
4
+
5
+ - Change default `attr_quote` from `'` to `"`
6
+ - Bump required Ruby version to 3.2
7
+
8
+ ## [3.0.3](https://github.com/k0kubun/hamlit/compare/v3.0.2...v3.0.3) - 2022-11-07
9
+
10
+ ### Added
11
+
12
+ - Support sass-embedded [#196](https://github.com/k0kubun/hamlit/issues/196)
13
+ *Thanks to @ntkme*
6
14
 
7
15
  ## [3.0.2](https://github.com/k0kubun/hamlit/compare/v3.0.1...v3.0.2) - 2022-10-13
8
16
 
data/Gemfile CHANGED
@@ -11,6 +11,9 @@ gemspec
11
11
  gem 'benchmark-ips', '2.3.0'
12
12
  gem 'maxitest'
13
13
  gem 'pry'
14
+ gem 'base64'
15
+ gem 'bigdecimal'
16
+ gem 'mutex_m'
14
17
 
15
18
  if /java/ === RUBY_PLATFORM # JRuby
16
19
  gem 'pandoc-ruby'
data/README.md CHANGED
@@ -10,7 +10,7 @@ Hamlit is a high performance [Haml](https://github.com/haml/haml) implementation
10
10
  **Hamlit's implementation was copied to Haml 6.**
11
11
  From Haml 6, you don't need to switch to Hamlit.
12
12
 
13
- Both Haml 6 and Hamlit are still maintained by [@k0kubun](https://github.com/k0kubun).
13
+ Both Haml 6 and Hamlit are still maintained by [k0kubun](https://github.com/k0kubun).
14
14
  While you don't need to immediately deprecate Hamlit, Haml 6 has more maintainers
15
15
  and you'd better start a new project with Haml rather than Hamlit,
16
16
  given no performance difference between them.
@@ -21,7 +21,7 @@ given no performance difference between them.
21
21
  Hamlit is another implementation of [Haml](https://github.com/haml/haml).
22
22
  With some [Hamlit's characteristics](REFERENCE.md#hamlits-characteristics) for performance,
23
23
  Hamlit is **1.94x times faster** than the original Haml 5 in [this benchmark](benchmark/run-benchmarks.rb),
24
- which is an HTML-escaped version of [slim-template/slim's one](https://github.com/slim-template/slim/blob/4.1.0/benchmarks/run-benchmarks.rb) for fairness. ([Result on Travis](https://travis-ci.org/github/k0kubun/hamlit/jobs/732178446))
24
+ which is an HTML-escaped version of [slim-template/slim's one](https://github.com/slim-template/slim/blob/4.1.0/benchmarks/run-benchmarks.rb) for fairness.
25
25
 
26
26
  <img src="https://raw.githubusercontent.com/k0kubun/hamlit/afcc2b36c4861c2f764baa09afd9530ca25eeafa/benchmark/graph/graph.png" width="600x" alt="Hamlit Benchmark" />
27
27
 
data/hamlit.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.platform = 'java'
24
24
  else
25
25
  spec.extensions = ['ext/hamlit/extconf.rb']
26
- spec.required_ruby_version = '>= 2.1.0'
26
+ spec.required_ruby_version = '>= 3.2.0'
27
27
  end
28
28
 
29
29
  spec.add_dependency 'temple', '>= 0.8.2'
@@ -62,7 +62,7 @@ module Hamlit::AttributeBuilder
62
62
  when value.is_a?(String)
63
63
  classes += value.split(' ')
64
64
  when value.is_a?(Array)
65
- classes += value.select { |v| v }
65
+ classes += value.flatten.select { |v| v }
66
66
  when value
67
67
  classes << value.to_s
68
68
  end
data/lib/hamlit/engine.rb CHANGED
@@ -14,13 +14,13 @@ module Hamlit
14
14
  :buffer_class,
15
15
  generator: Temple::Generators::StringBuffer,
16
16
  format: :html,
17
- attr_quote: "'",
17
+ attr_quote: '"',
18
18
  escape_html: true,
19
19
  escape_attrs: true,
20
20
  autoclose: %w(area base basefont br col command embed frame
21
21
  hr img input isindex keygen link menuitem meta
22
22
  param source track wbr),
23
- filename: "",
23
+ filename: '',
24
24
  check_syntax: false,
25
25
  disable_capture: false,
26
26
  )
@@ -7,7 +7,11 @@ module Hamlit
7
7
  def self.render(name, source, indent_width: 0)
8
8
  text = ::Tilt["t.#{name}"].new { source }.render
9
9
  return text if indent_width == 0
10
- text.gsub!(/^/, ' ' * indent_width)
10
+ if text.frozen?
11
+ text.gsub(/^/, ' ' * indent_width)
12
+ else
13
+ text.gsub!(/^/, ' ' * indent_width)
14
+ end
11
15
  end
12
16
 
13
17
  def explicit_require?(needed_registration)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
- VERSION = '3.0.2'
3
+ VERSION = '4.0.0'
4
4
  end
metadata CHANGED
@@ -1,234 +1,233 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 4.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Takashi Kokubun
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2022-10-14 00:00:00.000000000 Z
10
+ date: 2025-10-28 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
13
+ name: temple
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
18
  version: 0.8.2
19
- name: temple
20
- prerelease: false
21
19
  type: :runtime
20
+ prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: 0.8.2
27
26
  - !ruby/object:Gem::Dependency
27
+ name: thor
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0'
33
- name: thor
34
- prerelease: false
35
33
  type: :runtime
34
+ prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
41
+ name: tilt
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
- name: tilt
48
- prerelease: false
49
47
  type: :runtime
48
+ prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
54
  - !ruby/object:Gem::Dependency
55
+ name: benchmark_driver
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
- name: benchmark_driver
62
- prerelease: false
63
61
  type: :development
62
+ prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
69
68
  - !ruby/object:Gem::Dependency
69
+ name: bundler
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
- name: bundler
76
- prerelease: false
77
75
  type: :development
76
+ prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - ">="
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
83
82
  - !ruby/object:Gem::Dependency
83
+ name: erubi
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- name: erubi
90
- prerelease: false
91
89
  type: :development
90
+ prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - ">="
95
94
  - !ruby/object:Gem::Version
96
95
  version: '0'
97
96
  - !ruby/object:Gem::Dependency
97
+ name: haml
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '5'
103
- name: haml
104
- prerelease: false
105
103
  type: :development
104
+ prerelease: false
106
105
  version_requirements: !ruby/object:Gem::Requirement
107
106
  requirements:
108
107
  - - ">="
109
108
  - !ruby/object:Gem::Version
110
109
  version: '5'
111
110
  - !ruby/object:Gem::Dependency
111
+ name: less
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
- name: less
118
- prerelease: false
119
117
  type: :development
118
+ prerelease: false
120
119
  version_requirements: !ruby/object:Gem::Requirement
121
120
  requirements:
122
121
  - - ">="
123
122
  - !ruby/object:Gem::Version
124
123
  version: '0'
125
124
  - !ruby/object:Gem::Dependency
125
+ name: minitest-reporters
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '1.1'
131
- name: minitest-reporters
132
- prerelease: false
133
131
  type: :development
132
+ prerelease: false
134
133
  version_requirements: !ruby/object:Gem::Requirement
135
134
  requirements:
136
135
  - - "~>"
137
136
  - !ruby/object:Gem::Version
138
137
  version: '1.1'
139
138
  - !ruby/object:Gem::Dependency
139
+ name: rails
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '4.0'
145
- name: rails
146
- prerelease: false
147
145
  type: :development
146
+ prerelease: false
148
147
  version_requirements: !ruby/object:Gem::Requirement
149
148
  requirements:
150
149
  - - ">="
151
150
  - !ruby/object:Gem::Version
152
151
  version: '4.0'
153
152
  - !ruby/object:Gem::Dependency
153
+ name: rake
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
- name: rake
160
- prerelease: false
161
159
  type: :development
160
+ prerelease: false
162
161
  version_requirements: !ruby/object:Gem::Requirement
163
162
  requirements:
164
163
  - - ">="
165
164
  - !ruby/object:Gem::Version
166
165
  version: '0'
167
166
  - !ruby/object:Gem::Dependency
167
+ name: rake-compiler
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
- name: rake-compiler
174
- prerelease: false
175
173
  type: :development
174
+ prerelease: false
176
175
  version_requirements: !ruby/object:Gem::Requirement
177
176
  requirements:
178
177
  - - ">="
179
178
  - !ruby/object:Gem::Version
180
179
  version: '0'
181
180
  - !ruby/object:Gem::Dependency
181
+ name: sass
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - ">="
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
- name: sass
188
- prerelease: false
189
187
  type: :development
188
+ prerelease: false
190
189
  version_requirements: !ruby/object:Gem::Requirement
191
190
  requirements:
192
191
  - - ">="
193
192
  - !ruby/object:Gem::Version
194
193
  version: '0'
195
194
  - !ruby/object:Gem::Dependency
195
+ name: slim
196
196
  requirement: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
- name: slim
202
- prerelease: false
203
201
  type: :development
202
+ prerelease: false
204
203
  version_requirements: !ruby/object:Gem::Requirement
205
204
  requirements:
206
205
  - - ">="
207
206
  - !ruby/object:Gem::Version
208
207
  version: '0'
209
208
  - !ruby/object:Gem::Dependency
209
+ name: string_template
210
210
  requirement: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - ">="
213
213
  - !ruby/object:Gem::Version
214
214
  version: '0'
215
- name: string_template
216
- prerelease: false
217
215
  type: :development
216
+ prerelease: false
218
217
  version_requirements: !ruby/object:Gem::Requirement
219
218
  requirements:
220
219
  - - ">="
221
220
  - !ruby/object:Gem::Version
222
221
  version: '0'
223
222
  - !ruby/object:Gem::Dependency
223
+ name: unindent
224
224
  requirement: !ruby/object:Gem::Requirement
225
225
  requirements:
226
226
  - - ">="
227
227
  - !ruby/object:Gem::Version
228
228
  version: '0'
229
- name: unindent
230
- prerelease: false
231
229
  type: :development
230
+ prerelease: false
232
231
  version_requirements: !ruby/object:Gem::Requirement
233
232
  requirements:
234
233
  - - ">="
@@ -243,7 +242,7 @@ extensions: []
243
242
  extra_rdoc_files: []
244
243
  files:
245
244
  - ".github/FUNDING.yml"
246
- - ".github/workflows/bench.yml"
245
+ - ".github/workflows/release.yml"
247
246
  - ".github/workflows/test.yml"
248
247
  - ".gitignore"
249
248
  - CHANGELOG.md
@@ -330,7 +329,6 @@ homepage: https://github.com/k0kubun/hamlit
330
329
  licenses:
331
330
  - MIT
332
331
  metadata: {}
333
- post_install_message:
334
332
  rdoc_options: []
335
333
  require_paths:
336
334
  - lib
@@ -345,8 +343,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
343
  - !ruby/object:Gem::Version
346
344
  version: '0'
347
345
  requirements: []
348
- rubygems_version: 3.2.29
349
- signing_key:
346
+ rubygems_version: 3.6.3
350
347
  specification_version: 4
351
348
  summary: High Performance Haml Implementation
352
349
  test_files: []
@@ -1,30 +0,0 @@
1
- name: bench
2
- on:
3
- push:
4
- branches:
5
- - master
6
- pull_request:
7
- types:
8
- - opened
9
- - synchronize
10
- - reopened
11
- schedule:
12
- - cron: "00 15 * * *" # 7:00 PST (-8), 8:00 PDT (-7)
13
- jobs:
14
- bench:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - uses: actions/checkout@v2
18
- - name: Set up Ruby
19
- uses: ruby/setup-ruby@v1
20
- with:
21
- ruby-version: '3.0'
22
- - uses: actions/cache@v2
23
- with:
24
- path: vendor/bundle
25
- key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
26
- restore-keys: ${{ runner.os }}-gems-
27
- - run: sudo apt-get update && sudo apt-get install -y nodejs libxslt-dev # nodejs for execjs, libxslt for TruffleRuby nokogiri
28
- - name: bundle install
29
- run: bundle config path vendor/bundle && bundle install -j$(nproc) --retry 3
30
- - run: bundle exec rake bench