abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ed_ruder <eru...@hi5.com>
Subject Re: Route matching too liberal?
Date Wed, 18 Jun 2008 23:15:19 GMT

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 <eruder@hi5.com> 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.


Mime
View raw message