summaryrefslogtreecommitdiff
path: root/doc/development
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-08-03 12:26:24 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-08-05 12:19:19 +0300
commit13cabe7184e372c6d903a836c180231d2e78f517 (patch)
treeeeda9de8e0a368efa1646189b6a6ec99977bc1df /doc/development
parentc675bdad95668b891aec51eac7afbeec72873891 (diff)
downloadgitlab-ce-13cabe7184e372c6d903a836c180231d2e78f517.tar.gz
Add newlines styleguide for Ruby codedz-newlines-styleguide
Diffstat (limited to 'doc/development')
-rw-r--r--doc/development/newlines_styleguide.md102
1 files changed, 102 insertions, 0 deletions
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
+```