Comments (7)
One thing to keep in mind is that in method definitions, a trailing comma is invalid ruby syntax.
Overall I don't have a strong preference on the trailing comma in method calls though.
from ruby.
Prior to trailing function commas being valid JS, the JS style guide's approach was simply "everywhere a trailing comma is allowed, where adding it keeps diffs small - use one" - using the same rationale here would cover invalid syntax.
from ruby.
Using a trailing comma without parentheses has to be forbidden, though. It will (and has) cause errors.
from ruby.
I think the rationale that should apply is, when adding a new "last" item to a list (where the current last item can have an optional trailing comma), use whichever form results in the smallest git diff.
In @romanfuchs' examples, the former would not need one; the latter would.
If this rationale makes sense to others, then I think that we should mandate it.
from ruby.
We currently don't have a rule for trailing commas in multi-line-method calls.
# good
return I18n.t('Guest Profile Page: A note for the Host saying the potential Guest has '\
'not cancelled a reservation since joining Airbnb.',
:default => '%{guest_name} hasn’t canceled a reservation since joining '\
'Airbnb',
:guest_name => @user.smart_name)
# bad
return I18n.t('Guest Profile Page: A note for the Host saying the potential Guest has '\
'not cancelled a reservation since joining Airbnb.',
:default => '%{guest_name} hasn’t canceled a reservation since joining '\
'Airbnb',
:guest_name => @user.smart_name,
)
# good
return I18n.t(
'Guest Profile Page: A note for the Host saying the potential Guest has '\
'not cancelled a reservation since joining Airbnb.',
:default => '%{guest_name} hasn’t canceled a reservation since joining '\
'Airbnb',
:guest_name => @user.smart_name,
)
# Also good
return I18n.t(
'Guest Profile Page: A note for the Host saying the potential Guest has '\
'not cancelled a reservation since joining Airbnb.',
:default => '%{guest_name} hasn’t canceled a reservation since joining '\
'Airbnb',
:guest_name => @user.smart_name
)
from ruby.
Regarding the first argument, I think it's fine to not enforce one style here. It depends, e.g.
foo(argument1,
argument2)
looks totally fine, but if it's more like
really_long_name_including_multiple_namespaces(
argument1,
argument2
)
then that form is probably better.
from ruby.
I like the smallest diff rule, and personally prefer 1 and 3 over the other examples.
from ruby.
Related Issues (20)
- Portugueses translate
- Broken link on http://airbnb.io/projects/ruby/ HOT 5
- Method chaining HOT 1
- AutoCorrect Bug HOT 4
- Upgrade to rubocop 0.59.1 HOT 8
- Could you clarify why there is many disabled cops? HOT 1
- RiskyActiverecordInvocation false positive HOT 3
- Support ruby 2.6 HOT 1
- Allowing symbols when specifying class for Airbnb/ClassName and Airbnb/FactoryClassUseString HOT 1
- Editorconfig for airbinb ruby? HOT 1
- unable to use because of the rubocop version HOT 4
- Any prediction on when a version will be released? HOT 7
- config/default.yml does not match Rubocop of the same version
- Any plans to depend on a more recent version of rubocop?
- Ruby 3.1.3 HOT 1
- Do not set DisableByDefault
- `RuboCop::Cop::Airbnb::ModuleMethodInWrongFile` returns incorrect error message when defining a method inside singleton class
- 1 HOT 1
- Nested or Compact Class and Module naming style?
- Rubocop dependency update to make VSC extension play well with it
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ruby.