haml 5.1.1 → 5.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/haml/plugin.rb CHANGED
@@ -4,6 +4,11 @@ module Haml
4
4
 
5
5
  # This module makes Haml work with Rails using the template handler API.
6
6
  class Plugin
7
+ class << self
8
+ attr_accessor :annotate_rendered_view_with_filenames
9
+ end
10
+ self.annotate_rendered_view_with_filenames = false
11
+
7
12
  def handles_encoding?; true; end
8
13
 
9
14
  def compile(template, source)
@@ -14,9 +19,21 @@ module Haml
14
19
  options[:mime_type] = template.mime_type
15
20
  end
16
21
  options[:filename] = template.identifier
22
+
23
+ preamble = '@output_buffer = output_buffer ||= ActionView::OutputBuffer.new if defined?(ActionView::OutputBuffer);'
24
+ postamble = ''
25
+
26
+ if self.class.annotate_rendered_view_with_filenames
27
+ # short_identifier is only available in Rails 6+. On older versions, 'inspect' gives similar results.
28
+ ident = template.respond_to?(:short_identifier) ? template.short_identifier : template.inspect
29
+ preamble += "haml_concat '<!-- BEGIN #{ident} -->'.html_safe;"
30
+ postamble += "haml_concat '<!-- END #{ident} -->'.html_safe;"
31
+ end
32
+
17
33
  Haml::Engine.new(source, options).compiler.precompiled_with_ambles(
18
34
  [],
19
- after_preamble: '@output_buffer = output_buffer ||= ActionView::OutputBuffer.new if defined?(ActionView::OutputBuffer)',
35
+ after_preamble: preamble,
36
+ before_postamble: postamble
20
37
  )
21
38
  end
22
39
 
data/lib/haml/railtie.rb CHANGED
@@ -42,6 +42,11 @@ module Haml
42
42
  Haml::Filters::RailsErb.template_class = Haml::SafeErubisTemplate
43
43
  end
44
44
  Haml::Template.options[:filters] = { 'erb' => Haml::Filters::RailsErb }
45
+
46
+ if app.config.respond_to?(:action_view) &&
47
+ app.config.action_view.annotate_rendered_view_with_filenames
48
+ Haml::Plugin.annotate_rendered_view_with_filenames = true
49
+ end
45
50
  end
46
51
  end
47
52
  end
@@ -65,7 +65,7 @@ module Haml
65
65
  # (see {file:REFERENCE.md#encodings the `:encoding` option}).
66
66
  #
67
67
  # @return [String]
68
- def precompiled_with_ambles(local_names, after_preamble: '')
68
+ def precompiled_with_ambles(local_names, after_preamble: '', before_postamble: '')
69
69
  preamble = <<END.tr("\n", ';')
70
70
  begin
71
71
  extend Haml::Helpers
@@ -74,6 +74,7 @@ _erbout = _hamlout.buffer
74
74
  #{after_preamble}
75
75
  END
76
76
  postamble = <<END.tr("\n", ';')
77
+ #{before_postamble}
77
78
  #{precompiled_method_return_value}
78
79
  ensure
79
80
  @haml_buffer = @haml_buffer.upper if @haml_buffer
data/lib/haml/util.rb CHANGED
@@ -213,7 +213,7 @@ MSG
213
213
  scan.scan(/\w+/)
214
214
  end
215
215
  content = eval("\"#{interpolated}\"")
216
- content.prepend(char) if char == '@' || char == '$'
216
+ content = "#{char}#{content}" if char == '@' || char == '$'
217
217
  content = "Haml::Helpers.html_escape((#{content}))" if escape_html
218
218
 
219
219
  res << "\#{#{content}}"
data/lib/haml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Haml
4
- VERSION = "5.1.1"
4
+ VERSION = "5.2.2"
5
5
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 5.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
8
8
  - Hampton Catlin
9
9
  - Norman Clarke
10
10
  - Akira Matsuda
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-05-25 00:00:00.000000000 Z
14
+ date: 2021-07-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: temple
@@ -97,6 +97,20 @@ dependencies:
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
+ - !ruby/object:Gem::Dependency
101
+ name: simplecov
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
100
114
  description: |
101
115
  Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's
102
116
  designed to express the structure of documents in a non-repetitive, elegant, and
@@ -111,9 +125,9 @@ executables:
111
125
  extensions: []
112
126
  extra_rdoc_files: []
113
127
  files:
128
+ - ".github/workflows/test.yml"
114
129
  - ".gitignore"
115
130
  - ".gitmodules"
116
- - ".travis.yml"
117
131
  - ".yardopts"
118
132
  - CHANGELOG.md
119
133
  - FAQ.md
@@ -165,12 +179,12 @@ licenses:
165
179
  - MIT
166
180
  metadata:
167
181
  bug_tracker_uri: https://github.com/haml/haml/issues
168
- changelog_uri: https://github.com/haml/haml/blob/master/CHANGELOG.md
182
+ changelog_uri: https://github.com/haml/haml/blob/main/CHANGELOG.md
169
183
  documentation_uri: http://haml.info/docs.html
170
184
  homepage_uri: http://haml.info
