YARD::CLI::I18n inherits YARD::CLI::Yardoc because "i18n" command
use the same options in "doc" command. But it will be better that
we share the same options in another way because "i18n" command
doesn't need all options in "doc" command.
We need to discuss how to implement it. So I use inheritance for now.
This commit is corresponding to 2. in #395:
As for tests, it's not necessary to test all of the Yardoc
functionality over again unless it has changed. A quick look over
seems like there are lots of tests that were copy pasted from
Yardoc. We don't need those, so see what you can do about removing
tests that don't test direct functionality of the subclass.
This commit is corresponding to 1. and 3. in #395:
1. I'd like it if you could move your CLI::I18n subclasses into a
YARD::I18n namespace. I'm not a fan of classes inside of classes,
organizationally speaking, and it's hard to promote component reuse
for these classes if they're inside of a CLI namespace. Presumably
someone might want to use the PotGenerator class directly, for
instance, and they shouldn't have to go through the CLI. So, I've
marked those classes as @private for now so that nobody uses them
from that namespace. Once you move them into a more appropriate
location, you can remove the @private declaration and we can support
them as a public API.
3. Ditto for moving the tests for the inner classes like
PotGenerator and Test into their own files. I'm also not a fan of
multiple classes in a single _spec.rb file.