Ruby Cheatsheet
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..." }