Sha256: ee9c11c860f28cb60538441cfd6ee167e7bf231c7f02a06ff38f2f72b4bff9aa
Contents?: true
Size: 1.96 KB
Versions: 1
Compression:
Stored size: 1.96 KB
Contents
# SyntaxTree::ERB [](https://github.com/davidwessman/syntax_tree-erb/actions/workflows/main.yml) [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) support for ERB. Currently handles - ERB - Tags with and without output - Tags inside strings - `if`, `elsif`, `else` and `unless` statements - blocks - comments - Formatting of the ruby-code is done by `syntax_tree` - HTML - Tags with attributes - Tags with and without closing tags - Comments - Vue - Attributes, events and slots using `:`, `@` and `#` respectively - Text output ## Unhandled cases - Please add to this pinned issue (https://github.com/davidwessman/syntax_tree-erb/issues/28) or create a separate issue if you encounter formatting or parsing errors. ## Installation Add this line to your application's Gemfile: ```ruby gem "w_syntax_tree-erb", "~> 0.9", require: false ``` ## Usage ```sh bundle exec stree --plugins=erb "./**/*.html.erb" ``` From code: ```ruby require "syntax_tree/erb" pp SyntaxTree::ERB.parse(source) # print out the AST puts SyntaxTree::ERB.format(source) # format the AST ``` ## List all parsing errors In order to get a list of all parsing errors (which needs to be fixed before the formatting works), this script can be used: ```ruby #!/bin/ruby require "syntax_tree/erb" failures = [] Dir .glob("./app/**/*.html.erb") .each do |file| puts("Processing #{file}") begin source = SyntaxTree::ERB.read(file) SyntaxTree::ERB.parse(source) SyntaxTree::ERB.format(source) rescue => exception failures << { file: file, message: exception.message } end end puts failures ``` ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/davidwessman/syntax_tree-erb. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
w_syntax_tree-erb-0.9.0 | README.md |