Hi Zach, hope you don't mind but I sent this to the GitNub mailing list.
Nice! This looks fantastic.
I am indeed interested in this and there is a direction I'd like to take gitnub that would allow anyone to implement a variety of plugins to do these types of things.
The idea is still in my head, but, as another example, I'd like to implement a Lighthouse specific view, however not everyone uses this as their bug tracker so I need a way to make this pluggable.
Basically, I see plugins having their own NIB and being loaded into a tab item. Each plugin could create a button in the capsule (if it needed too).
So, say I wanted a Tickets view that listed projects in the source list and clicking on a project would show you tickets for that project. I haven't done any extensive planning, but I see something like a Lighthouse.plugin that would be loaded with the application starts. It has a controller that initializes with the application_controller instance passed to it.
# init.rb
// Use 'lighthouse' as the tabs identifier and require that your plugin's controller is named in the same fashion(e.g. LighthousePlugin).
Plugins.add_with_identifier('lighthouse')
class LighthousePlugin < SomeBasePlugin
def init_with_application(app)
@repo = app.repo
end
end
Guess I could use sharedApplication too instead of passing in the delegate.