)]}'
{"src/OpenStack/Common/Transport/Url.php":[{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28ab480d72f5cf23501735786b5d421c66e41675","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?php"},{"line_number":2,"context_line":"/**"},{"line_number":3,"context_line":" * Copyright 2014 OpenStack Foundation"},{"line_number":4,"context_line":" *"},{"line_number":5,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":" * you may not use this file except in compliance with the License."}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_018dce7b","line":3,"updated":"2014-05-29 21:38:14.000000000","message":"Shouldn\u0027t this be copyright Rackspace?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":18,"context_line":"namespace OpenStack\\Common\\Transport;"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"/**"},{"line_number":21,"context_line":" * Represents a RFC 3986 URL, containing its various syntax components."},{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_de80218e","line":21,"updated":"2014-05-29 21:37:04.000000000","message":"parse_url (at the root the parsing) isn\u0027t a validator and isn\u0027t RFC 3986 compliant. Here and maybe in the constructor it might be worth noting that this isn\u0027t a validator. I\u0027ve run into numerous times where things like this are misused and expected to be validators. Or, when something invalid works and they wonder why.\n\nI find this to be funny because the php validator for a url uses parse_url (http://php.net/manual/en/filter.filters.validate.php) while parse_url says it shouldn\u0027t be used for validation (and if you test it you\u0027ll see it doesn\u0027t do proper validation).","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"d142495b864503772a39f79477c8b3d2febf7e47","unresolved":false,"context_lines":[{"line_number":18,"context_line":"namespace OpenStack\\Common\\Transport;"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"/**"},{"line_number":21,"context_line":" * Represents a RFC 3986 URL, containing its various syntax components."},{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_718c4936","line":21,"in_reply_to":"1ae5cdf2_de80218e","updated":"2014-06-02 15:10:50.000000000","message":"Great point - I\u0027ve added in this clarification","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"a0c18f756b6fd9460809cadcba9b0b5466f0c3d5","unresolved":false,"context_lines":[{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"class Url"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    private $scheme;"},{"line_number":28,"context_line":"    private $host;"}],"source_content_type":"text/x-php","patch_set":1,"id":"3ae8d1ca_0d506831","line":25,"updated":"2014-05-28 12:35:50.000000000","message":"A Url class is a good idea but surely it\u0027s been done before. Can we pull in a package that already defines it? I know Guzzle has one (http://api.guzzlephp.org/class-Guzzle.Http.Url.html); could we reuse that or are we trying to avoid a hard dependency on Guzzle?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"74f332865b653a80a18aa3ee9124e265f18e474e","unresolved":false,"context_lines":[{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"class Url"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    private $scheme;"},{"line_number":28,"context_line":"    private $host;"}],"source_content_type":"text/x-php","patch_set":1,"id":"3ae8d1ca_a86202d6","line":25,"in_reply_to":"3ae8d1ca_0d506831","updated":"2014-05-28 12:39:13.000000000","message":"We\u0027re allowing people to inject their own HTTP clients into the SDK - so we can\u0027t rely on third-party dependencies for our transport layer. Our interface will specify our own Url class, allowing others to use if necessary","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"0b160c487292e154c267af20ebeb2adaa57ebd5c","unresolved":false,"context_lines":[{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"class Url"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    private $scheme;"},{"line_number":28,"context_line":"    private $host;"}],"source_content_type":"text/x-php","patch_set":1,"id":"3ae8d1ca_63dd7b70","line":25,"in_reply_to":"3ae8d1ca_28d272d2","updated":"2014-05-28 13:17:58.000000000","message":"I don\u0027t mind using existing OSS projects at all, but I don\u0027t think it makes sense here. \n\nBecause we\u0027re offering people the ability to inject their own transport client, our surrounding code needs to be as generic as possible in order to accommodate external implementations. That means no hard dependencies. \n\nIMO, it doesn\u0027t make sense to decide on generic abstraction (i.e. not rely on Guzzle HTTP), and then rely on another HTTP dependency...\n\nPlus, considering this is such a small class - I don\u0027t think getting the user to download an entire package is a pragmatic solution. There\u0027s a lot of stuff in there we don\u0027t need - we should minimize unnecessary functionality.\n\n---\n\nIn other areas of the SDK, we\u0027re probably going to need to have a similar conversation about dependencies. I\u0027m definitely in favour of using things like Guzzle/Symfony packages.","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"fb453baa5544e1e6b8355698452b2047031d4e08","unresolved":false,"context_lines":[{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @link http://tools.ietf.org/html/rfc3986"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"class Url"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    private $scheme;"},{"line_number":28,"context_line":"    private $host;"}],"source_content_type":"text/x-php","patch_set":1,"id":"3ae8d1ca_28d272d2","line":25,"in_reply_to":"3ae8d1ca_a86202d6","updated":"2014-05-28 12:58:43.000000000","message":"I understand if we don\u0027t want to depend on Guzzle just for URL encapsulation but how about using something much lighter like https://packagist.org/packages/webignition/url? I\u0027d rather we not roll our own class for something so fundamental if someone else already has something that is reusable. Just my 2 cents, of course.","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"6ebd63fac397a13aeb03d46061820db7802d94f2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    private $fragment;"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    /**"},{"line_number":37,"context_line":"     * @param array|string $value"},{"line_number":38,"context_line":"     * @throws \\InvalidArgumentException If argument is not a string or array"},{"line_number":39,"context_line":"     */"},{"line_number":40,"context_line":"    public function __construct($value)"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_0343a014","line":37,"updated":"2014-06-03 08:35:44.000000000","message":"Might be helpful to leave a brief description about $value since there are some caveats to using parse_url such as using only absolute URLs.","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"6ebd63fac397a13aeb03d46061820db7802d94f2","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    /**"},{"line_number":37,"context_line":"     * @param array|string $value"},{"line_number":38,"context_line":"     * @throws \\InvalidArgumentException If argument is not a string or array"},{"line_number":39,"context_line":"     */"},{"line_number":40,"context_line":"    public function __construct($value)"},{"line_number":41,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_588593ab","line":38,"updated":"2014-06-03 08:35:44.000000000","message":"Can you please add the fqcn","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    /**"},{"line_number":54,"context_line":"     * @param array $array"},{"line_number":55,"context_line":"     */"},{"line_number":56,"context_line":"    private function populateFromArray(array $array)"},{"line_number":57,"context_line":"    {"},{"line_number":58,"context_line":"        foreach ($array as $key \u003d\u003e $val) {"},{"line_number":59,"context_line":"            if ($key \u003d\u003d \u0027pass\u0027) {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_7e49cd8a","line":56,"updated":"2014-05-29 21:37:04.000000000","message":"Why is this private as opposed to protected?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"d142495b864503772a39f79477c8b3d2febf7e47","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    /**"},{"line_number":54,"context_line":"     * @param array $array"},{"line_number":55,"context_line":"     */"},{"line_number":56,"context_line":"    private function populateFromArray(array $array)"},{"line_number":57,"context_line":"    {"},{"line_number":58,"context_line":"        foreach ($array as $key \u003d\u003e $val) {"},{"line_number":59,"context_line":"            if ($key \u003d\u003d \u0027pass\u0027) {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_1177853b","line":56,"in_reply_to":"1ae5cdf2_7e49cd8a","updated":"2014-06-02 15:10:50.000000000","message":"The question here is whether we want people to override our own URL class. Would somebody ever want to do that?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    /**"},{"line_number":86,"context_line":"     * @param $host"},{"line_number":87,"context_line":"     */"},{"line_number":88,"context_line":"    public function setHost($host)"},{"line_number":89,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_214d6a73","line":86,"updated":"2014-05-29 21:37:04.000000000","message":"Isn\u0027t this and a number of other params in here a string? Can we have that added.","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"d142495b864503772a39f79477c8b3d2febf7e47","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    /**"},{"line_number":86,"context_line":"     * @param $host"},{"line_number":87,"context_line":"     */"},{"line_number":88,"context_line":"    public function setHost($host)"},{"line_number":89,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_b19df15b","line":86,"in_reply_to":"1ae5cdf2_214d6a73","updated":"2014-06-02 15:10:50.000000000","message":"Done","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    }"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    /**"},{"line_number":172,"context_line":"     * @return mixed"},{"line_number":173,"context_line":"     */"},{"line_number":174,"context_line":"    public function getPath()"},{"line_number":175,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_41043615","line":172,"updated":"2014-05-29 21:37:04.000000000","message":"If getting the path can return a mixed value can you talk more about what it returns? That applies to some other returns in here.","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"8ef6bc99dd7297cefd13e829dffbc9411303d26b","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    /**"},{"line_number":56,"context_line":"     * @param array $array"},{"line_number":57,"context_line":"     */"},{"line_number":58,"context_line":"    private function populateFromArray(array $array)"},{"line_number":59,"context_line":"    {"},{"line_number":60,"context_line":"        foreach ($array as $key \u003d\u003e $val) {"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_e3e154d1","line":57,"updated":"2014-06-03 08:35:08.000000000","message":"Like Matt mentioned, I think it\u0027d be helpful to have descriptions in the docs. \n\nThis one isn\u0027t complex, but I feel like at least having some kind of  descriptions for all functions (besides extremely trivial getter/setters) would be helpful and raise the bar for future contributors while making the docs more useful for new users.","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"23e99746bafe64b6f793b04f06aa3645c6d1fcd1","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    /**"},{"line_number":56,"context_line":"     * @param array $array"},{"line_number":57,"context_line":"     */"},{"line_number":58,"context_line":"    private function populateFromArray(array $array)"},{"line_number":59,"context_line":"    {"},{"line_number":60,"context_line":"        foreach ($array as $key \u003d\u003e $val) {"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_4b221a02","line":57,"in_reply_to":"1ae5cdf2_e3e154d1","updated":"2014-06-03 12:40:42.000000000","message":"Done","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"8ef6bc99dd7297cefd13e829dffbc9411303d26b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    /**"},{"line_number":174,"context_line":"     * @return string"},{"line_number":175,"context_line":"     */"},{"line_number":176,"context_line":"    public function getPath()"},{"line_number":177,"context_line":"    {"},{"line_number":178,"context_line":"        return $this-\u003epath;"},{"line_number":179,"context_line":"    }"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_e364f44a","line":176,"updated":"2014-06-03 08:35:08.000000000","message":"I\u0027m surprised Matt hasn\u0027t mentioned anything yet since I know he strongly prefers getters/setters in the format of path() and setPath(). FYI - The way you\u0027ve named getters/setters is what I\u0027m used to from my background with other OO languages though. \n\nIs everyone ok with this naming convention though? I hate going through unnecessary refactoring so I\u0027d love to sort this out now since getters/setters are so prevalent.","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"23e99746bafe64b6f793b04f06aa3645c6d1fcd1","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    /**"},{"line_number":174,"context_line":"     * @return string"},{"line_number":175,"context_line":"     */"},{"line_number":176,"context_line":"    public function getPath()"},{"line_number":177,"context_line":"    {"},{"line_number":178,"context_line":"        return $this-\u003epath;"},{"line_number":179,"context_line":"    }"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_2b030e43","line":176,"in_reply_to":"1ae5cdf2_e364f44a","updated":"2014-06-03 12:40:42.000000000","message":"Yeah, I agree about getting consensus on this.\n\nIMHO, getFoo() is a lot clearer and more explicit than foo(). With the latter, you can\u0027t really tell the _intent_ of the method through its name. Are you getting foo\u0027s value, setting it, performing some arbitrary action?\n\nPlus, the convention (as Sam\u0027s already said) seems to prefer getFoo() and setFoo().","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"8ef6bc99dd7297cefd13e829dffbc9411303d26b","unresolved":false,"context_lines":[{"line_number":202,"context_line":"     * array."},{"line_number":203,"context_line":"     *"},{"line_number":204,"context_line":"     * @param  string $value"},{"line_number":205,"context_line":"     * @return array"},{"line_number":206,"context_line":"     */"},{"line_number":207,"context_line":"    private function expandQueryString($value)"},{"line_number":208,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_a3d74cec","line":205,"updated":"2014-06-03 08:35:08.000000000","message":"Quickly glancing at these docs, I\u0027m still wondering what kind of string do I pass in, and what is returned in the array?","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"23e99746bafe64b6f793b04f06aa3645c6d1fcd1","unresolved":false,"context_lines":[{"line_number":202,"context_line":"     * array."},{"line_number":203,"context_line":"     *"},{"line_number":204,"context_line":"     * @param  string $value"},{"line_number":205,"context_line":"     * @return array"},{"line_number":206,"context_line":"     */"},{"line_number":207,"context_line":"    private function expandQueryString($value)"},{"line_number":208,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":2,"id":"1ae5cdf2_8b1c22c3","line":205,"in_reply_to":"1ae5cdf2_a3d74cec","updated":"2014-06-03 12:40:42.000000000","message":"Done","commit_id":"123d190f4cf5bdcd65baaf66a0d334dc734c6f3b"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"9112736a1265d7dad0b343f20089082afc7cf8c4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    private $password;"},{"line_number":34,"context_line":"    private $path;"},{"line_number":35,"context_line":"    private $query \u003d [];"},{"line_number":36,"context_line":"    private $fragment;"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    /**"},{"line_number":39,"context_line":"     * @param array|string $value Either a string or array input value that"}],"source_content_type":"text/x-php","patch_set":6,"id":"1ae5cdf2_a947e1a1","line":36,"updated":"2014-06-12 18:17:43.000000000","message":"We need to talk more on the use of private in this file. If this can\u0027t be cleanly extended we should have a UrlInterface so someone can swap out this implementation.\n\nThis relates to the email thread we already have going.","commit_id":"16afc288a26c9e01a20b010ce38328d25d6de96d"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"9112736a1265d7dad0b343f20089082afc7cf8c4","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                    $url .\u003d $key . \u0027[]\u003d\u0027 . $subVal . \u0027\u0026\u0027;"},{"line_number":280,"context_line":"                }"},{"line_number":281,"context_line":"            } else {"},{"line_number":282,"context_line":"                $url .\u003d $key . \u0027\u003d\u0027 . $val . \u0027\u0026\u0027;"},{"line_number":283,"context_line":"            }"},{"line_number":284,"context_line":"        }"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-php","patch_set":6,"id":"1ae5cdf2_e91729a1","line":282,"updated":"2014-06-12 18:17:43.000000000","message":"Since you did such a great job writing tests... line 282 is the only line that\u0027s not tested for this class. Can we get a test for it?","commit_id":"16afc288a26c9e01a20b010ce38328d25d6de96d"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"b0fbb99d156bfa5a07ba8a41ec3819e85c0ba178","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                    $url .\u003d $key . \u0027[]\u003d\u0027 . $subVal . \u0027\u0026\u0027;"},{"line_number":280,"context_line":"                }"},{"line_number":281,"context_line":"            } else {"},{"line_number":282,"context_line":"                $url .\u003d $key . \u0027\u003d\u0027 . $val . \u0027\u0026\u0027;"},{"line_number":283,"context_line":"            }"},{"line_number":284,"context_line":"        }"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-php","patch_set":6,"id":"1ae5cdf2_5084fa5c","line":282,"in_reply_to":"1ae5cdf2_e91729a1","updated":"2014-06-23 09:13:49.000000000","message":"Done","commit_id":"16afc288a26c9e01a20b010ce38328d25d6de96d"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"cb74a8299510dc49699e42bfb95f0dcd31af7014","unresolved":false,"context_lines":[{"line_number":40,"context_line":"     * @param array|string $value Either a string or array input value that"},{"line_number":41,"context_line":"     *                            will be parsed and populated"},{"line_number":42,"context_line":"     *"},{"line_number":43,"context_line":"     * @throws \\InvalidArgumentException If argument is not a string or array"},{"line_number":44,"context_line":"     */"},{"line_number":45,"context_line":"    public function __construct($value)"},{"line_number":46,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":7,"id":"1ae5cdf2_f4d11530","line":43,"updated":"2014-06-25 13:57:02.000000000","message":"Can you please add the fqcn here?","commit_id":"ee4547c94266ce0cf1de967a1044beab5cf19d47"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"62f2cf6891f7dd333304eb03df2dce7002e86b3d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"     * @param array|string $value Either a string or array input value that"},{"line_number":41,"context_line":"     *                            will be parsed and populated"},{"line_number":42,"context_line":"     *"},{"line_number":43,"context_line":"     * @throws \\InvalidArgumentException If argument is not a string or array"},{"line_number":44,"context_line":"     */"},{"line_number":45,"context_line":"    public function __construct($value)"},{"line_number":46,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":7,"id":"baada198_30055cc1","line":43,"in_reply_to":"1ae5cdf2_f4d11530","updated":"2014-08-07 15:25:02.000000000","message":"Sam, This is a FQCN. It\u0027s a core PHP exception.","commit_id":"ee4547c94266ce0cf1de967a1044beab5cf19d47"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"cb74a8299510dc49699e42bfb95f0dcd31af7014","unresolved":false,"context_lines":[{"line_number":192,"context_line":"     *"},{"line_number":193,"context_line":"     * @param string|array $query"},{"line_number":194,"context_line":"     *"},{"line_number":195,"context_line":"     * @throws \\InvalidArgumentException"},{"line_number":196,"context_line":"     */"},{"line_number":197,"context_line":"    public function setQuery($query)"},{"line_number":198,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":7,"id":"1ae5cdf2_948e1131","line":195,"updated":"2014-06-25 13:57:02.000000000","message":"Can you please add the fqcn here?","commit_id":"ee4547c94266ce0cf1de967a1044beab5cf19d47"}],"tests/Tests/Common/Transport/UrlTest.php":[{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?php"},{"line_number":2,"context_line":"/**"},{"line_number":3,"context_line":" * Copyright 2014"},{"line_number":4,"context_line":" *"},{"line_number":5,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":" * you may not use this file except in compliance with the License."}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_3e0ae5d2","line":3,"updated":"2014-05-29 21:37:04.000000000","message":"Shouldn\u0027t this be Copyright to Rackspace?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        $query \u003d [\u0027foo\u0027 \u003d\u003e \u0027bar\u0027];"},{"line_number":67,"context_line":"        $this-\u003eurl-\u003esetQuery($query);"},{"line_number":68,"context_line":"        $this-\u003eassertEquals($query, $this-\u003eurl-\u003egetQuery());"},{"line_number":69,"context_line":"    }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    /**"},{"line_number":72,"context_line":"     * @expectedException \\InvalidArgumentException"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_1e2b69ec","line":69,"updated":"2014-05-29 21:37:04.000000000","message":"What if there is a query like `$url-\u003esetQuery(\u0027foo[]\u003dbar\u0026foo[]\u003dboo\u0027);`? Arrays in query strings happen. Is this supported? If so, can we get a test?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"d142495b864503772a39f79477c8b3d2febf7e47","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        $query \u003d [\u0027foo\u0027 \u003d\u003e \u0027bar\u0027];"},{"line_number":67,"context_line":"        $this-\u003eurl-\u003esetQuery($query);"},{"line_number":68,"context_line":"        $this-\u003eassertEquals($query, $this-\u003eurl-\u003egetQuery());"},{"line_number":69,"context_line":"    }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    /**"},{"line_number":72,"context_line":"     * @expectedException \\InvalidArgumentException"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_f1905950","line":69,"in_reply_to":"1ae5cdf2_1e2b69ec","updated":"2014-06-02 15:10:50.000000000","message":"Good catch - I\u0027ve added in this functionality and test","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"}],"tests/Tests/ObjectStore/v1/Resource/StreamWrapperTestCase.php":[{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"062951b7904c717b6acef765a21620b75ef62911","unresolved":false,"context_lines":[{"line_number":21,"context_line":"use OpenStack\\ObjectStore\\v1\\Resource\\StreamWrapper;"},{"line_number":22,"context_line":"use OpenStack\\Tests\\TestCase;"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"abstract class StreamWrapperTestCase extends TestCase"},{"line_number":25,"context_line":"{"},{"line_number":26,"context_line":"    const FTYPE        \u003d \u0027application/foo-bar; charset\u003diso-8859-13\u0027;"},{"line_number":27,"context_line":"    const DEFAULT_MODE \u003d \u0027nope\u0027;"}],"source_content_type":"text/x-php","patch_set":1,"id":"1ae5cdf2_7e11cdab","line":24,"updated":"2014-05-29 21:37:04.000000000","message":"Why is the StreamWrapperTestCase changed to an abstract class in a review for a URL class? Shouldn\u0027t this go on one of the other reviews in flight?","commit_id":"e3a2a39d6d6b77823ec118c9dfef1365df9f8088"}]}
