Contributing to Rubyzen
Setup
git clone https://github.com/perrystreetsoftware/Rubyzen.git
cd Rubyzen
bundle install
Running Tests
# Rubyzen's unit tests
bundle exec rspec spec/
# Sample project lint rules (expected to fail — intentional violations)
bundle exec rspec sample_project/spec/
Project Structure
lib/rubyzen/ — Source code (declarations, collections, providers, matchers, parsers, cache)
spec/ — Unit tests for Rubyzen's own API
sample_project/ — Sample app with intentional violations and lint rules demonstrating Rubyzen
Making Changes
- Fork the repository
- Create a branch (
git checkout -b my-change)
- Make your changes
- Run the tests (
bundle exec rspec spec/)
- Commit and push
- Open a Pull Request
Guidelines
- Follow existing code patterns (Declarations, Collections, Providers architecture)
- Add tests for new features
- Keep the API surface minimal and consistent
- Use YARD comments on public methods