Add newlines styleguide for Ruby code
This commit is contained in:
parent
c675bdad95
commit
13cabe7184
2 changed files with 104 additions and 0 deletions
|
@ -459,6 +459,7 @@ merge request:
|
|||
- multi-line method chaining style **Option B**: dot `.` on previous line
|
||||
- string literal quoting style **Option A**: single quoted by default
|
||||
1. [Rails](https://github.com/bbatsov/rails-style-guide)
|
||||
1. [Newlines styleguide][newlines-styleguide]
|
||||
1. [Testing](doc/development/testing.md)
|
||||
1. [CoffeeScript](https://github.com/thoughtbot/guides/tree/master/style/coffeescript)
|
||||
1. [SCSS styleguide][scss-styleguide]
|
||||
|
@ -530,6 +531,7 @@ available at [http://contributor-covenant.org/version/1/1/0/](http://contributor
|
|||
[rss-naming]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#naming
|
||||
[doc-styleguide]: doc/development/doc_styleguide.md "Documentation styleguide"
|
||||
[scss-styleguide]: doc/development/scss_styleguide.md "SCSS styleguide"
|
||||
[newlines-styleguide]: doc/development/newlines_styleguide.md "Newlines styleguide"
|
||||
[gitlab-design]: https://gitlab.com/gitlab-org/gitlab-design
|
||||
[free Antetype viewer (Mac OSX only)]: https://itunes.apple.com/us/app/antetype-viewer/id824152298?mt=12
|
||||
[`gitlab8.atype` file]: https://gitlab.com/gitlab-org/gitlab-design/tree/master/current/
|
||||
|
|
102
doc/development/newlines_styleguide.md
Normal file
102
doc/development/newlines_styleguide.md
Normal file
|
@ -0,0 +1,102 @@
|
|||
# Newlines styleguide
|
||||
|
||||
This style guide recommends best practices for newlines in Ruby code.
|
||||
|
||||
## Rule: separate code with newlines only when it makes sense from logic perspectice
|
||||
|
||||
```ruby
|
||||
# bad
|
||||
def method
|
||||
issue = Issue.new
|
||||
|
||||
issue.save
|
||||
|
||||
render json: issue
|
||||
end
|
||||
```
|
||||
|
||||
```ruby
|
||||
# good
|
||||
def method
|
||||
issue = Issue.new
|
||||
issue.save
|
||||
|
||||
render json: issue
|
||||
end
|
||||
```
|
||||
|
||||
## Rule: separate code and block with newlines
|
||||
|
||||
### Newline before block
|
||||
|
||||
```ruby
|
||||
# bad
|
||||
def method
|
||||
issue = Issue.new
|
||||
if issue.save
|
||||
render json: issue
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
```ruby
|
||||
# good
|
||||
def method
|
||||
issue = Issue.new
|
||||
|
||||
if issue.save
|
||||
render json: issue
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
## Newline after block
|
||||
|
||||
```ruby
|
||||
# bad
|
||||
def method
|
||||
if issue.save
|
||||
issue.send_email
|
||||
end
|
||||
render json: issue
|
||||
end
|
||||
```
|
||||
|
||||
```ruby
|
||||
# good
|
||||
def method
|
||||
if issue.save
|
||||
issue.send_email
|
||||
end
|
||||
|
||||
render json: issue
|
||||
end
|
||||
```
|
||||
|
||||
### Exception: no need for newline when code block starts or ends right inside another code block
|
||||
|
||||
```ruby
|
||||
# bad
|
||||
def method
|
||||
|
||||
if issue
|
||||
|
||||
if issue.valid?
|
||||
issue.save
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
```
|
||||
|
||||
```ruby
|
||||
# good
|
||||
def method
|
||||
if issue
|
||||
if issue.valid?
|
||||
issue.save
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
Loading…
Reference in a new issue