Fixed SourceParser and SourceParser::Base. Previously each subclass would overwrite each others labels, now each subclass has its own label thanks to the magic of metaclasses. Previously each subclass was registered in a static Array maintained by hand, now each subclass registers itself dynamically in a global registry that can survive a Rails reload!. All other methods have been reworked to generate their results from these values dynamically. This makes it possible to add more SourceParser::Base subclasses without modifying the SourceParser itself, which is much nicer.
Fixed SourceParser and SourceParser::Base. Previously each subclass would overwrite each others labels, now each subclass has its own label thanks to the magic of metaclasses. Previously each subclass was registered in a static Array maintained by hand, now each subclass registers itself dynamically in a global registry that can survive a Rails reload!. All other methods have been reworked to generate their results from these values dynamically. This makes it possible to add more SourceParser::Base subclasses without modifying the SourceParser itself, which is much nicer.


git-svn-id: 8ae0a6b396effb9e2d04f216330b631e689e8608@242 54c6411d-1744-0410-a9eb-b99409f43359

botandrose/calagator,botandrose/calagator,botandrose/calagator,botandrose/calagator