{"action":"created","issue":{"url":"https://api.github.com/repos/solher/arangolite/issues/9","labels_url":"https://api.github.com/repos/solher/arangolite/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/solher/arangolite/issues/9/comments","events_url":"https://api.github.com/repos/solher/arangolite/issues/9/events","html_url":"https://github.com/solher/arangolite/issues/9","id":128203867,"number":9,"title":"Allow for extension of the library with change to Runnable","user":{"login":"snocorp","id":1159675,"avatar_url":"https://avatars.githubusercontent.com/u/1159675?v=3","gravatar_id":"","url":"https://api.github.com/users/snocorp","html_url":"https://github.com/snocorp","followers_url":"https://api.github.com/users/snocorp/followers","following_url":"https://api.github.com/users/snocorp/following{/other_user}","gists_url":"https://api.github.com/users/snocorp/gists{/gist_id}","starred_url":"https://api.github.com/users/snocorp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snocorp/subscriptions","organizations_url":"https://api.github.com/users/snocorp/orgs","repos_url":"https://api.github.com/users/snocorp/repos","events_url":"https://api.github.com/users/snocorp/events{/privacy}","received_events_url":"https://api.github.com/users/snocorp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-22T17:27:18Z","updated_at":"2016-01-22T18:04:20Z","closed_at":null,"body":"I've just started using your library in a project and I really like the API. I can definitely understand wanting to avoid creating an overly complex API as it makes it complicated to maintain and becomes a barrier to adoption.\r\n\r\nMy use case for Arango is a bit different than the original intent of arangolite in that I need to be able to create documents and perform a few other API calls. Instead of adding bloat to your library, I would like to propose a change to the Runnable interface to allow for extensions to be created instead.\r\n\r\nThe change would be to export the methods in Runnable as follows:\r\n```go\r\ntype Runnable interface {\r\n\tDescription() string // Description shown in the logger\r\n\tGenerate() []byte    // The body of the request\r\n\tPath() string        // The path where to send the request\r\n\tMethod() string      // The HTTP method to use\r\n}\r\n```\r\n\r\nThis would require changing all the existing Runnables in your library but would then allow others to extend the library by simple creating new Runnable implementations and passing them to `DB.Run`.\r\n\r\nLet me know if this would be acceptable and I can create a PR to make the changes."},"comment":{"url":"https://api.github.com/repos/solher/arangolite/issues/comments/173994897","html_url":"https://github.com/solher/arangolite/issues/9#issuecomment-173994897","issue_url":"https://api.github.com/repos/solher/arangolite/issues/9","id":173994897,"user":{"login":"solher","id":5517733,"avatar_url":"https://avatars.githubusercontent.com/u/5517733?v=3","gravatar_id":"","url":"https://api.github.com/users/solher","html_url":"https://github.com/solher","followers_url":"https://api.github.com/users/solher/followers","following_url":"https://api.github.com/users/solher/following{/other_user}","gists_url":"https://api.github.com/users/solher/gists{/gist_id}","starred_url":"https://api.github.com/users/solher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/solher/subscriptions","organizations_url":"https://api.github.com/users/solher/orgs","repos_url":"https://api.github.com/users/solher/repos","events_url":"https://api.github.com/users/solher/events{/privacy}","received_events_url":"https://api.github.com/users/solher/received_events","type":"User","site_admin":false},"created_at":"2016-01-22T18:04:20Z","updated_at":"2016-01-22T18:04:20Z","body":"Done ;)"}}