diff options
author | Robert Speicher <robert@gitlab.com> | 2016-08-08 23:29:56 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-08-08 23:29:56 +0000 |
commit | fa95d9e48bcbe6c0958d8faf2906ec1c3482440b (patch) | |
tree | 60aa7c8307c8221d8d6ed4489c45ade142c0ac1e | |
parent | 1eccfde7dfc96a6d824fc132d5a27d1f2d661454 (diff) | |
parent | 13cabe7184e372c6d903a836c180231d2e78f517 (diff) | |
download | gitlab-ce-fa95d9e48bcbe6c0958d8faf2906ec1c3482440b.tar.gz |
Merge branch 'dz-newlines-styleguide' into 'master'
Add newlines styleguide for Ruby code
See merge request !5636
-rw-r--r-- | CONTRIBUTING.md | 2 | ||||
-rw-r--r-- | doc/development/newlines_styleguide.md | 102 |
2 files changed, 104 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d94673e82ce..fbc8e15bebf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -465,6 +465,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. [JavaScript (ES6)](https://github.com/airbnb/javascript) 1. [JavaScript (ES5)](https://github.com/airbnb/javascript/tree/master/es5) @@ -537,6 +538,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/ diff --git a/doc/development/newlines_styleguide.md b/doc/development/newlines_styleguide.md new file mode 100644 index 00000000000..e03adcaadea --- /dev/null +++ b/doc/development/newlines_styleguide.md @@ -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 +``` |