Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

flag "--ignore" does not work #219

Open
couchdeveloper opened this Issue May 22, 2012 · 6 comments

Comments

Projects
None yet
3 participants

appledoc version: 2.0.5 (build 737)

Specifying --ignore .m has no effect.

All the Objective-C headers and modules are in one folder. If it helps, here is the complete command string executed in Xcode via a Ruby script:

/usr/local/bin/appledoc -p JPJson -v "0.1" -c "Bit Passion" -o "/Users/me/Develop/JPJson/JPJson-0.1/Build/Intermediates/Documentation.build/Release/Documentation.build/DerivedSources" --ignore .m --warn-undocumented-object --warn-undocumented-member --warn-empty-description --warn-unknown-directive --warn-invalid-crossref --warn-missing-arg --no-repeat-first-par --no-keep-undocumented-objects --explicit-crossref --no-create-docset --keep-intermediate-files --create-html --logformat xcode --exit-threshold 2 "/Users/me/Develop/JPJson/JPJson-0.1/Source/json/ObjC"

What I actually try to accomplish is to avoid creation of documentation for classes and categories which are defined in Objective-C modules (as opposed to classes and categories defined in headers). I consider these "private" and not subject for documentation generation. IMHO, this should be the default behavior.

Is there any other way to accomplish this?

Thanks for help!

Owner

tomaz commented May 23, 2012

That's weird - I just had a user to whom ignore flag ignored everything :) Your command line looks ok. Will check if the behavior broke in recent updates.

On May 23, 2012, at 8:55 AM, tomaz wrote:

That's weird - I just had a user to whom ignore flag ignored everything :) Your command line looks ok. Will check if the behavior broke in recent updates.

Thank you Tomaz, for taking a look into it!

Despite those little issues, the tool is pretty cool ;)

Andreas

In my Classes folder, I have a sub-folder named ThirdParty, where I save all the classes that I am using in the current project, but that I did not coded myself.
I wanted to ignore it in the documentation generated, so I added --ignore ThirdParty.
Complete command is:

appledoc --project-name "ProjectName" --project-company "My Awesome Company" --no-repeat-first-par --output docset_folder --ignore .m --ignore ThirdParty --docset-platform-family iphoneos --keep-undocumented-objects --keep-undocumented-members --search-undocumented-doc .

But the files in the folder ThirdParty are not ignored, and are included in the generated docset.
I also tried some variation of the param, such as ThirdParty/, ./path/to/ThirdParty/, but didn't change anything.

Is it the repetition of the --ignore switch that is not allowed? Or is the option currently broken?

(Using appledoc version: 2.1 (build 840)).

Owner

tomaz commented Oct 12, 2012

Repeating should work, at least for me it seems to be fine. Also your use case is exactly what the option was added for.

Peeking at the code, I found the problem. The method - (BOOL)isPathIgnored:(NSString *)path of the class GCParser only does a string comparison.
And in my case, it was comparing ./path/to/ThirdParty to path/to/ThirdParty/. Editing the option to the one found by the tool fixed it.

It might be a good improvement idea to make the ignore test smarter.

And knowing this, I'm now wondering if the --ignore .m has any effect. I guess not. And even if it would, is it needed? Isn't appledoc smart enough about it?

Owner

tomaz commented Oct 14, 2012

I've finally got some time to take a look at 2.0 code (I'm focusing on 3.0 whenever I get some time for appledoc): ignoring paths is implemented very simple: it checks path suffix (as string), so --ignore .m should ignore all .m files. Similarly, --ignore ThirdParty (without ending slash) should ignore your all files inside ThirdParty folder (regardless of depth) - this is exactly how I'm using the tool myself.

I think this method works very well, but I agree it could be improved by trimming slashes from the end of both, ignore string and tested path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment