Because the scheme defines the semantics of what comes after it. Not every URL has a host, like mailto:john@acme.com (to pick an extreme case). Right now, 'foo' on itself becomes a part of the path, not the host. See also #testReferenceResolution where you can clearly see that when there is no scheme, 'g' is always seen as a path (and these examples come from an RFC). I think that what we have now is correct. I am willing to change my mind when you point to some RFC that supports your point ;-)
On 12 Mar 2015, at 22:20, Sean P. DeNigris <sean@clipperadams.com> wrote:
On Mar 12, 2015, at 4:54 PM, Sven Van Caekenberghe-2 [via Smalltalk] <[hidden email]> wrote:
The scheme is not optional, it defines what (kind) the URL is. You are expecting behaviour such as in a browser's address bar. But there, there is context (you are expecting an HTTP URL).
I did see the defaultScheme: variant. Iâm not saying we should necessarily assume HTTP. Iâm just saying if someone gives us a string like 'www.hm.comâ (which I agree is incompletely defined), why set #segments and not #host? Even with scheme = nil, the following would be more useful: 'www.hm.com' asUrl host = 'www.hm.com'. 'www.hm.com' asUrl segments = m') an OrderedCollection() Cheers, Sean
View this message in context: Re: ZnUrl: Constructing without Scheme Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.