{"action":"created","issue":{"url":"https://api.github.com/repos/phpmd/phpmd/issues/439","repository_url":"https://api.github.com/repos/phpmd/phpmd","labels_url":"https://api.github.com/repos/phpmd/phpmd/issues/439/labels{/name}","comments_url":"https://api.github.com/repos/phpmd/phpmd/issues/439/comments","events_url":"https://api.github.com/repos/phpmd/phpmd/issues/439/events","html_url":"https://github.com/phpmd/phpmd/pull/439","id":207155879,"number":439,"title":"Factory for renderers","user":{"login":"Prytoegrian","id":5312739,"avatar_url":"https://avatars2.githubusercontent.com/u/5312739?v=3","gravatar_id":"","url":"https://api.github.com/users/Prytoegrian","html_url":"https://github.com/Prytoegrian","followers_url":"https://api.github.com/users/Prytoegrian/followers","following_url":"https://api.github.com/users/Prytoegrian/following{/other_user}","gists_url":"https://api.github.com/users/Prytoegrian/gists{/gist_id}","starred_url":"https://api.github.com/users/Prytoegrian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Prytoegrian/subscriptions","organizations_url":"https://api.github.com/users/Prytoegrian/orgs","repos_url":"https://api.github.com/users/Prytoegrian/repos","events_url":"https://api.github.com/users/Prytoegrian/events{/privacy}","received_events_url":"https://api.github.com/users/Prytoegrian/received_events","type":"User","site_admin":false},"labels":[{"id":13556439,"url":"https://api.github.com/repos/phpmd/phpmd/labels/Feature","name":"Feature","color":"d7e102","default":false},{"id":399101099,"url":"https://api.github.com/repos/phpmd/phpmd/labels/On%20Hold","name":"On Hold","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/phpmd/phpmd/milestones/17","html_url":"https://github.com/phpmd/phpmd/milestone/17","labels_url":"https://api.github.com/repos/phpmd/phpmd/milestones/17/labels","id":1386123,"number":17,"title":"Future","description":"","creator":{"login":"ravage84","id":625761,"avatar_url":"https://avatars2.githubusercontent.com/u/625761?v=3","gravatar_id":"","url":"https://api.github.com/users/ravage84","html_url":"https://github.com/ravage84","followers_url":"https://api.github.com/users/ravage84/followers","following_url":"https://api.github.com/users/ravage84/following{/other_user}","gists_url":"https://api.github.com/users/ravage84/gists{/gist_id}","starred_url":"https://api.github.com/users/ravage84/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravage84/subscriptions","organizations_url":"https://api.github.com/users/ravage84/orgs","repos_url":"https://api.github.com/users/ravage84/repos","events_url":"https://api.github.com/users/ravage84/events{/privacy}","received_events_url":"https://api.github.com/users/ravage84/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":2,"state":"open","created_at":"2015-10-30T20:33:33Z","updated_at":"2017-03-23T19:10:25Z","due_on":"2020-02-28T08:00:00Z","closed_at":null},"comments":5,"created_at":"2017-02-13T09:00:20Z","updated_at":"2017-06-02T13:43:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/phpmd/phpmd/pulls/439","html_url":"https://github.com/phpmd/phpmd/pull/439","diff_url":"https://github.com/phpmd/phpmd/pull/439.diff","patch_url":"https://github.com/phpmd/phpmd/pull/439.patch"},"body":"In order to contribute (add rules, correct bugs, …) in the future, I need to be more comfortable with your code, methods and practices. So I studied `Command` and `CommandLineOptions` and I decided to make some improvements to follow SRP in them. I also noted these classes might be agnostics of all renderers because at these steps, « renderable » notion isn't useful ; thus I created a `RendererFactory` to get a single entry point and display a common facade for consumers.\r\n\r\n## Factory\r\nI follow « Abstract Factory » design pattern in `RendererFactory`. I would also like to completely forbid constructions of `*Renderer` classes outside of `RendererFactory` entry point but I'm not sure it will stick to your coding convention so let me know your point of view about that.\r\nI didn't test `RendererFactory` yet, I need to know if my way corresponds to yours methods and designs before.\r\n\r\n  \r\nI also enhance contract on `*Renderer` classes by making them immutables (*a render **need** a writer to work*).\r\n\r\nPS : forgive my english, I'm rusted :yum: "},"comment":{"url":"https://api.github.com/repos/phpmd/phpmd/issues/comments/305791116","html_url":"https://github.com/phpmd/phpmd/pull/439#issuecomment-305791116","issue_url":"https://api.github.com/repos/phpmd/phpmd/issues/439","id":305791116,"user":{"login":"ravage84","id":625761,"avatar_url":"https://avatars2.githubusercontent.com/u/625761?v=3","gravatar_id":"","url":"https://api.github.com/users/ravage84","html_url":"https://github.com/ravage84","followers_url":"https://api.github.com/users/ravage84/followers","following_url":"https://api.github.com/users/ravage84/following{/other_user}","gists_url":"https://api.github.com/users/ravage84/gists{/gist_id}","starred_url":"https://api.github.com/users/ravage84/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravage84/subscriptions","organizations_url":"https://api.github.com/users/ravage84/orgs","repos_url":"https://api.github.com/users/ravage84/repos","events_url":"https://api.github.com/users/ravage84/events{/privacy}","received_events_url":"https://api.github.com/users/ravage84/received_events","type":"User","site_admin":false},"created_at":"2017-06-02T13:43:56Z","updated_at":"2017-06-02T13:43:56Z","body":"@Prytoegrian sorry, didn't have and don't have time to help you on this. I keep this PR open."}}
{"actor":{"display_login":"ravage84"}}