The CommunityResolver gem provides all that is required to respond to community iname resolution requests on a Rails application. The http response of the CommunityResolver gem is always some form of an XRD xml document.
The [XRI Resolution](docs.oasis-open.org/xri/2.0/specs/xri-resolution-V2.0.html) spec is a beastly long and complicated document. This library implements the basic bits necessary to provide resolution services for community inames and may not be a complete implementation of any spec.
Community inames are inames that contain a “*” delegation character. For example @llli*mike is a community iname in the @llli community. Learn more about community inames on the web.
Set up the Gemfile
Include the CommunityResolver gem in your Rails application Gemfile:
gem 'community_resolver', :git => 'git://github.com/mmell/community_resolver.git'
CommunityResolver requires the AtLinksafe gem. Until AtLinksafe has been released on rubygems.org (allowing CommunityResolver to do this in the gemspec), the Rails application using CommunityResolver must also add:
gem 'at_linksafe', :git => 'git://github.com/mmell/at_linksafe.git'
Implement the CommunityResolver::AuthorityInterface
Implement the CommunityResolver::AuthorityInterface in the main Rails application. The implementation must be named CommunityResolver::ResolverAuthority. See the test code in **~/test/dummy/lib/community_resolver/resolver_authority.rb** for a good starting point. There is also a migration and an associated set of models in **~/test/dummy/db/migrate** and **~/test/support/models**. These files are not part of the library code because the hosting application needs to implement the AuthorityInterface in its own environment and user space.
Parent Iname Resolution
Configure the parent iname (e.g. @llli) $res/auth to point to your main Rails application. Visit your ibroker for instructions and tools for this step.
This project was originally available in the vendor/plugins of the Linksafe Ibroker on [Soureforge](linksafe.svn.sourceforge.net/viewvc/linksafe/rails/ibroker/trunk/vendor/plugins/at_linksafe_resolver)
This project is released under the MIT-LICENSE.