Coding assignment | Computer Science homework help

Coding Assignment # 4 

1. The (unnamed) customer loved the API you produced in Assignment# 3, but he/she would like 

to be able to extend it to work for pretty much any operation on the student record in the 

“YAML‐base”. So, he/she keeps on asking you for more silly features every time. Can you 

provide a query for student’s state? How about the age? How about the less than weight? You 

quickly get tired of the “Can you please just add one more feature?” game and think of a 

scheme that will “wow” the customer and make your API forward‐compatible with the future 

attributes of the student record (as well as future silly customer requests). Your DbApi class 

(db_api.rb) will only have ONE method, 

 

which will 

a. Load the students into a class variable the first time around 

b. Parse out the last part of the “ghost” method being called and assume it to be an 

attribute of the student class 

c. Use the 2 arguments passed into the “ghost” method to perform the appropriate query 

d. The new db_client2.rb is provided as part of the homework (free of charge).  

 

(Hint:  You are basically combining “ghost” method technique with Dynamic Dispatch technique 

– both covered in the lecture.)  

 

2. Implement a restful API client for http://www.recipepuppy.com/about/api/ similar to the one 

we presented in class. It should have a class method for, which will take a keyword to search 

for and use a request parameter (q) to send the request up to the API. Also, specify a default 

parameter of onlyImages equal to 1 in order to only return results that contain associated 

thumbnails. (A sample is shown below.) 

 

 

Submission Guidelines 

1. Commit all the files to your local repo and push your repo out to your private team repo on 

github creating a remote branch called assignment4.  

2. You can do one of the following to accomplish the above 

a. Create a local branch called assignment4 ($git checkout –b

assignment4)  and then push it out by doing $git push remote_alias

assignment4 

b. Work on a master branch in your repo and then do  

$git push remote_alias master:assignment4 

3. Feel free to include a README.txt with any comments…