- Soft tabs, two space indent
- Lines shorter than 80 characters
- No spaces after [( and before )]
- Methods: snake_case
- Classes/Modules: CamelCase
- Constants: SCREAMING_SNAKE_CASE
- Space after commas: foo(a, b)
Slide 4
Slide 4 text
“Idioms”
Slide 5
Slide 5 text
if answer == 42
# ...
elsif foo == 'foo'
# ...
else
# ...
end
Slide 6
Slide 6 text
if answer == 42 then # ...
elsif foo == 'foo' then # ...
else # ...
end
Slide 7
Slide 7 text
if answer == 42 then
# ...
elsif foo == 'foo' then
# ...
else
# ...
end
Slide 8
Slide 8 text
if !correct
# ...
end
Slide 9
Slide 9 text
unless correct
# ...
end
Slide 10
Slide 10 text
unless correct
# ...
else
# ...
end
Slide 11
Slide 11 text
unless correct
single_line_of_something
end
Slide 12
Slide 12 text
single_line_of_something unless correct
single_line_of_something if correct
Slide 13
Slide 13 text
message = if correct
"You are right!"
else
"Sorry, that's wrong."
end
Slide 14
Slide 14 text
if !flaky_value.nil?
# ...
end
Slide 15
Slide 15 text
if flaky_value
# ...
end
Slide 16
Slide 16 text
if env == :production or env == :development
# ...
end
Slide 17
Slide 17 text
if [:production, :development].include?(env)
# ...
end
Slide 18
Slide 18 text
String(123)
Slide 19
Slide 19 text
123.to_s
Slide 20
Slide 20 text
123.is_a? String
Slide 21
Slide 21 text
123.respond_to? :to_s
Slide 22
Slide 22 text
def destroy_universe
# ...
end
destroy_universe
def destroy_planet(planet)
# ...
end
destroy_planet(:mars)
class Store
class << self
def advanced_search
# ...
end
end
end
Slide 38
Slide 38 text
Struct.new("Point", :x, :y)
Slide 39
Slide 39 text
class Point < Struct.new(:x, :y)
end
origin = Point.new(0,0)
Slide 40
Slide 40 text
Point = Struct.new(:x, :y) do
def to_s
"[#{x}, #{y}]"
end
end
Point.new(0,0).to_s
# => "[0, 0]"
Slide 41
Slide 41 text
class Parent
@@class_var = "parent"
def self.print_class_var
puts @@class_var
end
end
class Child < Parent
@@class_var = "child"
end
Parent.print_class_var
# => "child"
Slide 42
Slide 42 text
upcase_chars = []
%w(a b c).each do |char|
upcase_chars << char.upcase
end
Not so great