Immosquare-cleaner
A meticulously crafted Ruby gem to enhance the cleanliness and structure of your project's files. This tool ensures consistency and uniformity across various formats, including Ruby, ERB, YAML, Markdown, JSON, JS, CSS, SASS, LESS, and other formats supported by Prettier.
Supported Formats
The cleaner recognizes and caters to various file formats:
File Type | File Extension | Processor |
---|---|---|
ERB |
.html.erb , .html
|
htmlbeautifier && erb-lint |
Ruby |
.rb , .rake , Gemfile , Rakefile , .axlsx , .gemspec , .ru , .podspec , .jbuilder , .rabl , .thor , config.ru , Berksfile , Capfile , Guardfile , Podfile , Thorfile , Vagrantfile
|
rubocop |
YAML |
.yml (only files in locales folder) |
ImmosquareYaml |
JS |
.js , .mjs
|
eslint |
JSON | .json |
ImmosquareExtensions |
Markdown |
.md , .md.erb
|
ImmosquareCleaner |
Others | Any other format | prettier |
Linter Configurations
You can view the specific configurations for all supported linters in the linters folder of the repository.
Installation
Prerequisite: Please be sure to have bun installed. (This is necessary to launch eslint & prettier commands.)
Add the gem in your development group in the Gemfile:
group :development do
...
gem "immosquare-cleaner"
...
end
Configuration
The config file is optional. If you want to use it, it must be placed in the config/initializers
folder and must be named immosquare-cleaner.rb
ImmosquareCleaner.config do |config|
config.rubocop_options = "--your-rubocop-options-here"
config.htmlbeautifier_options = "--your-htmlbeautifier-options-here"
config.erblint_options = "--your-erblint-options-here"
config.exclude_files = ["db/schema.rb", "db/seeds.rb", "..."]
end
Usage
To clean a specific file:
ImmosquareCleaner.clean("path/to/your/file.rb")
Rake Tasks
To clean rails project files:
rake immosquare_cleaner:clean_app
Integration with Visual Studio Code
Automate the cleaning process for all files upon saving in VS Code:
- Install the Run on Save extension from the VS Code marketplace.
- Add the following configuration to your
settings.json
in VS Code:
"emeraldwalk.runonsave": {
"commands": [
{
"match": ".*",
"cmd": "if bundle info immosquare-cleaner &>/dev/null; then bundle exec immosquare-cleaner '${file}'; else echo 'please install the gem immosquare-cleaner'; fi",
"runIn": "backend"
}
]
}
With the above, every time you save a file in VS Code, it will automatically be cleaned using immosquare-cleaner
.
Contributing
Contributions are welcome! Please open an issue or submit a pull request on our GitHub repository.
License
This gem is available under the terms of the MIT License.