haml 5.2.2 → 6.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/test.yml +13 -9
  4. data/.gitignore +16 -16
  5. data/CHANGELOG.md +13 -3
  6. data/Gemfile +18 -11
  7. data/MIT-LICENSE +1 -1
  8. data/README.md +13 -19
  9. data/Rakefile +95 -93
  10. data/bin/bench +66 -0
  11. data/bin/console +11 -0
  12. data/bin/ruby +3 -0
  13. data/bin/setup +7 -0
  14. data/bin/stackprof +27 -0
  15. data/bin/test +24 -0
  16. data/exe/haml +6 -0
  17. data/ext/haml/extconf.rb +10 -0
  18. data/ext/haml/haml.c +537 -0
  19. data/ext/haml/hescape.c +108 -0
  20. data/ext/haml/hescape.h +20 -0
  21. data/haml.gemspec +39 -37
  22. data/lib/haml/ambles.rb +20 -0
  23. data/lib/haml/attribute_builder.rb +135 -179
  24. data/lib/haml/attribute_compiler.rb +85 -194
  25. data/lib/haml/attribute_parser.rb +86 -126
  26. data/lib/haml/cli.rb +154 -0
  27. data/lib/haml/compiler/children_compiler.rb +126 -0
  28. data/lib/haml/compiler/comment_compiler.rb +39 -0
  29. data/lib/haml/compiler/doctype_compiler.rb +46 -0
  30. data/lib/haml/compiler/script_compiler.rb +116 -0
  31. data/lib/haml/compiler/silent_script_compiler.rb +24 -0
  32. data/lib/haml/compiler/tag_compiler.rb +76 -0
  33. data/lib/haml/compiler.rb +63 -296
  34. data/lib/haml/dynamic_merger.rb +67 -0
  35. data/lib/haml/engine.rb +42 -227
  36. data/lib/haml/error.rb +3 -52
  37. data/lib/haml/escapable.rb +6 -70
  38. data/lib/haml/filters/base.rb +12 -0
  39. data/lib/haml/filters/cdata.rb +20 -0
  40. data/lib/haml/filters/coffee.rb +17 -0
  41. data/lib/haml/filters/css.rb +33 -0
  42. data/lib/haml/filters/erb.rb +10 -0
  43. data/lib/haml/filters/escaped.rb +22 -0
  44. data/lib/haml/filters/javascript.rb +33 -0
  45. data/lib/haml/filters/less.rb +20 -0
  46. data/lib/haml/filters/markdown.rb +11 -0
  47. data/lib/haml/filters/plain.rb +29 -0
  48. data/lib/haml/filters/preserve.rb +22 -0
  49. data/lib/haml/filters/ruby.rb +10 -0
  50. data/lib/haml/filters/sass.rb +15 -0
  51. data/lib/haml/filters/scss.rb +15 -0
  52. data/lib/haml/filters/text_base.rb +25 -0
  53. data/lib/haml/filters/tilt_base.rb +49 -0
  54. data/lib/haml/filters.rb +54 -378
  55. data/lib/haml/force_escapable.rb +29 -0
  56. data/lib/haml/haml_error.rb +66 -0
  57. data/lib/haml/helpers.rb +3 -697
  58. data/lib/haml/html.rb +22 -0
  59. data/lib/haml/identity.rb +13 -0
  60. data/lib/haml/object_ref.rb +30 -0
  61. data/lib/haml/parser.rb +179 -49
  62. data/lib/haml/rails_helpers.rb +51 -0
  63. data/lib/haml/rails_template.rb +55 -0
  64. data/lib/haml/railtie.rb +7 -45
  65. data/lib/haml/ruby_expression.rb +32 -0
  66. data/lib/haml/string_splitter.rb +20 -0
  67. data/lib/haml/template.rb +15 -34
  68. data/lib/haml/temple_line_counter.rb +2 -1
  69. data/lib/haml/util.rb +17 -15
  70. data/lib/haml/version.rb +1 -2
  71. data/lib/haml.rb +8 -20
  72. metadata +211 -57
  73. data/.gitmodules +0 -3
  74. data/.yardopts +0 -22
  75. data/TODO +0 -24
  76. data/benchmark.rb +0 -70
  77. data/bin/haml +0 -9
  78. data/lib/haml/.gitattributes +0 -1
  79. data/lib/haml/buffer.rb +0 -182
  80. data/lib/haml/exec.rb +0 -347
  81. data/lib/haml/generator.rb +0 -42
  82. data/lib/haml/helpers/action_view_extensions.rb +0 -60
  83. data/lib/haml/helpers/action_view_mods.rb +0 -132
  84. data/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  85. data/lib/haml/helpers/safe_erubi_template.rb +0 -20
  86. data/lib/haml/helpers/safe_erubis_template.rb +0 -33
  87. data/lib/haml/helpers/xss_mods.rb +0 -114
  88. data/lib/haml/options.rb +0 -273
  89. data/lib/haml/plugin.rb +0 -54
  90. data/lib/haml/sass_rails_filter.rb +0 -47
  91. data/lib/haml/template/options.rb +0 -27
  92. data/lib/haml/temple_engine.rb +0 -124
  93. data/yard/default/.gitignore +0 -1
  94. data/yard/default/fulldoc/html/css/common.sass +0 -15
  95. data/yard/default/layout/html/footer.erb +0 -12
