Files
git-hardening/.crosslink/rules/ruby.md
2026-03-30 13:39:40 +02:00

48 lines
994 B
Markdown

### Ruby Best Practices
#### Code Style
- Follow Ruby Style Guide (use RuboCop)
- Use 2 spaces for indentation
- Prefer symbols over strings for hash keys
- Use `snake_case` for methods and variables
```ruby
# GOOD: Idiomatic Ruby
class UserService
def initialize(repository)
@repository = repository
end
def find_user(id)
@repository.find(id)
rescue ActiveRecord::RecordNotFound
nil
end
end
# BAD: Non-idiomatic
class UserService
def initialize(repository)
@repository = repository
end
def findUser(id) # Wrong naming
begin
@repository.find(id)
rescue
return nil
end
end
end
```
#### Error Handling
- Use specific exception classes
- Don't rescue `Exception` (too broad)
- Use `ensure` for cleanup
#### Security
- Use parameterized queries (ActiveRecord does this by default)
- Sanitize user input in views (Rails does this by default)
- Never use `eval` or `send` with user input
- Use `strong_parameters` in Rails controllers