From diaspora* project wiki
Revision as of 04:20, 16 March 2015 by Jhass (talk | contribs) (First version)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
»» Work in progress
This article is a work in progress, it may contain incomplete or inaccurate information. There may be additional information on the talk page.

Please adhere to the following styleguides for your contributions. Transform existing code you touch to follow them.


We follow bbatsov's styleguide for Ruby, with the following derivations and choices:

  • Maximum line length is 120 characters.
  • Always use raise, never use fail. Use abort to exit on a fatal error condition.
  • No assignment in conditions, not even so called (safe = assignment).
  • No enforced variable names for inject, use names that properly describe the data.
  • Do not use to define exceptions, use the regular class keyword.
  • Do not add spaces inside string interpolation, "a #{b} c" is valid, "a #{ b } c" is not.
  • Do not do control flow with && and || outside conditionals. The only valid uses of && and || are in a condition and to compute a predicate that’s returned from a method.
  • Do not add spaces around = when used to define default arguments in method definitions. def foo(a, b=c) is valid, def foo(a, b = c) is not.
  • Default to using double quotes ("), only use single quotes (') when you want to use a double quote in your string. Use a percent literal if you want to use both in the string.
  • Use the %i percent literal to define an array of symbols.
  • Prefer Hash#has_key? and Hash#has_value? over Hash#key? and Hash#value?.
  • Prefer String#% over Kernel#sprintf.
  • Prefer inject over reduce.
  • Do not put put a space between the opening brace and a block argument. foo {|a| } is valid, foo { |a| } is not.
  • Do not put a space after the opening brace or before the closing brace of a hash literal. {foo: bar} is valid, { foo: bar } is not.
  • Use Weirichs rule when deciding about about the block syntax to use.
  • Use an appropriate name for the argument when defining an operator method, don't just default to other.


To be decided, please see


To be decided, please see