hamlit 2.15.2 → 2.16.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d94d8367c92ca140f6438760deeecddf3e59d4f7e5edef0833e9afbe5851e68
4
- data.tar.gz: dc6cfc8aa8ed607bdb4da4d99a60d391d0fe0bf773059bf868053248949f3bae
3
+ metadata.gz: fcce9bd99678dbe36651b82eff53e60d3c36e518f05e6a6dba18856ce6d16bc0
4
+ data.tar.gz: 3264ed62419fdf42e1fb05452c58e6b2cc5f6575f33b13b8322cbef650a70a9a
5
5
  SHA512:
6
- metadata.gz: 2704b342b72349cd9d4ed144671ed4a0e829f8194d920c4591c129d5be81fc73cf79b11e3917f10b3981570896794293a82bd66e959654d2072c1c348d747b2c
7
- data.tar.gz: 90151c07372ca4fbc5d25674d47a239fcd47e87619b7d0bc117f51b8b77d03b649179467ae590e3f11b509e5a576404b08dbb723ba7f7add4c27fa5106326b3b
6
+ metadata.gz: 9a78f921253b5512072adccb7ba02bd28987f9c9f84b7bd0dc468a040249bb567c0432bc994a763a1516d09a6fde04a5eb50dbbf3f0a0dd835a442bca05f5838
7
+ data.tar.gz: fba0599895195d4cb4c82c3a2d213d451d88bb5c82fa338093674c9416d57ad88436547d50131777fc7f0c1dc17f79f4c91d08a72a839d8d22e3f5d1b2f33507
data/CHANGELOG.md CHANGED
@@ -4,6 +4,30 @@ All notable changes to this project will be documented in this file. This
4
4
  project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
5
  [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
6
6
 
7
+ ## [2.16.2](https://github.com/k0kubun/hamlit/compare/v2.16.1...v2.16.2) - 2022-08-07
8
+
9
+ ### Fixed
10
+
11
+ - Fix an issue when `disable_capture: false` is set and a Ruby comment is put after `do`
12
+
13
+ ## [2.16.1](https://github.com/k0kubun/hamlit/compare/v2.16.0...v2.16.1) - 2022-08-07
14
+
15
+ ### Added
16
+
17
+ - Introduce `:disable_capture` option to capture a block
18
+ - Default: `disable_capture: true` (backward-compatible)
19
+ - For Rails, this must be `true` anyway to use Rails-native capturing.
20
+ - If you override the option like `disable_capture: false` in Hamlit::Template,
21
+ you can capture a block content like `= render do ...`.
22
+
23
+ ## [2.16.0](https://github.com/k0kubun/hamlit/compare/v2.15.2...v2.16.0) - 2022-02-03
24
+
25
+ ### Added
26
+
27
+ - Raise an exception on a Haml-level syntax error with `hamlit compile -c`
28
+ [#189](https://github.com/k0kubun/hamlit/issues/189)
29
+ *Thanks to @dlwr*
30
+
7
31
  ## [2.15.2](https://github.com/k0kubun/hamlit/compare/v2.15.1...v2.15.2) - 2022-01-04
8
32
 
9
33
  ### Fixed
data/lib/hamlit/cli.rb CHANGED
@@ -106,6 +106,7 @@ module Hamlit
106
106
  Hamlit::Engine.options.to_h.merge(
107
107
  escape_attrs: options[:escape_attrs],
108
108
  escape_html: options[:escape_html],
109
+ check_syntax: options[:check],
109
110
  )
110
111
  end
111
112
 
@@ -6,8 +6,9 @@ require 'hamlit/string_splitter'
6
6
  module Hamlit
7
7
  class Compiler
8
8
  class ScriptCompiler
9
- def initialize(identity)
9
+ def initialize(identity, options)
10
10
  @identity = identity
11
+ @disable_capture = options[:disable_capture]
11
12
  end
12
13
 
13
14
  def compile(node, &block)
@@ -79,7 +80,7 @@ module Hamlit
79
80
  else
80
81
  [:multi,
81
82
  [:block, "#{var} = #{node.value[:text]}",
82
- [:multi, [:newline], yield(node)],
83
+ [:multi, [:newline], @disable_capture ? yield(node) : [:capture, Temple::Utils.unique_name, yield(node)]]
83
84
  ],
84
85
  ]
85
86
  end
@@ -16,7 +16,7 @@ module Hamlit
16
16
  @comment_compiler = CommentCompiler.new
17
17
  @doctype_compiler = DoctypeCompiler.new(options)
18
18
  @filter_compiler = Filters.new(options)
19
- @script_compiler = ScriptCompiler.new(identity)
19
+ @script_compiler = ScriptCompiler.new(identity, options)
20
20
  @silent_script_compiler = SilentScriptCompiler.new
21
21
  @tag_compiler = TagCompiler.new(identity, options)
22
22
  end
data/lib/hamlit/engine.rb CHANGED
@@ -21,6 +21,8 @@ module Hamlit
21
21
  hr img input isindex keygen link menuitem meta
22
22
  param source track wbr),
23
23
  filename: "",
24
+ check_syntax: false,
25
+ disable_capture: true,
24
26
  )
25
27
 
26
28
  use Parser
data/lib/hamlit/parser.rb CHANGED
@@ -20,6 +20,7 @@ module Hamlit
20
20
  autoclose
21
21
  escape_html
22
22
  escape_attrs
23
+ check_syntax
23
24
  ].freeze
24
25
 
25
26
  def initialize(options = {})
@@ -35,6 +36,7 @@ module Hamlit
35
36
  end
36
37
  HamlParser.new(HamlOptions.new(@options)).call(template)
37
38
  rescue ::Hamlit::HamlError => e
39
+ raise e if @options[:check_syntax]
38
40
  error_with_lineno(e)
39
41
  end
40
42
 
@@ -15,6 +15,7 @@ module Hamlit
15
15
  use_html_safe: true,
16
16
  streaming: true,
17
17
  buffer_class: 'ActionView::OutputBuffer',
18
+ disable_capture: true,
18
19
  }
19
20
  end
20
21
 
@@ -34,8 +35,10 @@ module Hamlit
34
35
  end
35
36
 
36
37
  if ActionView::Base.try(:annotate_rendered_view_with_filenames) && template.format == :html
37
- options[:preamble] = "<!-- BEGIN #{template.short_identifier} -->\n"
38
- options[:postamble] = "<!-- END #{template.short_identifier} -->\n"
38
+ options = options.merge(
39
+ preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
40
+ postamble: "<!-- END #{template.short_identifier} -->\n",
41
+ )
39
42
  end
40
43
 
41
44
  Engine.new(options).call(source)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
- VERSION = '2.15.2'
3
+ VERSION = '2.16.2'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.2
4
+ version: 2.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-05 00:00:00.000000000 Z
11
+ date: 2022-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: temple
@@ -360,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
360
360
  - !ruby/object:Gem::Version
361
361
  version: '0'
362
362
  requirements: []
363
- rubygems_version: 3.1.2
363
+ rubygems_version: 3.3.7
364
364
  signing_key:
365
365
  specification_version: 4
366
366
  summary: High Performance Haml Implementation