bbatsov/ruby-style-guide — Issue #82: Empty line before each control structure
Author: Applicat
Created: 2012-03-03 22:19:59+00:00
State: open

Regarding breaking up a method into logical paragraphs how about an empty line before control structures like if, while, return / return values, break, maybe also the ternary operator, etc. UNLESS it's the first line at the current "block".

Code sample:

```ruby
def enforce_ssl?(req)
enforce = false
keys_by_type = {
:hosts => [:only_hosts, :except_hosts], :path => [:only, :except],
:methods => [:only_methods, :except_methods]
}

if !keys_by_type.values.flatten.compact.any? { |option| @options[option] }
return true
end

keys_by_type.keys.each do |type|
enforce = enforce_ssl_for?(keys_by_type[type], req)

next unless enforce

keys_by_type.each do |other_type,sub_keys|
next if type == other_type || !sub_keys.any? { |option| @options[option] }

enforce = enforce_ssl_for?(sub_keys, req)

break unless enforce
end

break if enforce
end

enforce
end
```