data/lib/haml/railtie.rb CHANGED
@@ -1,53 +1,15 @@
1
1
  # frozen_string_literal: true
2
-
3
- require 'haml/template/options'
4
-
5
- # check for a compatible Rails version when Haml is loaded
6
- if (activesupport_spec = Gem.loaded_specs['activesupport'])
7
- if activesupport_spec.version.to_s < '4.0'
8
- raise Exception.new("\n\n** Haml now requires Rails 4.0 and later. Use Haml version 4.0.x\n\n")
9
- end
10
- end
2
+ require 'rails'
11
3
 
12
4
  module Haml
13
- module Filters
14
- module RailsErb
15
- extend Plain
16
- extend TiltFilter
17
- extend PrecompiledTiltFilter
18
- end
19
- end
20
-
21
5
  class Railtie < ::Rails::Railtie
22
- initializer :haml do |app|
23
- ActiveSupport.on_load(:action_view) do
24
- require "haml/template"
25
-
26
- if defined?(::Sass::Rails::SassTemplate) && app.config.assets.enabled
27
- require "haml/sass_rails_filter"
28
- end
29
-
30
- # Any object under ActionView::Template will be defined as the root constant with the same
31
- # name if it exists. If Erubi is loaded at all, ActionView::Template::Handlers::ERB::Erubi
32
- # will turn out to be a reference to the ::Erubi module.
33
- # In Rails 4.2, calling const_defined? results in odd exceptions, which seems to be
34
- # solved by looking for ::Erubi first.
35
- # However, in JRuby, the const_defined? finds it anyway, so we must make sure that it's
36
- # not just a reference to ::Erubi.
37
- if defined?(::Erubi) && (::ActionView::Template::Handlers::ERB.const_get('Erubi') != ::Erubi)
38
- require "haml/helpers/safe_erubi_template"
39
- Haml::Filters::RailsErb.template_class = Haml::SafeErubiTemplate
40
- else
41
- require "haml/helpers/safe_erubis_template"
42
- Haml::Filters::RailsErb.template_class = Haml::SafeErubisTemplate
43
- end
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
6
+ initializer :haml, before: :load_config_initializers do |app|
7
+ # Load haml/plugin first to override if available
8
+ begin
9
+ require 'haml/plugin'
10
+ rescue LoadError
50
11
  end
12
+ require 'haml/rails_template'
51
13
  end
52
14
  end
