Ruby Cheat Sheet (In progress…)
Show more
Hide more
Print
Arrays
Array Create
createarr = [1, 'two', 2.0] Documentation
newarr = Array.new; Array.new(3) Documentation
Array Access
indexarr[2], arr[-1] # 2.0 Documentation
start, countarr[1, 2] # ['two',2.0] Documentation
rangearr[1..2] # ['two',2.0] Documentation
atarr.at(2) # 2.0 Documentation
firstarr.first # 1 Documentation
lastarr.last # 2.0 Documentation
takearr.take(2) # '1,'two' (First n elements) Documentation
droparr.drop(2) # 2.0 (Opposite of take) Documentation
Array Info
lengtharr.length # 3 Documentation
countarr.count # 3 Documentation
empty?arr.empty? # false Documentation
include?arr.include?('Dig') # false Documentation
Array Modify
# Adding items
pusharr.push('Dig') # [1,'two',2.0,'Dig'] Documentation
<< operatorarr << 'Dig' # [1,'two',2.0,'Dig'] Documentation
unshiftarr.unshift(0) # [0,1,'two',2.0] Documentation
insertarr.insert(2, 'Dig') # [1,'two','Dig',2.0] Documentation
# Removing items
poparr.pop # 2.0 (Removes/returns last item) Documentation
shiftarr.shift # 1 (Removes/returns first item) Documentation
delete_atarr.delete_at(1) # [1,2.0] Documentation
deletearr.delete('two') # [1,2.0] Documentation
compact (compact!)arr.compact # Removes nil values Documentation
uniqarr.uniq # Remove duplicate elements Documentation
Array Iterate
eacharr.each {|e| p "* #{e}"} # * 1 * two * 2.0 Documentation
reverse_eacharr.reverse_each {|e| p e } # 2.0 two 1 Documentation
maparr=[1,2,3]; arr.map {|e| 2*e } # [2,4,6] Documentation
inject(1..4).inject(:+) # 10 Documentation
Array Select
arr2 = [1,2,3,4,5,6]
selectarr2.select {|e| e > 3} # [4,5,6] Documentation
rejectarr2.reject {|e| e > 3} # [1,2,3] Documentation
drop_whilearr2.drop_while {|e| e < 4} # [4,5,6] Documentation
delete_if *arr2.delete_if {|e| e < 4} # [4,5,6] Documentation
keep_if *arr2.keep_if {|e| e < 4} # [1,2,3] Documentation
* destructive
Hashes
Hash Create
create with symbolsh = {a: 'one', b: 2} Documentation
create => (hash rocket)h = {:a => 'one', :b => 1} Documentation
Hash Access
[:symbol]h[:a] # one Documentation
Strings
String Info
str = 'Dig It'
lengthstr.length # 6 Documentation
countstr.count('i') # 2 Documentation
include?str.include?('ig') # true Documentation
String Modify
capitalizestr.capitalize # Dig it Documentation
upcasestr.upcase # DIG IT Documentation
downcasestr.downcase # dig it Documentation
strip' Dig it '.strip # 'Dig it' Documentation
lstrip' Dig it '.lstrip # 'Dig it ' Documentation
rstrip' Dig it '.rstrip # ' Dig it' Documentation
chomp'Dig it\n\n'.chomp # 'Dig it' Documentation
deletestr.delete("i") # 'Dg It' Documentation
substr.sub(/[iI]/, '*') # 'D*g It' Documentation
gsubstr.gsub(/[iI]/, '*') # 'D*g *t' Documentation
slicestr.slice(3..5) # 'g It' Documentation
splitstr.split(' ') # ['Dig','It'] Documentation
trstr.tr('ig', 'og') # 'Dog It' Documentation
String Convert
to_sym'dig'.to_sym # :dig Documentation
Numbers & Math
Float
f = 12345.6789
roundf.round(1) # 12345.7 Documentation
floorf.floor(1) # 12345.6 Documentation
ceilf.ceil(1) # 12345.7 Documentation
truncatef.truncate(1) # 12345.6 Documentation
to_i1.2.to_i # 1 Documentation
modulo10.0 % 3 # 1.0 Documentation
divmod11.0.divmod(4) # [2,3.0] Documentation
eql?2.0.eql?(2.0) # true Documentation
rationalize 0.3.rationalize # (3/10) Documentation
Ranges
Specify range
Include end value(1..4).to_a # [1,2,3,4] Documentation
Exclude end value(1...4).to_a # [1,2,3] Documentation
Dates & Times
Date
todayDate.today # 2023-06-07 Documentation
newDate.new(2023,6,7) # 2023-06-07 Documentation
parseDate.parse('2023-06-07') # 2023-06-07 Documentation
strptimeDate.strptime('2001-02-03', '%Y-%m-%d') # 2001-02-03 Documentation
DateTime
newDateTime.new(2023,6,7,4,5,6) # 2023-06-07T04:05:06+00:00 Documentation
strptimeDateTime.strptime('2001-02-03T04:05:06+07:00', '%Y-%m-%dT%H:%M:%S%z') # 2001-02-03T04:05:06 Documentation
Control structures
if … elsif … else … end Documentation
unless … end Documentation
case … when … else … end Documentation
while … end Documentation
until … end Documentation
do |v| break if true … Documentation
do |v| next if true … Documentation
do |v| redo if true … Documentation
Comments
# Comment # This is an example comment Documentation