Skip to content

Instantly share code, notes, and snippets.

@rodloboz
Created June 28, 2018 03:07
Show Gist options
  • Save rodloboz/a130402b8b3f37aab94885f3c1e1e34b to your computer and use it in GitHub Desktop.
Save rodloboz/a130402b8b3f37aab94885f3c1e1e34b to your computer and use it in GitHub Desktop.
# Ranges
range_1 = (1..10).to_a # includes the last element
p range_1
range_2 = (1...10).to_a # excludes the last element
p range_2
# Arrays
# index 0 1 2 3
surfers = [ "Kelly Slater", "Mick Fanning", "John Florence", "Gabriel Medina"]
p surfers
# alternative syntax
# %w(Kelly\ Slater)
puts surfers.size
# Array#length / Array#count
puts surfers[1]
# surfers.push("Hugo Collado")
surfers << "Hugo Collado"
p surfers
# Reading
puts surfers[4]
# Updating
surfers[4] = "Hugo C. Centurion"
p surfers
# surfers.last or surfers[-1]
# insert at specific index
surfers.insert(2, "Julian Leopold")
p surfers
# Iterating over indexes with for
for index in (0...surfers.length)
surfer = surfers[index]
puts "#{index + 1} - #{surfer}"
end
# Iterating over elements
for surfer in surfers
puts "Watching #{surfer}"
end
def big_sort
(0..1000000).sort
end
def timer
start_time = Time.now
big_sort
yield # calls the block
# once it's done executing the block
# it resumes the timer execution
end_time = Time.now
end_time - start_time
end
time = timer do
(0..1000000).sort
end
puts time
def greet(name)
capitalized_name = name.capitalize
# passes capitalized_name into the
# block as an argument
yield(capitalized_name)
puts "[DEBUG] Block completed!"
end
greet("emma") do |capitalized_name|
puts "Hello, #{capitalized_name}"
end
surfers = [ "Kelly Slater", "Mick Fanning", "John Florence", "Gabriel Medina"]
surfers.each do |surfer|
puts "Hello, #{surfer}!"
end
# do end
surfers.each { |surfer| puts "Hello, #{surfer}" }
# each_with_index : value, index
surfers.each_with_index do |surfer, index|
puts "#{index + 1} - #{surfer}"
end
# map
upcased_surfers = surfers.map do |surfer|
surfer.upcase
end
p surfers
p upcased_surfers
surfers_first_names = surfers.map do |surfer|
first_name = surfer.split[0]
end
p surfers_first_names
# count will count element when return value is true
# return an integer
f_surfers_count = surfers.count do |surfer|
last_name = surfer.split[1].downcase
last_name.start_with?('f') # true
end
p f_surfers_count
# select => returns an array
surfers_with_last_name_f = surfers.select do |surfer|
last_name = surfer.split[1].downcase
last_name.start_with?('f') # true
end
p surfers_with_last_name_f
# find => returns the first element
# that evaluates to true
mistery_surfer = surfers.find do |surfer|
last_name = surfer.split[1].downcase
last_name.start_with?('f') # true
end
p mistery_surfer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment