{"action":"created","issue":{"url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/176","labels_url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/176/labels{/name}","comments_url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/176/comments","events_url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/176/events","html_url":"https://github.com/angular-ui/ui-leaflet/issues/176","id":114880367,"number":176,"title":"Unixify Plugins / Leaflet Extensions","user":{"login":"nmccready","id":583593,"avatar_url":"https://avatars.githubusercontent.com/u/583593?v=3","gravatar_id":"","url":"https://api.github.com/users/nmccready","html_url":"https://github.com/nmccready","followers_url":"https://api.github.com/users/nmccready/followers","following_url":"https://api.github.com/users/nmccready/following{/other_user}","gists_url":"https://api.github.com/users/nmccready/gists{/gist_id}","starred_url":"https://api.github.com/users/nmccready/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmccready/subscriptions","organizations_url":"https://api.github.com/users/nmccready/orgs","repos_url":"https://api.github.com/users/nmccready/repos","events_url":"https://api.github.com/users/nmccready/events{/privacy}","received_events_url":"https://api.github.com/users/nmccready/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular-ui/ui-leaflet/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/angular-ui/ui-leaflet/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular-ui/ui-leaflet/milestones/2","html_url":"https://github.com/angular-ui/ui-leaflet/milestones/2.0.0%20(leaflet%201x)","labels_url":"https://api.github.com/repos/angular-ui/ui-leaflet/milestones/2/labels","id":1384098,"number":2,"title":"2.0.0 (leaflet 1x)","description":"","creator":{"login":"nmccready","id":583593,"avatar_url":"https://avatars.githubusercontent.com/u/583593?v=3","gravatar_id":"","url":"https://api.github.com/users/nmccready","html_url":"https://github.com/nmccready","followers_url":"https://api.github.com/users/nmccready/followers","following_url":"https://api.github.com/users/nmccready/following{/other_user}","gists_url":"https://api.github.com/users/nmccready/gists{/gist_id}","starred_url":"https://api.github.com/users/nmccready/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmccready/subscriptions","organizations_url":"https://api.github.com/users/nmccready/orgs","repos_url":"https://api.github.com/users/nmccready/repos","events_url":"https://api.github.com/users/nmccready/events{/privacy}","received_events_url":"https://api.github.com/users/nmccready/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":3,"state":"open","created_at":"2015-10-29T19:14:36Z","updated_at":"2015-11-03T20:28:17Z","due_on":"2015-12-31T05:00:00Z","closed_at":null},"comments":7,"created_at":"2015-11-03T18:30:44Z","updated_at":"2015-11-04T10:47:03Z","closed_at":null,"body":"The current implementation of supporting plugins is very monolithic and puts a lot of complexity into the core of ui-leaflet. Myself and @jessertaylor are proposing we de-scope ui-leaflet and come up with a more plugin framework approach so that we can decorate directives, services, and or factories.\r\n\r\nThis would put more responsibility on individual repos looking to extend the features of what we provide in house. \r\n\r\nPros:\r\n\r\n- code complexity and supporting several plugins should go down\r\n- when a new leaflet plugin is added we wont have to accept a PR from someone to modify the core, they just create a new plugin which we can load dynamically\r\n\r\nCons:\r\n- a lot of existing implementation will have to be rewritten and no longer be compatible. Being this is a 2.0.0 / major break this should be ok.\r\n- developers won't have a one place does it all so less of a convenience\r\n- possible performance overhead.. (if designed poorly)."},"comment":{"url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/comments/153681489","html_url":"https://github.com/angular-ui/ui-leaflet/issues/176#issuecomment-153681489","issue_url":"https://api.github.com/repos/angular-ui/ui-leaflet/issues/176","id":153681489,"user":{"login":"jessertaylor","id":2971832,"avatar_url":"https://avatars.githubusercontent.com/u/2971832?v=3","gravatar_id":"","url":"https://api.github.com/users/jessertaylor","html_url":"https://github.com/jessertaylor","followers_url":"https://api.github.com/users/jessertaylor/followers","following_url":"https://api.github.com/users/jessertaylor/following{/other_user}","gists_url":"https://api.github.com/users/jessertaylor/gists{/gist_id}","starred_url":"https://api.github.com/users/jessertaylor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jessertaylor/subscriptions","organizations_url":"https://api.github.com/users/jessertaylor/orgs","repos_url":"https://api.github.com/users/jessertaylor/repos","events_url":"https://api.github.com/users/jessertaylor/events{/privacy}","received_events_url":"https://api.github.com/users/jessertaylor/received_events","type":"User","site_admin":false},"created_at":"2015-11-04T10:47:03Z","updated_at":"2015-11-04T10:47:03Z","body":"The way ui-grid have done it may be a good example? https://github.com/angular-ui/ui-grid/tree/master/src/features\r\n\r\n\"Plugin architecture allows you to use only the features you need\""}}