Skip to content

Instantly share code, notes, and snippets.

@marcoranieri
Created July 11, 2019 10:19
Show Gist options
  • Save marcoranieri/b08b627e6ee2de6665e7753152c4af2e to your computer and use it in GitHub Desktop.
Save marcoranieri/b08b627e6ee2de6665e7753152c4af2e to your computer and use it in GitHub Desktop.
ITERATORS & BLOCKS
musicians = ['David Gilmour', 'Roger Waters', 'Richard Wright', 'Nick Mason']
puts musicians.length
# CRUD
# create
musicians << "Eminem"
puts musicians.length
#read
puts musicians[1]
#update
puts musicians[0] = "50cent"
#delete
musician.delete_at(2)
musician.delete("Roger Waters")
musicians = [
'David Gilmour',
'Roger Waters',
'Richard Wright',
'Nick Mason'
]
counter = 0
musicians.each do |musician|
if musician.start_with?("R")
counter += 1
end
end
# r_musicians = musicians.count do |musician|
# # musician[0] == "R"
# musician.start_with?("R")
# end
p r_musicians
musicians = ['David Gilmour',
'Roger Waters',
'Richard Wright',
'Nick Mason'
]
musicians.each do |musician|
puts "- #{musician}"
end
musicians.each_with_index do |musician, index|
puts "#{index + 1}. #{musician}"
end
musicians = [
'David Gilmour',
'Roger Waters',
'Richard Wright',
'Nick Mason'
]
first_names = musicians.map do |musician|
#'David Gilmour'.split => ["David", "Gilmour"]
musician.split.first
end
p first_names
# upcased_musicians = musicians.map do |musician|
# musician.upcase
# end
## Map behaviour using .EACH
# upcased_musicians = []
# musicians.each do |musician|
# upcased_musicians << musician.upcase
# end
# p musicians
# p upcased_musicians
musicians = ['David Gilmour', 'Roger Waters', 'Richard Wright', 'Nick Mason']
range = (1..10)
puts (1...10).to_a
for index in (0...musicians.length)
puts "- #{musicians[index]}"
end
musicians = [
'David Gilmour',
'Roger Waters',
'Richard Wright',
'Nick Mason'
]
r_musicians = musicians.select do |musician|
musician.start_with?("R")
end
p r_musicians
# .map [] -> [] same size
# .count [] -> Integer
# .select [] -> []
def timer
start_time = Time.now
yield # workload
end_time = Time.now
"Elapsed time: #{end_time - start_time}"
puts "_________"
end
puts timer do
puts "Task 1"
sleep(2)
puts "Task 1 Done"
end
puts timer do
puts "Task 2"
sleep(1)
puts "Task 2 Done"
end
def greet(name)
capitalized_name = "#{name.capitalize}"
yield(capitalized_name)
end
j_greet = greet('john') do |name|
"Hello, #{name}"
end
p_greet = greet('paul') do |name|
"Ciao, #{name}"
end
puts j_greet
puts p_greet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment