Nothing really good to do in this situation, but at least avoid crashing. Refs #475
A regression introduced by the previous enhancement of Basic warning class.
Overrides shouldn't be inherited, but the code in InheritMembers happened to inherit them along with all the other things, causing auto-detected members to share the same overrides array, resulting in bogus lists of overridden members. This fix should take care of bug #465.
Instead of looking up all the matching rules and taking the last one, maintain the rules array in reverse order and use #find to grab the first matching rule.
Removed a special case treatment of warnings with PATH from the implementation of +all warning. This check only worked for the Basic warning type but not for the All type, which throws no exception when setting of warning has no effect. Removed the "has no effect" exception from the Basic warning type, as it wass just a little helper notice and not really crucial to have. Fixes #462
That's more of a debugging commit to see if this helps to make our TravisCI build pass.
A simple check that running jsduck --version results in 0 exit code.
Placed it in the same group with @deprecated and @removed, so one can also add a version number (since when the feature was added), and a comment: @experimental 3.2 To try out new Google API. Tweaked the styles of @deprecated and @removed too, so they all look a bit better. To allow for different message text in @experimental, had to introduce @msg and @since instance variables to the DeprecatedTag base class. Fixes #239
Grouping the --processes, --cache and --cache dir inside it.
Marshal dump format can change between Ruby versions and although the Marshal has its own version numbers, I get an encoding error when reading the Ruby 1.8 Marshal dump with Ruby 1.9. The parsed source code data structure can also change between versions of JSDuck. To eliminate these problems, a .cache/manifest.txt file is created with the contents like: Ruby: 1.9.3, JSDuck: 5.2.0 The file is then checked to match the current version of Ruby and JSDuck. If the versions don't match, the whole cache is invalidated (all files removed from it). Refs #446
Take the file name also into account when calculating the MD5 hash of a cache entry. Otherwise files that are renamed would also be read from cache, resulting in the old filename being referenced in the docs and also in the warning messages. Refs #446