Ruby Cheatsheet

Variables

Variable names use underscores between words for complex names

number = 5
my_number = 7

@instance # <= Accessible to an instance of an object
local # <= Accessible only to the current context
CONSTANT # <= Variable that once set, never changes
$global # <= Accessible just about anywhere
@@class # <=

person1 = person2 # <= both reference same object
person2 = person1.dup # <= shallow copy of person1
person1.freeze # <= prevents changes to person1

Conditional Tests (if)

Place if, elsif, else, and end on separate lines.

if number == 5
puts "Success"
elsif number == 7
puts "Praxis FTW"
else
puts "FAIL"
end

Operators

**   # raise to power
! # not
% # modulus
+ # addition
- # subtraction
| # pipe
? : # conditional expression (ternary)
^ # carrot
> # greater than
>= # greater than or equal to
< # less than
<= # less than or equal to
&& # boolean AND
|| # boolean OR
.. # inclusive range (3..10) includes 3 and 10
... # exclusive range (3...10) excludes 3 and 10
= # assignment
not # logical NOT
and # logical AND
or # logical OR
<=> # comparison

Method Calls

Parentheses are optional, but make method calls more readable.

puts "Word"
puts("Word")

Method Definitions

Methods can return values which can be assigned to a variable.

def make_positive(number)
if number < 0
-number
end
number
end

puts make_positive(-5)

Hashes

Hashes hold objects and are referenced by their key assignment.

hash = {}
other_hash = {"VA" => "Virginia", "NC" => "North Carolina"}

hash.length
hash.empty?

other_hash.has_key?('VA')
other_hash['VA']
other_hash.values
other_hash.keys

Arrays

Arrays hold objects and are referenced by their position, starting with position 0.

empty_array = Array.new
another_array = [1, 2, "three"]

empty_array[0] # <= nil
another_array[2] # <= "three"

another_array.last
another_array[0] = "nonsense" # <= sets value at position 0 to
"nonsense"

Iterators

Iterators allow you to repeat an action.

[1, 2, 3].each do |value|
puts value
end

(1..3).each { |value| puts value }

["praxis", "program"].collect { |value| puts value.capitalize }

3.times { |i| puts "There's no place like home..." }