53
15
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+ require 'ripper'
3
+
4
+ module Haml
5
+ class RubyExpression < Ripper
6
+ class ParseError < StandardError; end
7
+
8
+ def self.syntax_error?(code)
9
+ self.new(code).parse
10
+ false
11
+ rescue ParseError
12
+ true
13
+ end
14
+
15
+ def self.string_literal?(code)
16
+ return false if syntax_error?(code)
17
+
18
+ type, instructions = Ripper.sexp(code)
19
+ return false if type != :program
20
+ return false if instructions.size > 1
21
+
22
+ type, _ = instructions.first
23
+ type == :string_literal
24
+ end
25
+
26
+ private
27
+
28
+ def on_parse_error(*)
29
+ raise ParseError
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ require 'ripper'
3
+ require 'haml/ruby_expression'
4
+
5
+ module Haml
6
+ module StringSplitter
7
+ # `code` param must be valid string literal
8
+ def self.compile(code)
9
+ unless Ripper.respond_to?(:lex) # truffleruby doesn't have Ripper.lex
10
+ return [[:dynamic, code]]
11
+ end
12
+
13
+ begin
14
+ Temple::Filters::StringSplitter.compile(code)
15
+ rescue Temple::FilterError => e
16
+ raise Haml::InternalError.new(e.message)
17
+ end
18
+ end
19
+ end
20
+ end
data/lib/haml/template.rb CHANGED
@@ -1,39 +1,20 @@
1
- # frozen_string_literal: true
2
-
3
- require 'haml/template/options'
4
- if defined?(ActiveSupport)
5
- ActiveSupport.on_load(:action_view) do
6
- require 'haml/helpers/action_view_mods'
7
- require 'haml/helpers/action_view_extensions'
8
- end
9
- else
10
- require 'haml/helpers/action_view_mods'
11
- require 'haml/helpers/action_view_extensions'
12
- end
13
- require 'haml/helpers/xss_mods'
14
- require 'haml/helpers/action_view_xss_mods'
1
+ # frozen_string_literal: false
2
+ require 'temple'
3
+ require 'haml/engine'
4
+ require 'haml/helpers'
15
5
 
16
6
  module Haml
17
- class TempleEngine
18
- def precompiled_method_return_value_with_haml_xss
19
- "::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
7
+ Template = Temple::Templates::Tilt.create(
8
+ Haml::Engine,
9
+ register_as: [:haml, :haml],
10
+ )
11
+
12
+ module TemplateExtension
13
+ # Activate Haml::Helpers for tilt templates.
14
+ # https://github.com/judofyr/temple/blob/v0.7.6/lib/temple/mixins/template.rb#L7-L11
15
+ def compile(*)
16
+ "extend Haml::Helpers; #{super}"
20
17
  end
21
- alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
22
- alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
23
18
  end
24
-
25
- module Helpers
26
- include Haml::Helpers::XssMods
27
- end
28
-
29
- module Util
30
- undef :rails_xss_safe? if defined? rails_xss_safe?
31
- def rails_xss_safe?; true; end
32
- end
33
-
19
+ Template.send(:extend, TemplateExtension)
34
20
  end
35
-
36
-
37
- Haml::Template.options[:escape_html] = true
38
-
39
- require 'haml/plugin'
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module Haml
4
3
  # A module to count lines of expected code. This would be faster than actual code generation
5
4
  # and counting newlines in it.
@@ -22,6 +21,8 @@ module Haml
22
21
  end.reduce(:+)
23
22
  when :escape
24
23
  count_lines(args[1])
24
+ when :newline
25
+ 1
25
26
  else
26
27
  raise UnexpectedExpression.new("[HAML BUG] Unexpected Temple expression '#{type}' is given!")
27
28
  end
data/lib/haml/util.rb CHANGED
@@ -14,6 +14,22 @@ module Haml
14
14
  module Util
15
15
  extend self
16
16
 
17
+ # Java extension is not implemented for JRuby yet.
18
+ # TruffleRuby does not implement `rb_ary_sort_bang`, etc.
19
+ if /java/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
20
+ require 'cgi/escape'
21
+
22
+ def self.escape_html(html)
23
+ CGI.escapeHTML(html.to_s)
24
+ end
25
+ else
26
+ require 'haml/haml' # Haml::Util.escape_html
27
+ end
28
+
29
+ def self.escape_html_safe(html)
30
+ html.html_safe? ? html : escape_html(html)
31
+ end
32
+
17
33
  # Silence all output to STDERR within a block.
18
34
  #
19
35
  # @yield A block in which no output will be printed to STDERR
@@ -35,20 +51,6 @@ module Haml
35
51
  false
36
52
  end
37
53
 
38
- # Returns the given text, marked as being HTML-safe.
39
- # With older versions of the Rails XSS-safety mechanism,
40
- # this destructively modifies the HTML-safety of `text`.
41
- #
42
- # It only works if you are using ActiveSupport or the parameter `text`
43
- # implements the #html_safe method.
44
- #
45
- # @param text [String, nil]
46
- # @return [String, nil] `text`, marked as HTML-safe
47
- def html_safe(text)
48
- return unless text
49
- text.html_safe
50
- end
51
-
52
54
  # Checks that the encoding of a string is valid
53
55
  # and cleans up potential encoding gotchas like the UTF-8 BOM.
54
56
  # If it's not, yields an error string describing the invalid character
