newlines_styleguide.md 1.33 KB
Newer Older
Amy Qualls's avatar
Amy Qualls committed
1 2 3
---
stage: none
group: unassigned
4
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
Amy Qualls's avatar
Amy Qualls committed
5 6
---

7
# Newlines style guide
8 9 10

This style guide recommends best practices for newlines in Ruby code.

11
## Rule: separate code with newlines only to group together related logic
12 13 14 15 16 17 18

```ruby
# bad
def method
  issue = Issue.new

  issue.save
19

20
  render json: issue
21 22 23 24 25 26 27 28
end
```

```ruby
# good
def method
  issue = Issue.new
  issue.save
29

30
  render json: issue
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
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
```