Using the provided `./sentence.rb` file, please create a `Sentence` class that implements the following behavior:
- `#initialize(sentence)` Given a string, initializes the class with this string as its sentence
- `#longest_word` Returns the longest word in the sentence
- `#word_count` Returns the number of unique words in the sentence
- `#count(word)` Given a word, returns the number of occurrences in the sentence (case insensitive)
You may assume the sentence is immutable (i.e. it will not change after creation).
This exercise requires you to identify patterns in a string of text. Problems like this are commonly solved with a
tool called Regular Expressions (RegEx). We are not assessing your familiarity with RegEx syntax for this position; for
this reason, we've supplied a RegEx pattern that you can use to match words within the sample sentence (the backtick
symbols provide markdown formatting; don't copy them):
It's up to you to decide if and how you'll use this RegEx pattern for the exercise.
The included `./test_sentence.rb` file defines the expected behavior of your `Sentence` class. To run the tests, open a
terminal and navigate to the project's root directory:
`$ cd <INSERT PATH TO PROJECT>/homework/`
Then install the `minitest` gem:
`$ gem install minitest`
And run the test file:
`$ ruby -Ilib:test test/test_sentence.rb`
See the test results printed to your terminal output:
Run options: --seed 34256
Finished in 0.001057s, 6622.5172 runs/s, 6622.5172 assertions/s.
7 runs, 7 assertions, 0 failures, 0 errors, 0 skips
See the `minitest` [documentation](https://github.com/seattlerb/minitest) for more information.
### Extra Challenges
1. Read this blog post on ["memoization"](https://www.honeybadger.io/blog/ruby-rails-memoization/) in Ruby, and
implement this behavior for your sentence class.
2. Read this blog post on [Regular Expressions](https://www.rubyguides.com/2015/06/ruby-regex/) in Ruby, and include a
`readme.md` file in your submission to deconstruct and explain the RegEx pattern above.
3. Rename your `Sentence` class to `Speech` and extend it to implement the following additional behavior:
- `#initialize(path)` Given a path to a text file, initializes the class with the contents of the file as its speech
- `#most_used_words(count)` Given an integer, returns a list containing the most used words in the speech (sorted by
- **Note:** The included `./test_speech.rb` file defines the expected behavior of your `Speech` class.
Contact us for this Ruby assignment Solutions by Codersarts Specialist who can help you mentor and guide for such Ruby assignments.