padrino-helpers 0.16.0 → 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: 5c443286ea7c2e047d727b3b844dcf35bfe75997fde2b2310485ab1c39003c4d
4
- data.tar.gz: eb4829b196a0b7c9d2a32e8aeaad09b91d7479af9e23c26bf6e2adcf4fa266dc
3
+ metadata.gz: 12402f16964cbfb4911bf7488933f4b378f949dea6e7f6e30013ea2e16f5ab03
4
+ data.tar.gz: 19bad50f4edfeb5cf13d3c9052806ee450841134cd9335eddcdc70f77b88ecf3
5
5
  SHA512:
6
- metadata.gz: 50ba74a40763da8b07ee23455b22366d7776be020b7b96694f666f17120f67fe503ac08dda6e328baa69d7a2d64c08baea0534333d05f299901b43fe91a6a826
7
- data.tar.gz: 9a6177f039e74e912974025842326f7ac96268efdc441ecc46fe3be3795d0d8a4ad098f7ebacb850a360622be644d9fd19144b3d29255a715b71d3566edd5f71
6
+ metadata.gz: dec2dd1bf508adb4c26dfc9c95fcb898ea3567f0ed236187dd904af754dfa893111a1e6eaa4731212ea6b92c853c615d6aa7f4a303d0a0bb2db49d7496609539
7
+ data.tar.gz: 4ef70dfe8ac251e5759685abcc9c648d3e24cc46378420a84ba58bc5150f8cd3398a038723d1c8cd5c8b9caf23a40a10be77af41a0b8fba3e920c327742079b8
@@ -1,18 +1,39 @@
1
- module Haml
2
- module Helpers
3
- include XssMods
4
- include ActionViewExtensions
5
- end
1
+ begin
2
+ require 'haml/helpers/xss_mods'
3
+ require 'haml/helpers/action_view_extensions'
4
+
5
+ module Haml
6
+ Helpers.include(Helpers::XssMods)
7
+ Helpers.include(Helpers::ActionViewExtensions)
6
8
 
7
- module Util
8
- def self.rails_xss_safe?
9
+ def Util.rails_xss_safe?
9
10
  true
10
11
  end
11
12
  end
13
+ rescue LoadError
14
+ # Haml 6+ does not have these modules
12
15
  end
13
16
 
14
17
  module Padrino
15
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
+
16
37
  class HamlTemplate < Tilt::HamlTemplate
17
38
  include SafeTemplate
18
39
  end
@@ -21,6 +42,14 @@ end
21
42
 
22
43
  Tilt.prefer(Padrino::Rendering::HamlTemplate, :haml)
23
44
 
24
- Padrino::Rendering.engine_configurations[:haml] = {
25
- escape_html: true
26
- }
45
+ Padrino::Rendering.engine_configurations[:haml] =
46
+ if defined?(Haml::VERSION) && Gem::Version.new(Haml::VERSION) >= Gem::Version.new('6')
47
+ {
48
+ generator: Padrino::Rendering::HamlOutputBuffer,
49
+ buffer: '@_out_buf',
50
+ use_html_safe: true,
51
+ disable_capture: true
52
+ }
53
+ else
54
+ { escape_html: true }
55
+ end
@@ -405,8 +405,6 @@ end
405
405
  unless defined? Padrino::Rendering::HamlTemplate
406
406
  begin
407
407
  require 'haml'
408
- require 'haml/helpers/xss_mods'
409
- require 'haml/helpers/action_view_extensions'
410
408
  rescue LoadError
411
409
  # do nothing since haml is not available
412
410
  else
@@ -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.0
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: 2025-12-02 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.0
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.0
29
+ version: 0.16.2
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: tilt
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -251,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  - !ruby/object:Gem::Version
252
252
  version: 1.3.6
253
253
  requirements: []
254
- rubygems_version: 3.4.19
254
+ rubygems_version: 3.5.23
255
255
  signing_key:
256
256
  specification_version: 4
257
257
  summary: Helpers for padrino