@@ -214,7 +216,7 @@ MSG
214
216
  end
215
217
  content = eval("\"#{interpolated}\"")
216
218
  content = "#{char}#{content}" if char == '@' || char == '$'
217
- content = "Haml::Helpers.html_escape((#{content}))" if escape_html
219
+ content = "CGI.escapeHTML((#{content}).to_s)" if escape_html
218
220
 
219
221
  res << "\#{#{content}}"
220
222
  end
data/lib/haml/version.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module Haml
4
- VERSION = "5.2.2"
3
+ VERSION = '6.0.0.beta.1'
5
4
  end
data/lib/haml.rb CHANGED
@@ -1,25 +1,13 @@
1
1
  # frozen_string_literal: true
2
-
2
+ require 'haml/engine'
3
+ require 'haml/error'
3
4
  require 'haml/version'
5
+ require 'haml/template'
4
6
 
5
- # The module that contains everything Haml-related:
6
- #
7
- # * {Haml::Parser} is Haml's parser.
8
- # * {Haml::Compiler} is Haml's compiler.
9
- # * {Haml::Engine} is the class used to render Haml within Ruby code.
10
- # * {Haml::Options} is where Haml's runtime options are defined.
11
- # * {Haml::Error} is raised when Haml encounters an error.
12
- #
13
- # Also see the {file:REFERENCE.md full Haml reference}.
14
- module Haml
15
-
16
- def self.init_rails(*args)
17
- # Maintain this as a no-op for any libraries that may be depending on the
18
- # previous definition here.
7
+ if File.basename($0) != 'haml'
8
+ begin
9
+ require 'rails'
10
+ require 'haml/railtie'
11
+ rescue LoadError
19
12
  end
20
-
21
13
  end
22
-
23
- require 'haml/util'
24
- require 'haml/engine'
25
- require 'haml/railtie' if defined?(Rails::Railtie)
metadata CHANGED
@@ -1,17 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2
4
+ version: 6.0.0.beta.1
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:
12
- bindir: bin
11
+ - Takashi Kokubun
12
+ autorequire:
13
+ bindir: exe
13
14
  cert_chain: []
14
- date: 2021-07-27 00:00:00.000000000 Z
15
+ date: 2022-08-20 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: temple
@@ -19,14 +20,28 @@ dependencies:
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 0.8.0
23
+ version: 0.8.2
23
24
  type: :runtime
24
25
  prerelease: false
25
26
  version_requirements: !ruby/object:Gem::Requirement
26
27
  requirements:
27
28
  - - ">="
28
29
  - !ruby/object:Gem::Version
29
- version: 0.8.0
30
+ version: 0.8.2
31
+ - !ruby/object:Gem::Dependency
32
+ name: thor
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
30
45
  - !ruby/object:Gem::Dependency
31
46
  name: tilt
32
47
  requirement: !ruby/object:Gem::Requirement
@@ -42,21 +57,21 @@ dependencies:
42
57
  - !ruby/object:Gem::Version
43
58
  version: '0'
44
59
  - !ruby/object:Gem::Dependency
45
- name: rails
60
+ name: benchmark_driver
46
61
  requirement: !ruby/object:Gem::Requirement
47
62
  requirements:
48
63
  - - ">="
49
64
  - !ruby/object:Gem::Version
50
- version: 4.0.0
65
+ version: '0'
51
66
  type: :development
52
67
  prerelease: false
53
68
  version_requirements: !ruby/object:Gem::Requirement
54
69
  requirements:
55
70
  - - ">="
56
71
  - !ruby/object:Gem::Version
57
- version: 4.0.0
72
+ version: '0'
58
73
  - !ruby/object:Gem::Dependency
59
- name: rbench
74
+ name: bundler
60
75
  requirement: !ruby/object:Gem::Requirement
61
76
  requirements:
62
77
  - - ">="
@@ -70,7 +85,77 @@ dependencies:
70
85
  - !ruby/object:Gem::Version
71
86
  version: '0'
72
87
  - !ruby/object:Gem::Dependency
73
- name: minitest
88
+ name: coffee-script
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: erubi
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: haml
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '5'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '5'
129
+ - !ruby/object:Gem::Dependency
130
+ name: less
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: minitest-reporters
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '1.1'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '1.1'
157
+ - !ruby/object:Gem::Dependency
158
+ name: rails
74
159
  requirement: !ruby/object:Gem::Requirement
