Parse YARD type description strings -- eg
Array<#to_sym> -- and use the
resulting types to check type correctness of objects at runtime.
Like everything else these days:
Note that the
yard gem may automatically require anything named
yard-* on your load path, and attempt to use it as a plugin. You could see
errors along the lines of
failed to load plugin yard_types; this is harmless,
as best I can tell.
Parse a type description string, and test an object against it:
type = YardTypes.parse('#quack') #=> #<YardTypes::TypeConstraint ...> type.check(Object.new) #=> false obj = Object.new def obj.quack; 'quack!'; end type.check(obj) #=> true
YARD does not officially specify a syntax for its type descriptions; the syntax used by its own documentation varies between files. The syntax supported in this gem aims to follow the rules given by the YARD Type Parser.
In the wild, people seem to use a wide variety of different syntaxes, many of which are unlikely to be supported right now. If you find any such examples, feel free to file an issue -- or better yet, write a test, implement the feature, and send me a pull request.
Pretty standard. Just run
- Fork it ( http://github.com/pd/yard_types/fork )
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request
The bulk of the parser was written by lsegal; unfortunately, it
was never released as a gem, and has sat untouched for 5 years. I've only modified
the parser to better support
Hash<A, B> syntax and to use more consistent