171
185
  mailing_list_uri: https://groups.google.com/forum/?fromgroups#!forum/haml
172
186
  source_code_uri: https://github.com/haml/haml
173
- post_install_message:
187
+ post_install_message:
174
188
  rdoc_options: []
175
189
  require_paths:
176
190
  - lib
@@ -185,8 +199,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
199
  - !ruby/object:Gem::Version
186
200
  version: '0'
187
201
  requirements: []
188
- rubygems_version: 3.0.3
189
- signing_key:
202
+ rubygems_version: 3.1.4
203
+ signing_key:
190
204
  specification_version: 4
191
205
  summary: An elegant, structured (X)HTML/XML templating engine.
192
206
  test_files: []
data/.travis.yml DELETED
@@ -1,99 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - ruby-head
7
- - 2.6.3
8
- - 2.5.5
9
- - 2.4.6
10
- - 2.3.8
11
- - 2.2.10
12
- - 2.1.10
13
- - 2.0.0
14
- - jruby-9.2.7.0
15
- - rbx-3
16
- gemfile:
17
- - test/gemfiles/Gemfile.rails-6.0.x
18
- - test/gemfiles/Gemfile.rails-5.2.x
19
- - test/gemfiles/Gemfile.rails-5.1.x
20
- - test/gemfiles/Gemfile.rails-5.0.x
21
- - test/gemfiles/Gemfile.rails-5.0.x.erubi
22
- - test/gemfiles/Gemfile.rails-4.2.x
23
- - test/gemfiles/Gemfile.rails-4.1.x
24
- - test/gemfiles/Gemfile.rails-4.0.x
25
- matrix:
26
- exclude:
27
- - rvm: 2.0.0
28
- gemfile: test/gemfiles/Gemfile.rails-6.0.x
29
- - rvm: 2.1.10
30
- gemfile: test/gemfiles/Gemfile.rails-6.0.x
31
- - rvm: 2.2.10
32
- gemfile: test/gemfiles/Gemfile.rails-6.0.x
33
- - rvm: 2.3.8
34
- gemfile: test/gemfiles/Gemfile.rails-6.0.x
35
- - rvm: 2.4.6
36
- gemfile: test/gemfiles/Gemfile.rails-6.0.x
37
- - rvm: 2.0.0
38
- gemfile: test/gemfiles/Gemfile.rails-5.2.x
39
- - rvm: 2.1.10
40
- gemfile: test/gemfiles/Gemfile.rails-5.2.x
41
- - rvm: 2.0.0
42
- gemfile: test/gemfiles/Gemfile.rails-5.1.x
43
- - rvm: 2.1.10
44
- gemfile: test/gemfiles/Gemfile.rails-5.1.x
45
- - rvm: 2.0.0
46
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
47
- - rvm: 2.0.0
48
- gemfile: test/gemfiles/Gemfile.rails-5.0.x.erubi
49
- - rvm: 2.1.10
50
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
51
- - rvm: 2.1.10
52
- gemfile: test/gemfiles/Gemfile.rails-5.0.x.erubi
53
- - rvm: 2.4.6
54
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
55
- - rvm: 2.4.6
56
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
57
- - rvm: 2.4.6
58
- gemfile: test/gemfiles/Gemfile.rails-4.2.x
59
- - rvm: 2.5.5
60
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
61
- - rvm: 2.5.5
62
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
63
- - rvm: 2.5.5
64
- gemfile: test/gemfiles/Gemfile.rails-4.2.x
65
- - rvm: 2.6.3
66
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
67
- - rvm: 2.6.3
68
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
69
- - rvm: 2.6.3
70
- gemfile: test/gemfiles/Gemfile.rails-4.2.x
71
- - rvm: 2.6.3
72
- gemfile: test/gemfiles/Gemfile.rails-5.0.x
73
- - rvm: 2.6.3
74
- gemfile: test/gemfiles/Gemfile.rails-5.0.x.erubi
75
- - rvm: ruby-head
76
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
77
- - rvm: ruby-head
78
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
79
- - rvm: ruby-head
80
- gemfile: test/gemfiles/Gemfile.rails-4.2.x
81
- include:
82
- - rvm: 2.6.3
83
- gemfile: test/gemfiles/Gemfile.rails-edge
84
- allow_failures:
85
- - rvm: ruby-head
86
- - rvm: rbx-3
87
- - gemfile: test/gemfiles/Gemfile.rails-edge
88
- - rvm: jruby-9.2.7.0
89
- gemfile: test/gemfiles/Gemfile.rails-4.2.x
90
- - rvm: jruby-9.2.7.0
91
- gemfile: test/gemfiles/Gemfile.rails-4.1.x
92
- - rvm: jruby-9.2.7.0
93
- gemfile: test/gemfiles/Gemfile.rails-4.0.x
94
- - rvm: jruby-9.2.7.0
95
- gemfile: test/gemfiles/Gemfile.rails-5.0.x.erubi
96
- fast_finish: true
97
- before_install: gem i rubygems-update -v '<3' && update_rubygems # https://github.com/travis-ci/travis-ci/issues/8974
98
- before_install: gem i bundler -v '<2'
99
- script: "bundle exec rake submodules test"