padrino-helpers 0.16.1 → 0.16.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: 655fa0ee7cfdda2b4995b7d969b3f07ba49a272c4dd94d4ed4dcd02f1b7fca27
4
- data.tar.gz: 728495da5d52e95523b5e11b221bb30ee9e8739bf0d3105cc42ba5b8316bf083
3
+ metadata.gz: 12402f16964cbfb4911bf7488933f4b378f949dea6e7f6e30013ea2e16f5ab03
4
+ data.tar.gz: 19bad50f4edfeb5cf13d3c9052806ee450841134cd9335eddcdc70f77b88ecf3
5
5
  SHA512:
6
- metadata.gz: a0d307c2fad85a4c66d427b1e9235d4187f851722276fb4fe957d08f7d9db004996901604f396f62b7232d02361f6ec04f6759af1dce44cc8986e83c6c7de8ec
7
- data.tar.gz: c2489ef6b14acd5f9ff554cef375bff3d05d2043706594bb91933ed525ffc887cc246f120f6e3374b812ffdac0c966db82d079c9846eeb72d14f523534a7e266
6
+ metadata.gz: dec2dd1bf508adb4c26dfc9c95fcb898ea3567f0ed236187dd904af754dfa893111a1e6eaa4731212ea6b92c853c615d6aa7f4a303d0a0bb2db49d7496609539
7
+ data.tar.gz: 4ef70dfe8ac251e5759685abcc9c648d3e24cc46378420a84ba58bc5150f8cd3398a038723d1c8cd5c8b9caf23a40a10be77af41a0b8fba3e920c327742079b8
@@ -1,5 +1,4 @@
1
1
  begin
2
- using_modern_haml = false
3
2
  require 'haml/helpers/xss_mods'
4
3
  require 'haml/helpers/action_view_extensions'
5
4
 
@@ -12,11 +11,29 @@ begin
12
11
  end
13
12
  end
14
13
  rescue LoadError
15
- using_modern_haml = true
14
+ # Haml 6+ does not have these modules
16
15
  end
17
16
 
18
17
  module Padrino
19
18
  module Rendering
19
+ if defined?(Haml::VERSION) && Gem::Version.new(Haml::VERSION) >= Gem::Version.new('6')
20
+ class HamlOutputBuffer < Temple::Generators::StringBuffer
21
+ define_options buffer_class: 'SafeBuffer'
22
+
23
+ def call(exp)
24
+ [preamble, compile(exp), postamble].flatten.compact.join('; '.freeze)
25
+ end
26
+
27
+ def create_buffer
28
+ "__in_hamlit_template = true; #{buffer} = #{options[:buffer_class]}.new"
29
+ end
30
+
31
+ def concat(str)
32
+ "#{buffer}.safe_concat((#{str}))"
33
+ end
34
+ end
35
+ end
36
+
20
37
  class HamlTemplate < Tilt::HamlTemplate
21
38
  include SafeTemplate
22
39
  end
@@ -26,9 +43,10 @@ end
26
43
  Tilt.prefer(Padrino::Rendering::HamlTemplate, :haml)
27
44
 
28
45
  Padrino::Rendering.engine_configurations[:haml] =
29
- if using_modern_haml
46
+ if defined?(Haml::VERSION) && Gem::Version.new(Haml::VERSION) >= Gem::Version.new('6')
30
47
  {
31
- buffer_class: 'SafeBuffer.new',
48
+ generator: Padrino::Rendering::HamlOutputBuffer,
49
+ buffer: '@_out_buf',
32
50
  use_html_safe: true,
33
51
  disable_capture: true
34
52
  }
@@ -1,10 +1,22 @@
1
1
  module Padrino
2
2
  module Helpers
3
3
  module OutputHelpers
4
- # Haml and Hamlit require different detection code
5
- if defined?(Haml) && Tilt.template_for('.haml').to_s == 'Padrino::Rendering::HamlTemplate'
4
+ if defined?(Haml) && defined?(Haml::VERSION) && Gem::Version.new(Haml::VERSION) >= Gem::Version.new('6')
6
5
  ##
7
- # Handler for Haml templates.
6
+ # Handler for Haml 6+ templates (uses Hamlit internally).
7
+ #
8
+ class HamlitHandler < AbstractHandler
9
+ ##
10
+ # Returns true if the block is for Hamlit.
11
+ #
12
+ def engine_matches?(block)
13
+ block.binding.eval('defined? __in_hamlit_template')
14
+ end
15
+ end
16
+ OutputHelpers.register(:haml, HamlitHandler)
17
+ elsif defined?(Haml) && Tilt.template_for('.haml').to_s == 'Padrino::Rendering::HamlTemplate'
18
+ ##
19
+ # Handler for Haml 5 templates.
8
20
  #
9
21
  class HamlHandler < AbstractHandler
10
22
  ##
@@ -24,7 +36,7 @@ module Padrino
24
36
  OutputHelpers.register(:haml, HamlHandler)
25
37
  else
26
38
  ##
27
- # Handler for Haml templates.
39
+ # Handler for standalone Hamlit templates.
28
40
  #
29
41
  class HamlitHandler < AbstractHandler
30
42
  ##
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.1
4
+ version: 0.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2026-03-27 00:00:00.000000000 Z
14
+ date: 2026-10-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: padrino-support
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.16.1
22
+ version: 0.16.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.16.1
29
+ version: 0.16.2
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: tilt
32
32
  requirement: !ruby/object:Gem::Requirement