{"id":16074368,"url":"https://github.com/mohamedsabry0/rulint","last_synced_at":"2026-05-15T13:34:26.836Z","repository":{"id":132394568,"uuid":"287065127","full_name":"mohamedSabry0/ruLint","owner":"mohamedSabry0","description":"Basic Ruby conventional rules linter. Using Ruby. From scratch using regex with OOP structure and unit testing.","archived":false,"fork":false,"pushed_at":"2020-08-27T14:26:52.000Z","size":63,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-09-02T17:50:11.202Z","etag":null,"topics":["rspec","ruby"],"latest_commit_sha":null,"homepage":"https://repl.it/@mohammadSabri/ruLint","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohamedSabry0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-12T16:40:40.000Z","updated_at":"2023-03-23T12:45:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd63dfe5-04d3-4d76-b1ec-d13b5f7ffcdc","html_url":"https://github.com/mohamedSabry0/ruLint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mohamedSabry0/ruLint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedSabry0%2FruLint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedSabry0%2FruLint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedSabry0%2FruLint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedSabry0%2FruLint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohamedSabry0","download_url":"https://codeload.github.com/mohamedSabry0/ruLint/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedSabry0%2FruLint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33068594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rspec","ruby"],"created_at":"2024-10-09T08:42:49.010Z","updated_at":"2026-05-15T13:34:26.820Z","avatar_url":"https://github.com/mohamedSabry0.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ruLint\nsimple ruby linter with basic functionalities that will look only\nfor naming conventions for variables, classes and modules\n\n## Introduction Video\n[Loom Link](https://www.loom.com/share/c976b700082e426993e9bafcb9fe7f1f)\n\n[![Status](https://img.shields.io/badge/status-active-success.svg)](https://github.com/mohamedSabry0/ruLint)\n[![Github Issues](https://img.shields.io/badge/GitHub-Issues-orange)](https://github.com/umohamedSabry0/ruLint/issues)\n[![GitHub2 Pull Requests](https://img.shields.io/badge/GitHub-Pull%20Requests-blue)](https://github.com/mohamedSabry0/ruLint/pulls)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)\n\n## Getting Started\n\n### The Followed Style Guide\n- [Guide](https://rubystyle.guide/#camelcase-classes)\n- Please refer to this guide for any concerns about the followed rules for this linter\n\n### Live Demo\n- [Demo](https://repl.it/@mohammadSabri/ruLint)\n- to run online type `bin/ruLint` in the interactive shell\n- to run tests online type `rspec` in the interactive shell\n\nTo get a local copy up and running follow these simple example steps.\n\n### Prerequisites\n\n- Text Editor (VSCode is suggested.)\n- [Ruby](https://ruby-doc.org/downloads/)\n\n### Setup\n\n- Install [git](https://git-scm.com/downloads)\n- Open Terminal\n- Change directory to folder to download repository\n- Use `cd \u003cfile-path\u003e`\n- Run `git clone https://github.com/mohamedSabry0/ruLint.git`\n- Install [Ruby](https://ruby-doc.org/downloads/)\n- `cd ruLint`\n\n#### Testing\n- Install `gem install rspec`\n- Initialize `rspec --init`\n- create a new file on the project's root directory `touch example.rb`\n- copy all the code provided in  [Example Input File section](#example-input-file) and make sure to include all the lines\n- paste that code in the `example.rb` and save \n- Run `rspec`\n\n**Note: without the mentioned file all the tests will fail**\n\n### Use Instruction\n#### using the example\n- copy the code example provided below in [Example Input File section](#example-input-file) and add it to a new ruby file in a directory\n- in terminal `cd` to that `dir` then apply the following steps:\n- run `bin/ruLint` command\n**or**\n- give it file paths as arguments to run on specific ones e.g:\n`bin/ruLint file1 dir/file2.rb`\n\n#### a bit shorter running command\n- if you have the following directory in your PATH \n`/usr/local/bin/`\n\n- you can run this in your terminal from the project directory\n`ln -s $PWD/bin/ruLint /usr/local/bin/`\n\n- then simply use command `ruLint` instead of `bin/ruLint`\n\n### Example Input File\n```\n# rubocop:disable all\nclass bad_example\nend\n\nclass bad; end\n\nclass Bad_Example\nend\n\nclass GoodExample\n    var = 1\n    sec += 1\nend\n\nclass Mu_Foo; end\n\nclass BADNAME\nend\n\nclass badname; end\nclass GoodName; end\n\nmodule bad_example\nend\n\nmodule bad; end\n\nmodule Bad_Example\nend\n\nmodule GoodExample\n    var = 1\n    sec += 1\nend\n\nmodule Mu_Foo; end\n\nmodule BADNAME\nend\n\nmodule badname; end\nmodule GoodName; end\n\n```\n\n### Example Output\n```\nnaming_warning @(example.rb, line#2):\n'bad_example' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#5):\n'bad' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#7):\n'Bad_Example' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#15):\n'Mu_Foo' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#20):\n'badname' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#23):\n'bad_example' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#26):\n'bad' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#28):\n'Bad_Example' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#36):\n'Mu_Foo' is not a good class/module name. Follow CamelCase naming convention\n\nnaming_warning @(example.rb, line#41):\n'badname' is not a good class/module name. Follow CamelCase naming convention\n\n\n```\n\n## Built With\n\n- Ruby\n\n### Author\n\n👤 **Mohamed Sabry**\n\n- Github: [@mohamedSabry0](https://github.com/mohamedSabry0)\n- Twitter: [@mohsmh0](https://twitter.com/mohsmh0)\n- Linkedin: [Mohamed Sabry](https://www.linkedin.com/in/mohamed-sabry-1322b1105/)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome! Start by:\n\n- Forking the project\n- Cloning the project to your local machine\n- `cd` into the project directory\n- Run `git checkout -b your-branch-name`\n- Make your contributions\n- Push your branch up to your forked repository\n- Open a Pull Request with a detailed description to the development branch of the original project for a review\n\n\n## Show your support\n\nGive a ⭐️ if you like this project!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedsabry0%2Frulint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedsabry0%2Frulint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedsabry0%2Frulint/lists"}