Skip to content

Instantly share code, notes, and snippets.

@tdouce
Last active August 29, 2015 14:08
Show Gist options
  • Save tdouce/52d6a42b8eedde53f47e to your computer and use it in GitHub Desktop.
Save tdouce/52d6a42b8eedde53f47e to your computer and use it in GitHub Desktop.
Hash.new with a block
delete = []
create = []
def user_exists?(user_id)
[1,2].include?(user_id)
end
def create_user?(user_id)
[3,4].include?(user_id)
end
def delete_user?(user_id)
[5].include?(user_id)
end
all_users = Hash.new do |hash, user_id|
if user_exists?(user_id)
hash[user_id] = [
"existing_first_#{ user_id }",
"existing_second_#{ user_id }"
]
elsif create_user?(user_id)
# create user somewhere
hash[user_id] = [
"created_first_#{ user_id }",
"created_second_#{ user_id }"
]
create << user_id
elsif delete_user?(user_id)
# delete user somewhere
delete << user_id
end
end
[1,2,3,4,5].each do |id|
all_users[id]
end
puts "all_users"
puts all_users
puts '--------'
puts "deleted"
puts delete
puts '--------'
puts "created"
puts create
# all_users
# {1=>["existing_first_1", "existing_second_1"], 2=>["existing_first_2", "existing_second_2"], 3=>["created_first_3", "created_# second_3"], 4=>["created_first_4", "created_second_4"]}
# --------
# deleted
# 5
# --------
# created
# 3
# 4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment