Question: 1. Look at the array_2_hash method in the lib/hashes.rb file. You will notice that this method takes two inputs. emails: an array of email addresses

1. Look at the array_2_hash method in the lib/hashes.rb file.

You will notice that this method takes two inputs.

emails: an array of email addresses of type string. Example: ["bobsmith@example.com"]

contacts: a hash for contacts. The keys for this hash will be the contact names as type string and the values will be the contact email addresses as type strings. Example: {"Bob Smith":"bobsmith@example.com"}

Assumptions: The array and hash both contain the same number of items and will be already in the correct order.

Hint: Look at the rspec tests to see the inputs that will be tested.

Write the Ruby code in this method that will return the contacts hash with emails populated from the array.

Run rspec in the terminal window to test. Once everything is passing, upload your screenshot to this question.

hashes_spec.rb:

require 'hashes.rb'

RSpec.configure do |config|

config.filter_run_excluding :disabled => true

end

describe 'Ruby Hashes Part I' do

describe "array_2_hash" do

it "should be defined" do

expect { array_2_hash(["bobsmith@example.com","sallyfield@example.com","markdole@example.com"], {'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''}) }.not_to raise_error

end

it "returns the correct hash [20 points]" , points: 20 do

expect(array_2_hash(["bobsmith@example.com","sallyfield@example.com","markdole@example.com"], {'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''})).to be_a_kind_of Hash

expect(array_2_hash(["bobsmith@example.com","sallyfield@example.com","markdole@example.com"], {'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''})).to eq({'Bob Smith':'bobsmith@example.com', 'Sally Field':'sallyfield@example.com', 'Mark Dole':'markdole@example.com'})

end

it "works on the empty array [10 points]" , points: 10 do

expect { array_2_hash([], {'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''}) }.not_to raise_error

expect(array_2_hash([], {'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''})).to eq({'Bob Smith':'', 'Sally Field':'', 'Mark Dole':''})

end

end

end

describe 'Ruby Hashes Part II' do

describe "array2d_2_hash", :disabled => true do

it "should be defined" do

expect { array2d_2_hash([["bobsmith@example.com", "555-555-5555"],["sallyfield@example.com","111-111-1111"]], {'Bob Smith':{}, 'Sally Field':{}}) }.not_to raise_error

end

it "returns the correct hash [30 points]" , points: 30 do

expect(array2d_2_hash([["bobsmith@example.com", "555-555-5555"],["sallyfield@example.com","111-111-1111"]], {'Bob Smith':{}, 'Sally Field':{}})).to be_a_kind_of Hash

expect(array2d_2_hash([["bobsmith@example.com", "555-555-5555"],["sallyfield@example.com","111-111-1111"]], {'Bob Smith':{}, 'Sally Field':{}})).to eq({:"Bob Smith"=>{:email=>"bobsmith@example.com", :phone=>"555-555-5555"}, :"Sally Field"=>{:email=>"sallyfield@example.com", :phone=>"111-111-1111"}})

end

it "works on the empty array [10 points]" , points: 10 do

expect { array2d_2_hash([[]], {'Bob Smith':{}, 'Sally Field':{}}) }.not_to raise_error

expect(array2d_2_hash([[]], {'Bob Smith':{}, 'Sally Field':{}})).to eq({:"Bob Smith"=>{}, :"Sally Field"=>{}})

end

end

end

describe 'Ruby Hashes Part III' do

describe "hash_2_array", :disabled => true do

it "should be defined" do

expect { hash_2_array({:"Bob Smith"=>{:email=>"bobsmith@example.com", :phone=>"555-555-5555"}, :"Sally Field"=>{:email=>"sallyfield@example.com", :phone=>"111-111-1111"}}) }.not_to raise_error

end

it "returns the correct array of arrays [20 points]" , points: 20 do

expect(hash_2_array({:"Bob Smith"=>{:email=>"bobsmith@example.com", :phone=>"555-555-5555"}, :"Sally Field"=>{:email=>"sallyfield@example.com", :phone=>"111-111-1111"}})).to be_a_kind_of Array

expect(hash_2_array({:"Bob Smith"=>{:email=>"bobsmith@example.com", :phone=>"555-555-5555"}, :"Sally Field"=>{:email=>"sallyfield@example.com", :phone=>"111-111-1111"}})).to eq([["bobsmith@example.com","sallyfield@example.com"],["555-555-5555","111-111-1111"],["Bob Smith","Sally Field"]])

end

it "works on the empty hash [10 points]" , points: 10 do

expect { hash_2_array({}) }.not_to raise_error

expect(hash_2_array({})).to eq([[],[],[]])

end

end

end

hashes.rb

# RubyHashes

# Part I

def array_2_hash emails, contacts

# YOUR CODE HERE

end

# Part II

def array2d_2_hash contact_info, contacts

# YOUR CODE HERE

end

# Part III

def hash_2_array contacts

# YOUR CODE HERE

end

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!