/phase0_unit2_drawer_debugger.rb Secret
Last active
September 2, 2023 18:40
-
Star
(0)
You must be signed in to star a gist -
Fork
(313)
You must be signed in to fork a gist
-
-
Save dbc-challenges/eb26220a3a48f3219ace to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Drawer | |
| attr_reader :contents | |
| # Are there any more methods needed in this class? | |
| def initialize | |
| @contents = [] | |
| @open = true | |
| end | |
| def open | |
| @open = true | |
| end | |
| def close | |
| @open = false | |
| end | |
| def add_item | |
| @contents << item | |
| end | |
| def remove_item(item = @contents.pop) #what is `#pop` doing? | |
| @contents.delete(item) | |
| end | |
| def dump # what should this method return? | |
| puts "Your drawer is empty." | |
| end | |
| def view_contents | |
| puts "The drawer contains:" | |
| @contents.each {|silverware| puts "- " + silverware.type } | |
| end | |
| class Silverware | |
| attr_reader :type | |
| # Are there any more methods needed in this class? | |
| def initialize(type, clean = true) | |
| @type = type | |
| @clean = clean | |
| end | |
| def eat | |
| puts "eating with the #{type}" | |
| @clean = false | |
| end | |
| end | |
| knife1 = Silverware.new("knife") | |
| silverware_drawer = Drawer.new | |
| silverware_drawer.add_item(knife1) | |
| silverware_drawer.add_item(Silverware.new("spoon")) | |
| silverware_drawer.add_item(Silverware.new("fork")) | |
| silverware_drawer.view_contents | |
| silverware_drawer.remove_item | |
| silverware_drawer.view_contents | |
| sharp_knife = Silverware.new("sharp_knife") | |
| silverware_drawer.add_item(sharp_knife) | |
| silverware_drawer.view_contents | |
| removed_knife = silverware_drawer.remove_item(sharp_knife) | |
| removed_knife.eat | |
| removed_knife.clean_silverware | |
| silverware_drawer.view_contents | |
| silverware_drawer.dump | |
| silverware_drawer.view_contents #What should this return? | |
| fork = silverware_drawer.remove_item(fork) #add some puts statements to help you trace through the code... | |
| fork.eat | |
| #BONUS SECTION | |
| # puts fork.clean | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment