David, I don't think that's right.
sortedMap keeps the map ordered by the natural ordering of its keys. The key of the targets map is a Route--I don't think this enhancement/change should affect the nature of the Route class, do you? Ed David Calavera wrote: > > I think it makes more sense that the Map was a sortedMap, thus the > entrySet > will be a sortedSet and I suppose your problem will be solved. > > If you are agree I can change it. > > On Thu, Jun 19, 2008 at 12:35 AM, ed_ruder <[EMAIL PROTECTED]> wrote: > >> >> James, >> >> I'm not very familiar with Abdera, but I have browsed the source a bit >> after >> hitting the same limitation that Jim reported, while working on Shindig. >> I >> *think* that a simple change in RouteManager could alleviate some (and >> for >> me, I think, all) of the limitation. >> >> When resolving a route, Rails walks through its routes in the order that >> they are defined. RouteManager walks through the targets.entrySet, which >> is >> unordered. If RouteManager kept a targets List<> instead of a targets >> Map<>, >> it could walk through the routes in order. (There would need to be a new >> class defined, to hold both the Route and TargetType, but it would be >> very >> simple.) >> >> To work around the limitation Jim describes, a client would define a >> /base/:collection/:entry route before the /base/:collection route. >> >> WDYT? >> >> Ed >> >> >> James M Snell wrote: >> > >> > Ruby matching can span segments if a default value for the missing >> > variables is provided. We, however, don't have default values for our >> > variables. It would make sense for us to tighten up the matching >> rules. >> > >> > - James >> > >> > Jim Ancona wrote: >> >> I have run into some problems with my Routes matching unexpectedly. >> >> Before filing a bug, I thought I'd ask for feedback on whether the >> >> current behavior is correct. >> >> >> >> The current algorithm attempts to match the non-variable parts of the >> >> pattern, setting the variable to whatever is in between. >> >> >> >> So the pattern "/base/:collection/" matches both "/base/test/" and >> >> "/base/test/123/". In the second case, the value of the collection >> >> variable is "test/123". In my opinion, not allowing matches to span >> URI >> >> segments would be less prone to unintuitive results. >> >> >> >> FWIW, a quick glance at some docs on Ruby Routes seems to indicate >> that >> >> they do not span URI path segments. >> >> >> >> Thoughts? >> >> >> >> Jim >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Route-matching-too-liberal--tp15348853p17993519.html >> Sent from the abdera-dev mailing list archive at Nabble.com. >> >> > > > -- > David Calavera > http://www.thinkincode.net > > -- View this message in context: http://www.nabble.com/Route-matching-too-liberal--tp15348853p17994070.html Sent from the abdera-dev mailing list archive at Nabble.com.
