{"action":"created","issue":{"url":"https://api.github.com/repos/Imterra/utilities/issues/31","labels_url":"https://api.github.com/repos/Imterra/utilities/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/Imterra/utilities/issues/31/comments","events_url":"https://api.github.com/repos/Imterra/utilities/issues/31/events","html_url":"https://github.com/Imterra/utilities/pull/31","id":60217682,"number":31,"title":"parsers: Sections are now represented using tuple.","user":{"login":"pepol","id":198600,"avatar_url":"https://avatars.githubusercontent.com/u/198600?v=3","gravatar_id":"","url":"https://api.github.com/users/pepol","html_url":"https://github.com/pepol","followers_url":"https://api.github.com/users/pepol/followers","following_url":"https://api.github.com/users/pepol/following{/other_user}","gists_url":"https://api.github.com/users/pepol/gists{/gist_id}","starred_url":"https://api.github.com/users/pepol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pepol/subscriptions","organizations_url":"https://api.github.com/users/pepol/orgs","repos_url":"https://api.github.com/users/pepol/repos","events_url":"https://api.github.com/users/pepol/events{/privacy}","received_events_url":"https://api.github.com/users/pepol/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Imterra/utilities/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"JakubNvk","id":7687646,"avatar_url":"https://avatars.githubusercontent.com/u/7687646?v=3","gravatar_id":"","url":"https://api.github.com/users/JakubNvk","html_url":"https://github.com/JakubNvk","followers_url":"https://api.github.com/users/JakubNvk/followers","following_url":"https://api.github.com/users/JakubNvk/following{/other_user}","gists_url":"https://api.github.com/users/JakubNvk/gists{/gist_id}","starred_url":"https://api.github.com/users/JakubNvk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JakubNvk/subscriptions","organizations_url":"https://api.github.com/users/JakubNvk/orgs","repos_url":"https://api.github.com/users/JakubNvk/repos","events_url":"https://api.github.com/users/JakubNvk/events{/privacy}","received_events_url":"https://api.github.com/users/JakubNvk/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/Imterra/utilities/milestones/1","html_url":"https://github.com/Imterra/utilities/milestones/ICF%20Parsers","labels_url":"https://api.github.com/repos/Imterra/utilities/milestones/1/labels","id":961344,"number":1,"title":"ICF Parsers","description":"ICF is a config format used internally at Imterra to provide single interface for service configuration and deployment.\r\n\r\nThere is (obviously) a need for ICF parser libraries for every major language used at Imterra. These libraries should define following:\r\n\r\n - 2 methods:\r\n  - Parse From File - receiving path to config file, returning an instance of \"config data\" class.\r\n  - Parse From String - receiving string (config file content) and returning an instance of \"config data\" class.\r\n - a class containing parsed string in native form for given language. In case of C, this would be struct, in case of OOP languages, some class with following methods:\r\n  - List All Sections - returns all section names of config file.\r\n  - Get Section - returns section representation (probably a class of its own) for section with given name.\r\n - a class containing section data, providing:\r\n  - List All Variables - returns list of variable names defined within section.\r\n  - List All Subsections - same as \"List All Sections\" above.\r\n  - Get Variable Value - returns value of variable with given name.","creator":{"login":"pepol","id":198600,"avatar_url":"https://avatars.githubusercontent.com/u/198600?v=3","gravatar_id":"","url":"https://api.github.com/users/pepol","html_url":"https://github.com/pepol","followers_url":"https://api.github.com/users/pepol/followers","following_url":"https://api.github.com/users/pepol/following{/other_user}","gists_url":"https://api.github.com/users/pepol/gists{/gist_id}","starred_url":"https://api.github.com/users/pepol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pepol/subscriptions","organizations_url":"https://api.github.com/users/pepol/orgs","repos_url":"https://api.github.com/users/pepol/repos","events_url":"https://api.github.com/users/pepol/events{/privacy}","received_events_url":"https://api.github.com/users/pepol/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":11,"state":"open","created_at":"2015-02-02T12:59:31Z","updated_at":"2015-03-07T18:17:42Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-03-07T18:17:29Z","updated_at":"2015-03-08T14:42:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Imterra/utilities/pulls/31","html_url":"https://github.com/Imterra/utilities/pull/31","diff_url":"https://github.com/Imterra/utilities/pull/31.diff","patch_url":"https://github.com/Imterra/utilities/pull/31.patch"},"body":" - regex returns tuple of all matched groups.\r\n - it is possible to use this tuple as a dict key directly, instead\r\n   of using strings.\r\n - it is more effective to use this tuple directly, instead of\r\n   joining the strings together and then having to split them up\r\n   again.\r\n\r\nIssue: #2\r\nReviewer: @JakubNvk\r\nCc: @milancerny @Anna-Rebeka\r\n\r\nNote: Tested extensively, but I recommend doing your own tests as well."},"comment":{"url":"https://api.github.com/repos/Imterra/utilities/issues/comments/77752680","html_url":"https://github.com/Imterra/utilities/pull/31#issuecomment-77752680","issue_url":"https://api.github.com/repos/Imterra/utilities/issues/31","id":77752680,"user":{"login":"JakubNvk","id":7687646,"avatar_url":"https://avatars.githubusercontent.com/u/7687646?v=3","gravatar_id":"","url":"https://api.github.com/users/JakubNvk","html_url":"https://github.com/JakubNvk","followers_url":"https://api.github.com/users/JakubNvk/followers","following_url":"https://api.github.com/users/JakubNvk/following{/other_user}","gists_url":"https://api.github.com/users/JakubNvk/gists{/gist_id}","starred_url":"https://api.github.com/users/JakubNvk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JakubNvk/subscriptions","organizations_url":"https://api.github.com/users/JakubNvk/orgs","repos_url":"https://api.github.com/users/JakubNvk/repos","events_url":"https://api.github.com/users/JakubNvk/events{/privacy}","received_events_url":"https://api.github.com/users/JakubNvk/received_events","type":"User","site_admin":false},"created_at":"2015-03-08T14:42:58Z","updated_at":"2015-03-08T14:42:58Z","body":"@pepol i like this change! lgtm"}}