0.0
No release in over 3 years
Hubbado style guides and shared style configs.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 0

Runtime

 Project Readme

hubbado-style

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file lib/hubbado/style. To experiment with that code, run bin/console for an interactive prompt.

TODO: Delete this and the text above, and describe your gem

Installation

Add this line to your application's Gemfile:

group :test, :development do
  gem 'hubbado-style'
end

Or, for a Ruby library, add this to your gemspec:

spec.add_development_dependency 'hubbado-style'

And then execute:

$ bundle

Or install it yourself as:

$ gem install hubbado-style

Usage

Create a .rubocop.yml with the following directives:

inherit_gem:
  hubbado-style:
    - default.yml

The inherited rubocop canfiguration can be overridden in the .rubocop.yml but this is discouraged.

Now, run:

$ bundle exec rubocop

You do not need to include rubocop directly in your application's dependencies. Hubbado-style will include a specific version of rubocop and rubocop-rspec that is shared across all projects.

Bug reports and pull requests are welcome on GitHub at https://github.com/hubbado/hubbado-style.

Styleguide

The Rubocop configuration should guide you most of the way, but there are somethings that we haven't been able to configure in Rubocop, which are detailed below.

Long lists of arguments

If a list of related arguments cannot fit on a single line, then each argument should be placed on it's own line.

Rationale: A mixture of related horizontal and vertical information is harder to scan.

# bad
some_method(
  long_argument1: value1, long_argument2: value2, long_argument3: value3, long_argument4: value4,
  long_argument5: value5
)

# good
some_method(
  long_argument1: value1,
  long_argument2: value2,
  long_argument3: value3,
  long_argument4: value4,
  long_argument5: value5
)

Multiline bracketed method calls

Do not place method arguments next to the opening bracket if all the arguments do not fit on one line.

Rationale: A mixture of related horizontal and vertical information is harder to scan.

# bad
some_method(arg1,
  arg2, arg3, arg4)

#good
some_method(
  arg1, arg2, arg3, arg4
)

Methods calls without brackets

If the method call does not use brackets, different types of arguments can be placed one different lines. If the full set of related arguments does not fit on one line they should be placed one per line.

For example, in the following method calls the first method argument is the principle, and most important argument.

cell Somecell, model,
  option_one: value_one, option_two: value_two, ...
instance_double SomeObject,
  property_one: some_value,
  property_two: some_other_value