herb 0.6.0 → 0.7.0

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/Rakefile +4 -4
  4. data/ext/herb/error_helpers.c +1 -1
  5. data/ext/herb/error_helpers.h +1 -1
  6. data/ext/herb/nodes.c +7 -5
  7. data/ext/herb/nodes.h +1 -1
  8. data/lib/herb/ast/helpers.rb +26 -0
  9. data/lib/herb/ast/nodes.rb +8 -4
  10. data/lib/herb/cli.rb +158 -1
  11. data/lib/herb/engine/compiler.rb +399 -0
  12. data/lib/herb/engine/debug_visitor.rb +321 -0
  13. data/lib/herb/engine/error_formatter.rb +420 -0
  14. data/lib/herb/engine/parser_error_overlay.rb +767 -0
  15. data/lib/herb/engine/validation_error_overlay.rb +182 -0
  16. data/lib/herb/engine/validation_errors.rb +65 -0
  17. data/lib/herb/engine/validator.rb +75 -0
  18. data/lib/herb/engine/validators/accessibility_validator.rb +31 -0
  19. data/lib/herb/engine/validators/nesting_validator.rb +95 -0
  20. data/lib/herb/engine/validators/security_validator.rb +71 -0
  21. data/lib/herb/engine.rb +366 -0
  22. data/lib/herb/errors.rb +1 -1
  23. data/lib/herb/project.rb +3 -3
  24. data/lib/herb/version.rb +1 -1
  25. data/lib/herb/visitor.rb +3 -1
  26. data/lib/herb.rb +2 -0
  27. data/sig/herb/ast/helpers.rbs +16 -0
  28. data/sig/herb/ast/nodes.rbs +4 -2
  29. data/sig/herb/engine/compiler.rbs +109 -0
  30. data/sig/herb/engine/debug.rbs +38 -0
  31. data/sig/herb/engine/debug_visitor.rbs +70 -0
  32. data/sig/herb/engine/error_formatter.rbs +47 -0
  33. data/sig/herb/engine/parser_error_overlay.rbs +41 -0
  34. data/sig/herb/engine/validation_error_overlay.rbs +35 -0
  35. data/sig/herb/engine/validation_errors.rbs +45 -0
  36. data/sig/herb/engine/validator.rbs +37 -0
  37. data/sig/herb/engine/validators/accessibility_validator.rbs +19 -0
  38. data/sig/herb/engine/validators/nesting_validator.rbs +25 -0
  39. data/sig/herb/engine/validators/security_validator.rbs +23 -0
  40. data/sig/herb/engine.rbs +72 -0
  41. data/sig/herb/visitor.rbs +2 -0
  42. data/sig/herb_c_extension.rbs +7 -0
  43. data/sig/serialized_ast_errors.rbs +1 -1
  44. data/sig/serialized_ast_nodes.rbs +2 -1
  45. data/src/ast_nodes.c +4 -3
  46. data/src/ast_pretty_print.c +3 -2
  47. data/src/element_source.c +11 -0
  48. data/src/errors.c +1 -1
  49. data/src/include/ast_nodes.h +6 -4
  50. data/src/include/ast_pretty_print.h +1 -1
  51. data/src/include/element_source.h +13 -0
  52. data/src/include/errors.h +1 -1
  53. data/src/include/version.h +1 -1
  54. data/src/parser.c +3 -0
  55. data/src/parser_helpers.c +1 -0
  56. data/src/visitor.c +1 -1
  57. metadata +30 -2
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Roth
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-08-25 00:00:00.000000000 Z
10
+ date: 2025-09-05 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Powerful and seamless HTML-aware ERB parsing and tooling.
13
13
  email:
@@ -35,9 +35,21 @@ files:
35
35
  - herb.gemspec
36
36
  - lib/herb.rb
37
37
  - lib/herb/ast.rb
38
+ - lib/herb/ast/helpers.rb
38
39
  - lib/herb/ast/node.rb
39
40
  - lib/herb/ast/nodes.rb
40
41
  - lib/herb/cli.rb
42
+ - lib/herb/engine.rb
43
+ - lib/herb/engine/compiler.rb
44
+ - lib/herb/engine/debug_visitor.rb
45
+ - lib/herb/engine/error_formatter.rb
46
+ - lib/herb/engine/parser_error_overlay.rb
47
+ - lib/herb/engine/validation_error_overlay.rb
48
+ - lib/herb/engine/validation_errors.rb
49
+ - lib/herb/engine/validator.rb
50
+ - lib/herb/engine/validators/accessibility_validator.rb
51
+ - lib/herb/engine/validators/nesting_validator.rb
52
+ - lib/herb/engine/validators/security_validator.rb
41
53
  - lib/herb/errors.rb
42
54
  - lib/herb/lex_result.rb
43
55
  - lib/herb/libherb.rb
@@ -62,8 +74,21 @@ files:
62
74
  - lib/herb/warnings.rb
63
75
  - sig/herb.rbs
64
76
  - sig/herb/ast.rbs
77
+ - sig/herb/ast/helpers.rbs
65
78
  - sig/herb/ast/node.rbs
66
79
  - sig/herb/ast/nodes.rbs
80
+ - sig/herb/engine.rbs
81
+ - sig/herb/engine/compiler.rbs
82
+ - sig/herb/engine/debug.rbs
83
+ - sig/herb/engine/debug_visitor.rbs
84
+ - sig/herb/engine/error_formatter.rbs
85
+ - sig/herb/engine/parser_error_overlay.rbs
86
+ - sig/herb/engine/validation_error_overlay.rbs
87
+ - sig/herb/engine/validation_errors.rbs
88
+ - sig/herb/engine/validator.rbs
89
+ - sig/herb/engine/validators/accessibility_validator.rbs
90
+ - sig/herb/engine/validators/nesting_validator.rbs
91
+ - sig/herb/engine/validators/security_validator.rbs
67
92
  - sig/herb/errors.rbs
68
93
  - sig/herb/lex_result.rbs
69
94
  - sig/herb/location.rbs
@@ -76,6 +101,7 @@ files:
76
101
  - sig/herb/version.rbs
77
102
  - sig/herb/visitor.rbs
78
103
  - sig/herb/warnings.rbs
104
+ - sig/herb_c_extension.rbs
79
105
  - sig/serialized.rbs
80
106
  - sig/serialized_ast_errors.rbs
81
107
  - sig/serialized_ast_nodes.rbs
@@ -87,6 +113,7 @@ files:
87
113
  - src/ast_nodes.c
88
114
  - src/ast_pretty_print.c
89
115
  - src/buffer.c
116
+ - src/element_source.c
90
117
  - src/errors.c
91
118
  - src/extract.c
92
119
  - src/herb.c
@@ -99,6 +126,7 @@ files:
99
126
  - src/include/ast_nodes.h
100
127
  - src/include/ast_pretty_print.h
101
128
  - src/include/buffer.h
129
+ - src/include/element_source.h
102
130
  - src/include/errors.h
103
131
  - src/include/extract.h
104
132
  - src/include/herb.h