Ans Doc413


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 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
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…