I don't think this is quite right. First, the violation of parenthesis is a different beast, and not something that relates to braces. I support a cop for that of course, as it's bad :) 

For the braces, you can't just check the last argument. Here's am ambiguous function where we may need to disambiguate the arguments:

``` ruby
def sort_of_validates(name, options, parameters = {})
 puts "NAME: #{name}"
 puts "OPTIONS: #{options}"
 puts "PARAMETERS: #{parameters}"
end

sort_of_validates :name, presence: true, length: { within: 1..10 }

# NAME: name
# OPTIONS: {:presence=>true, :length=>{:within=>1..10}}
# PARAMETERS: {}

sort_of_validates :name, { presence: true }, { length: { within: 1..10 } }

sort_of_validates :name, { presence: true }, { length: { within: 1..10 } }
# NAME: name
# OPTIONS: {:presence=>true}
# PARAMETERS: {:length=>{:within=>1..10}}
```