Initial commit based on bundle gem
Introduce rspec and generate binstubs
Add file that exemplifies the taskpaper format
Change filenames incorrectly named with dashes by 'bundle install' to use underscores instead
Begin integration specs, Parser class and spec
Rename gem to taskpaper_tools and prefer underscore over dash.
Extract Parser#parse so it can work off an IO stream instead of File
Begin specifying what the parse method will return
Introduce LineItem class
Get indentation parsing logic working
Make git recognize line_item_spec.rb as not binary
Rename RootItem - Document is a better abstraction.
Use #reduce to streamline #parse implementation and return Document.
Rework integration_spec to do a roundtrip parse/save so it catches most
issues while not duplicating finer grained specs
Implement serialization
Introduce EntryContainer module to DRY up some code btwn LineItem (soon to
be Entry) and Document
Rename LineItem -> Entry
Renamed line_item(_spec).rb -> entry(_spec).rb to match previous commit
Move Document#save -> TaskpaperTools.save for symmetry with .parse.
Introduce Entry.create factory method along with Project, Task, Note subclasses.
Refactor Entry#determine_parent and #find_common_ancestor algorithm.
Remove Entry#task?, #project?, note? methods - not pulling their weight.
Refined access control of Entry methods.
Rework EntryCollection#serialize (-> #yield_text) so it is more general
purpose and doesn't mix responsibilities
Fix nesting problem with project followed by unindented task
Namespace parser_spec code under TaskpaperTools
Move #clean from Entry to Parser; better separation of concerns.
Change parser_spec to use String#lines instead of #split which strips
line endings unlike IO.each