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…