75
160
  requirements:
76
161
  - - ">="
@@ -84,7 +169,63 @@ dependencies:
84
169
  - !ruby/object:Gem::Version
85
170
  version: '4.0'
86
171
  - !ruby/object:Gem::Dependency
87
- name: nokogiri
172
+ name: rake
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: rake-compiler
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: sass
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ - !ruby/object:Gem::Dependency
214
+ name: slim
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: '0'
227
+ - !ruby/object:Gem::Dependency
228
+ name: string_template
88
229
  requirement: !ruby/object:Gem::Requirement
89
230
  requirements:
90
231
  - - ">="
@@ -98,7 +239,7 @@ dependencies:
98
239
  - !ruby/object:Gem::Version
99
240
  version: '0'
100
241
  - !ruby/object:Gem::Dependency
101
- name: simplecov
242
+ name: unindent
102
243
  requirement: !ruby/object:Gem::Requirement
103
244
  requirements:
104
245
  - - ">="
@@ -111,24 +252,19 @@ dependencies:
111
252
  - - ">="
112
253
  - !ruby/object:Gem::Version
113
254
  version: '0'
114
- description: |
115
- Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's
116
- designed to express the structure of documents in a non-repetitive, elegant, and
117
- easy way by using indentation rather than closing tags and allowing Ruby to be
118
- embedded with ease. It was originally envisioned as a plugin for Ruby on Rails,
119
- but it can function as a stand-alone templating engine.
255
+ description: An elegant, structured (X)HTML/XML templating engine.
120
256
  email:
121
257
  - haml@googlegroups.com
122
258
  - ronnie@dio.jp
123
259
  executables:
124
260
  - haml
125
- extensions: []
261
+ extensions:
262
+ - ext/haml/extconf.rb
126
263
  extra_rdoc_files: []
127
264
  files:
265
+ - ".github/FUNDING.yml"
128
266
  - ".github/workflows/test.yml"
129
267
  - ".gitignore"
130
- - ".gitmodules"
131
- - ".yardopts"
132
268
  - CHANGELOG.md
133
269
  - FAQ.md
134
270
  - Gemfile
@@ -136,55 +272,73 @@ files:
136
272
  - README.md
137
273
  - REFERENCE.md
138
274
  - Rakefile
139
- - TODO
140
- - benchmark.rb
141
- - bin/haml
275
+ - bin/bench
276
+ - bin/console
277
+ - bin/ruby
278
+ - bin/setup
279
+ - bin/stackprof
280
+ - bin/test
281
+ - exe/haml
282
+ - ext/haml/extconf.rb
283
+ - ext/haml/haml.c
284
+ - ext/haml/hescape.c
285
+ - ext/haml/hescape.h
142
286
  - haml.gemspec
143
287
  - lib/haml.rb
144
- - lib/haml/.gitattributes
288
+ - lib/haml/ambles.rb
145
289
  - lib/haml/attribute_builder.rb
146
290
  - lib/haml/attribute_compiler.rb
147
291
  - lib/haml/attribute_parser.rb
148
- - lib/haml/buffer.rb
292
+ - lib/haml/cli.rb
149
293
  - lib/haml/compiler.rb
294
+ - lib/haml/compiler/children_compiler.rb
295
+ - lib/haml/compiler/comment_compiler.rb
296
+ - lib/haml/compiler/doctype_compiler.rb
297
+ - lib/haml/compiler/script_compiler.rb
298
+ - lib/haml/compiler/silent_script_compiler.rb
299
+ - lib/haml/compiler/tag_compiler.rb
300
+ - lib/haml/dynamic_merger.rb
150
301
  - lib/haml/engine.rb
151
302
  - lib/haml/error.rb
152
303
  - lib/haml/escapable.rb
153
- - lib/haml/exec.rb
154
304
  - lib/haml/filters.rb
155
- - lib/haml/generator.rb
305
+ - lib/haml/filters/base.rb
306
+ - lib/haml/filters/cdata.rb
307
+ - lib/haml/filters/coffee.rb
308
+ - lib/haml/filters/css.rb
309
+ - lib/haml/filters/erb.rb
310
+ - lib/haml/filters/escaped.rb
311
+ - lib/haml/filters/javascript.rb
312
+ - lib/haml/filters/less.rb
313
+ - lib/haml/filters/markdown.rb
314
+ - lib/haml/filters/plain.rb
315
+ - lib/haml/filters/preserve.rb
316
+ - lib/haml/filters/ruby.rb
317
+ - lib/haml/filters/sass.rb
318
+ - lib/haml/filters/scss.rb
319
+ - lib/haml/filters/text_base.rb
320
+ - lib/haml/filters/tilt_base.rb
321
+ - lib/haml/force_escapable.rb
322
+ - lib/haml/haml_error.rb
156
323
  - lib/haml/helpers.rb
