Skip to content
Commits on Jan 25, 2012
  1. @practicingruby

    Update README.md

    practicingruby committed Jan 24, 2012
  2. @practicingruby

    Update README

    practicingruby committed Jan 24, 2012
  3. @practicingruby

    Update README

    practicingruby committed Jan 24, 2012
  4. @practicingruby

    Update README

    practicingruby committed Jan 24, 2012
  5. @practicingruby

    Update README

    practicingruby committed Jan 24, 2012
  6. @practicingruby
  7. @practicingruby

    Add integration tests

    practicingruby committed Jan 24, 2012
  8. @practicingruby

    No longer needed

    practicingruby committed Jan 24, 2012
  9. @practicingruby

    Add gems to .gitignore

    practicingruby committed Jan 24, 2012
  10. @practicingruby

    Make releaseable

    practicingruby committed Jan 24, 2012
  11. @practicingruby
  12. @practicingruby

    Major refactor

    practicingruby committed Jan 24, 2012
  13. @practicingruby
  14. @practicingruby

    Tiny cleanup

    practicingruby committed Jan 24, 2012
  15. @practicingruby
  16. @practicingruby
  17. @practicingruby
  18. @practicingruby
  19. @practicingruby

    Update test naming

    practicingruby committed Jan 24, 2012
  20. @practicingruby

    Update README

    practicingruby committed Jan 24, 2012
  21. @practicingruby
  22. @practicingruby

    Update naming

    practicingruby committed Jan 24, 2012
  23. @practicingruby

    Missed a few ivars

    practicingruby committed Jan 24, 2012
  24. @practicingruby
Commits on Jan 21, 2012
  1. @practicingruby

    Merge pull request #6 from riccieri/master

    Moved classes on the main file to their own files.
    practicingruby committed Jan 21, 2012
  2. @renato-zannon
Commits on Jan 20, 2012
  1. @renato-zannon
  2. @renato-zannon
Commits on Jan 18, 2012
  1. @practicingruby

    Merge pull request #5 from steveklabnik/master

    Broke out a Tokenizer class from Scanner
    practicingruby committed Jan 18, 2012
  2. @steveklabnik

    Broke out Tokenizer class from Scanner.

    Private is a smell. Especially when you have a bunch of private methods.
    It usually means there's a class hiding inside.
    
    I drew this diagram of dependencies between methods:
    http://i.imgur.com/PPhXb.jpg
    
    As you can see, the Scanner class at the bottom is strange: only
    one method gets used from outside, and everything else is private.
    This suggests that the cluster of methods that _aren't_ \#next should
    be some sort of class. The best strategy is to look at the names and
    see if they feel grouped in some way.
    
    It wasn't all sunshine in paradise, however. Reading the method names,
    I kept saying 'man, this feels like a Scanner to me.' So I decided
    to turn the tables: what does \#next imply?
    
    To me, it implies a Tokenizer. Ahhhh, Java! But that's really what
    the Interpreter wants: a stream of tokens. Damn the logic for actually
    getting them. So I renamed Scanner to Tokenizer, and broke out
    the private methods into a class named Scanner.
    
    This feels better from an SRP standpoint as well. The next method is
    all about the logic concerning which token we want next, but all the
    others are about the manipulation of the actual data structure itself.
    \#next is a higher level interface built on top of the lower-level
    Scanner. Rock.
    
    I also had to update the tests.
    steveklabnik committed Jan 18, 2012
  3. @steveklabnik @practicingruby
  4. @practicingruby
  5. @steveklabnik @practicingruby
  6. @practicingruby
  7. @practicingruby

    Merge pull request #2 from eregon/patch-1

    use putc(char) instead of print("" << char)
    practicingruby committed Jan 18, 2012
Something went wrong with that request. Please try again.