{"action":"created","issue":{"url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/47","repository_url":"https://api.github.com/repos/gmusic-utils/gmusic.js","labels_url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/47/labels{/name}","comments_url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/47/comments","events_url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/47/events","html_url":"https://github.com/gmusic-utils/gmusic.js/issues/47","id":166737356,"number":47,"title":"Discussion: Moving `gmusic.js` to an extensible ES6 style","user":{"login":"MarshallOfSound","id":6634592,"avatar_url":"https://avatars.githubusercontent.com/u/6634592?v=3","gravatar_id":"","url":"https://api.github.com/users/MarshallOfSound","html_url":"https://github.com/MarshallOfSound","followers_url":"https://api.github.com/users/MarshallOfSound/followers","following_url":"https://api.github.com/users/MarshallOfSound/following{/other_user}","gists_url":"https://api.github.com/users/MarshallOfSound/gists{/gist_id}","starred_url":"https://api.github.com/users/MarshallOfSound/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarshallOfSound/subscriptions","organizations_url":"https://api.github.com/users/MarshallOfSound/orgs","repos_url":"https://api.github.com/users/MarshallOfSound/repos","events_url":"https://api.github.com/users/MarshallOfSound/events{/privacy}","received_events_url":"https://api.github.com/users/MarshallOfSound/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/gmusic-utils/gmusic.js/labels/Discussion","name":"Discussion","color":"c2e0c6"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2016-07-21T04:56:19Z","updated_at":"2016-07-21T23:33:03Z","closed_at":"2016-07-21T09:08:50Z","body":"Moved this issue to the correct repo\r\n\r\nCurrent `gmusic.js` is a bit messy.  All of our namespaces and methods are in one file, all the selectors are in that file as well.  Realisticly we should have separate files for each namespace.\r\n\r\nI would like to propose that we (me) port `gmusic.js` to the same style of files as `gmusic-ui.js` (with a couple of technicaly structure tweaks).\r\n\r\nThe main goal of this port is to\r\n* Make the learning curve in contributing to the repo much easier\r\n* Provide a simple API (the `GMusicNamespace` class) to extend the `GMusic` prototype\r\n* Clean up the code in general by splitting the namespaces into modules\r\n* Move the binding logic away from us and onto the ES6 transpilers\r\n\r\nI'm keen to do this, just looking for feedback before I start to tackle it.\r\n\r\nFor those unfamiliar with how `GMusic-UI.js` works we have a base [`GMusicNamespace`](https://github.com/gmusic-utils/gmusic-ui.js/blob/master/src/GMusicNamespace.js) class which all our namespaces extend.  You then call `addMethod` within the namespace to make a method public and everything else is handled behind the scenes.\r\n\r\n/cc @gmusic-utils/gmusic-js @gmusic-utils/gmusic-ui-js "},"comment":{"url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/comments/234415139","html_url":"https://github.com/gmusic-utils/gmusic.js/issues/47#issuecomment-234415139","issue_url":"https://api.github.com/repos/gmusic-utils/gmusic.js/issues/47","id":234415139,"user":{"login":"MarshallOfSound","id":6634592,"avatar_url":"https://avatars.githubusercontent.com/u/6634592?v=3","gravatar_id":"","url":"https://api.github.com/users/MarshallOfSound","html_url":"https://github.com/MarshallOfSound","followers_url":"https://api.github.com/users/MarshallOfSound/followers","following_url":"https://api.github.com/users/MarshallOfSound/following{/other_user}","gists_url":"https://api.github.com/users/MarshallOfSound/gists{/gist_id}","starred_url":"https://api.github.com/users/MarshallOfSound/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarshallOfSound/subscriptions","organizations_url":"https://api.github.com/users/MarshallOfSound/orgs","repos_url":"https://api.github.com/users/MarshallOfSound/repos","events_url":"https://api.github.com/users/MarshallOfSound/events{/privacy}","received_events_url":"https://api.github.com/users/MarshallOfSound/received_events","type":"User","site_admin":false},"created_at":"2016-07-21T23:33:03Z","updated_at":"2016-07-21T23:33:03Z","body":"@twolfson Pretty much.  That's basically all the ES6 we can use in this repo.\r\n\r\nThere are some other neat features we can use like [Template Literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals) and proper `this` scoping just comes with the package.  The actual logic and high level structure wouldn't change that much."}}
{"actor":{"display_login":"MarshallOfSound"}}