157
- - lib/haml/helpers/action_view_extensions.rb
158
- - lib/haml/helpers/action_view_mods.rb
159
- - lib/haml/helpers/action_view_xss_mods.rb
160
- - lib/haml/helpers/safe_erubi_template.rb
161
- - lib/haml/helpers/safe_erubis_template.rb
162
- - lib/haml/helpers/xss_mods.rb
163
- - lib/haml/options.rb
324
+ - lib/haml/html.rb
325
+ - lib/haml/identity.rb
326
+ - lib/haml/object_ref.rb
164
327
  - lib/haml/parser.rb
165
- - lib/haml/plugin.rb
328
+ - lib/haml/rails_helpers.rb
329
+ - lib/haml/rails_template.rb
166
330
  - lib/haml/railtie.rb
167
- - lib/haml/sass_rails_filter.rb
331
+ - lib/haml/ruby_expression.rb
332
+ - lib/haml/string_splitter.rb
168
333
  - lib/haml/template.rb
169
- - lib/haml/template/options.rb
170
- - lib/haml/temple_engine.rb
171
334
  - lib/haml/temple_line_counter.rb
172
335
  - lib/haml/util.rb
173
336
  - lib/haml/version.rb
174
- - yard/default/.gitignore
175
- - yard/default/fulldoc/html/css/common.sass
176
- - yard/default/layout/html/footer.erb
177
- homepage: http://haml.info/
337
+ homepage: https://haml.info
178
338
  licenses:
179
339
  - MIT
180
- metadata:
181
- bug_tracker_uri: https://github.com/haml/haml/issues
182
- changelog_uri: https://github.com/haml/haml/blob/main/CHANGELOG.md
183
- documentation_uri: http://haml.info/docs.html
184
- homepage_uri: http://haml.info
185
- mailing_list_uri: https://groups.google.com/forum/?fromgroups#!forum/haml
186
- source_code_uri: https://github.com/haml/haml
187
- post_install_message:
340
+ metadata: {}
341
+ post_install_message:
188
342
  rdoc_options: []
189
343
  require_paths:
190
344
  - lib
@@ -192,15 +346,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
346
  requirements:
193
347
  - - ">="
194
348
  - !ruby/object:Gem::Version
195
- version: 2.0.0
349
+ version: 2.1.0
196
350
  required_rubygems_version: !ruby/object:Gem::Requirement
197
351
  requirements:
198
- - - ">="
352
+ - - ">"
199
353
  - !ruby/object:Gem::Version
200
- version: '0'
354
+ version: 1.3.1
201
355
  requirements: []
202
- rubygems_version: 3.1.4
203
- signing_key:
356
+ rubygems_version: 3.3.7
357
+ signing_key:
204
358
  specification_version: 4
205
359
  summary: An elegant, structured (X)HTML/XML templating engine.
206
360
  test_files: []
data/.gitmodules DELETED
@@ -1,3 +0,0 @@
1
- [submodule "test/haml-spec"]
2
- path = test/haml-spec
3
- url = git://github.com/haml/haml-spec.git
data/.yardopts DELETED
@@ -1,22 +0,0 @@
1
- --charset utf-8
2
- --readme README.md
3
- --markup markdown
4
- --markup-provider kramdown
5
- --template-path yard
6
- --default-return ""
7
- --title "Haml Documentation"
8
- --query 'object.type != :classvariable'
9
- --query 'object.type != :constant || @api && @api.text == "public"'
10
- --exclude lib/haml/plugin.rb
11
- --exclude lib/haml/railtie.rb
12
- --exclude lib/haml/helpers/action_view_mods.rb
13
- --exclude lib/haml/helpers/xss_mods.rb
14
- --hide-void-return
15
- --protected
16
- --no-private
17
- --no-highlight
18
- -
19
- FAQ.md
20
- CHANGELOG.md
21
- REFERENCE.md
22
- MIT-LICENSE