Added syllabification by the Sonority Sequencing Principle.
Split out a Phone class with ordering based on sonority.
Limited legal phones by making them subclasses of Phone that are instanciated as opposed to storing in a hash.
Pulled out a rule class for SSP.
Clarified Phone equality.
Extracted a parameter object for syllabification and rewrote specs in different syntax.
Added syllables to the syllabification context.
Added a syllable class and protected SSP from cases where other rules provide it with context it would never produce on its own.
Added first additional rule and fixed SSP based on the test using 'hanging'.
Improved coda retrieving algorithm.

In particular it doesn't use ifs.
Moved syllabification into Word class so that only the requested words are syllabified, an expensive process.
Return nil for unknown words as opposed to throwing an exception.
Renamed as_strings to to_strings to match Ruby conventions.
Fixed backwards method referencing in specs.
Added concept of stressed syllables.
Added concept of vowel length.
Added rule requiring stressed syllables to be heavy.
Moved requires to individual specs in order to see when a file is missing a require.
Protected SSP from final vowel being preceded by a coda.
Renamed rule to note where it applies.