<commit_before># Week 6: Object Oriented Design in Ruby

Last week you started creating your own objects in Ruby. This week you will be working with something called Object-Oriented Design. There is a great resource called [Practical Object-Oriented Design in Ruby (book)](http://www.poodr.com/) (affectionately pronounced "Poo-Dur"). There isn't a free copy online, so use the mighty power of google (and the free book preview on Amazon) to introduce yourself to the fundamentals of object-oriented design.

Don't forget your Unit Goals (listed below)! 

## Challenges

0. ["Git Started"](0_git_started)
1. [Testing with Assert Statements](1_assert_statements)
2. [Drawer Debugger](2_drawer_debugger)
3. [Creating a BoggleBoard Class](3_BoggleBoard)
4. [Creating a PezDispenser Class - SOLO CHALLENGE](4_PezDispenser_solo_challenge) **or** [Create a Playlist from Driver Code - SOLO CHALLENGE](4_playlist_solo_challenge)
5. [Refactoring for Code Readability](5_refactoring)
6. [Technical Blog](6_technical_blog.md) 
7. [Cultural Blog](7_cultural_blog.md)
8. [BONUS Creating a Car Class from User Stories](8_BONUS_CarClass)


## Fetch the curriculum changes!
It's time to fetch the new curriculum from Devbootcamp/phase_0_unit_2. Use [these instructions](https://github.com/Devbootcamp/phase_0_handbook/blob/master/fetching_changes.md) and modify them to use phase_0_unit_2 (instead of phase_0_unit_1). Try using the "command line" instructions!

## Completing the challenges

Open your local version of the directory in Sublime. Make your changes and commit/sync as you complete challenges. Try using the command line as much as possible to navigate between directories and run files. 

Make sure to include specific commit messages and sync your changes each time you complete a challenge.

## Submitting your work

You need to submit your work on the Unit 2, Week 6 submission form on [apply.devbootcamp.com](http://apply.devbootcamp.com) by Sunday at 11:59pm. Expect to submit the links from your repo for each challenge above. 

## Remember your Unit Goals!
- Pair at least once this week with a member of your accountability group.  *You need to pair **4** times this unit*
- Give feedback for each person you paired with. *You need to submit at least 5 pieces of feedback in this unit* (4 for peer-pairing, and 1 GPS)
- Rate at least 7 pieces of [Meta Feedback](https://socrates.devbootcamp.com/feedback) on Socrates. *You need to rate 20 pieces of feedback per unit.


## Resources
*These are for reference if you want some additional sources.* 
- [Practical Object-Oriented Design in Ruby (POODR - book)](http://www.poodr.com/) *HINT: work through one of your challenges as you read*
- [Writing our own Class in Ruby](http://rubylearning.com/satishtalim/writing_our_own_class_in_ruby.html)
- [Ruby Classes and Objects](http://www.tutorialspoint.com/ruby/ruby_classes.htm)
- [Introduction to Refactoring](http://sourcemaking.com/refactoring/introduction-to-refactoring)   
- [Ruby for Newbies](http://net.tutsplus.com/sessions/ruby-for-newbies)  
- [Ruby Variable Scope](http://www.techotopia.com/index.php/Ruby_Variable_Scope) 
- [GangesLearning (Videos)](https://www.youtube.com/user/GangesLearning)
- [The Well-Grounded Rubyist (Book)](http://www.manning.com/black2/) - This is a really great Ruby reference. We recommend getting it.  

<commit_msg>added link section<commit_after># Week 6: Object-Oriented Design in Ruby

Last week you started creating your own objects in Ruby. This week you will be working with something called Object-Oriented Design. There is a great resource called [Practical Object-Oriented Design in Ruby (book)](http://www.poodr.com/) (affectionately pronounced "Poo-Dur"). There isn't a free copy online, so use the mighty power of google (and the free book preview on Amazon) to introduce yourself to the fundamentals of object-oriented design.

Don't forget your Unit Goals (listed below)! 

## Challenges

0. ["Git Started"](0_git_started)
1. [Testing with Assert Statements](1_assert_statements)
2. [Drawer Debugger](2_drawer_debugger)
3. [Creating a BoggleBoard Class](3_BoggleBoard)
4. [Creating a PezDispenser Class - SOLO CHALLENGE](4_PezDispenser_solo_challenge) **or** [Create a Playlist from Driver Code - SOLO CHALLENGE](4_playlist_solo_challenge)
5. [Refactoring for Code Readability](5_refactoring)
6. [Technical Blog](6_technical_blog.md) 
7. [Cultural Blog](7_cultural_blog.md)
8. [BONUS Creating a Car Class from User Stories](8_BONUS_CarClass)


## Fetch the curriculum changes!
It's time to fetch the new curriculum from Devbootcamp/phase_0_unit_2. Use [these instructions](https://github.com/Devbootcamp/phase_0_handbook/blob/master/fetching_changes.md) and modify them to use phase_0_unit_2 (instead of phase_0_unit_1). Try using the "command line" instructions!

## Completing the challenges

Open your local version of the directory in Sublime. Make your changes and commit/sync as you complete challenges. Try using the command line as much as possible to navigate between directories and run files. 

Make sure to include specific commit messages and sync your changes each time you complete a challenge.

## Submitting your work

You need to submit your work on the Unit 2, Week 6 submission form on [apply.devbootcamp.com](http://apply.devbootcamp.com) by Sunday at 11:59pm. Expect to submit the links from your repo for each challenge above. 

## Remember your Unit Goals!
- Pair at least once this week with a member of your accountability group.  *You need to pair **4** times this unit*
- Give feedback for each person you paired with. *You need to submit at least 5 pieces of feedback in this unit* (4 for peer-pairing, and 1 GPS)
- Rate at least 7 pieces of [Meta Feedback](https://socrates.devbootcamp.com/feedback) on Socrates. *You need to rate 20 pieces of feedback per unit.

## Link Issues in the Repository
You now know enough to fix broken links in your repo! If you run into a 404 error navigating through the directory online, go to the file where the error is, see what the link is. Is it to an internal or external file? If internal, do you see a file named something similarly in the repo? If so, you'll want to figure out why the link is broken and fix it. If it's to an external resource,  Definitely let us know if a link is broken so we can fix it, but take some time to research it as well. 

## Resources
*These are for reference if you want some additional sources.* 
- [Practical Object-Oriented Design in Ruby (POODR - book)](http://www.poodr.com/) *HINT: work through one of your challenges as you read*
- [Writing our own Class in Ruby](http://rubylearning.com/satishtalim/writing_our_own_class_in_ruby.html)
- [Ruby Classes and Objects](http://www.tutorialspoint.com/ruby/ruby_classes.htm)
- [Introduction to Refactoring](http://sourcemaking.com/refactoring/introduction-to-refactoring)   
- [Ruby for Newbies](http://net.tutsplus.com/sessions/ruby-for-newbies)  
- [Ruby Variable Scope](http://www.techotopia.com/index.php/Ruby_Variable_Scope) 
- [GangesLearning (Videos)](https://www.youtube.com/user/GangesLearning)
- [The Well-Grounded Rubyist (Book)](http://www.manning.com/black2/) - This is a really great Ruby reference. We recommend getting it.  


{'fraction_non_alphanumeric': 0.08533223049352082, 'fraction_numerical': 0.011717673007995588, 'mean_word_length': 4.780876494023905, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 12, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2308891', 'n_tokens_mistral': 2253, 'n_tokens_neox': 2086, 'n_words': 885}