{"action":"created","comment":{"url":"https://api.github.com/repos/doomspork/ua_parser/pulls/comments/93558883","pull_request_review_id":14088741,"id":93558883,"diff_hunk":"@@ -14,7 +14,7 @@ defmodule UAParser.Device do\n     iex> to_string(device)\n     \"Other\"\n   \"\"\"\n-  defstruct [:family]\n+  defstruct [:family, :brand, :model]","path":"lib/ua_parser/device.ex","position":5,"original_position":5,"commit_id":"055e9fc6e6b088d86d25cf94cc97143d0a14355a","original_commit_id":"055e9fc6e6b088d86d25cf94cc97143d0a14355a","user":{"login":"doomspork","id":73386,"avatar_url":"https://avatars.githubusercontent.com/u/73386?v=3","gravatar_id":"","url":"https://api.github.com/users/doomspork","html_url":"https://github.com/doomspork","followers_url":"https://api.github.com/users/doomspork/followers","following_url":"https://api.github.com/users/doomspork/following{/other_user}","gists_url":"https://api.github.com/users/doomspork/gists{/gist_id}","starred_url":"https://api.github.com/users/doomspork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doomspork/subscriptions","organizations_url":"https://api.github.com/users/doomspork/orgs","repos_url":"https://api.github.com/users/doomspork/repos","events_url":"https://api.github.com/users/doomspork/events{/privacy}","received_events_url":"https://api.github.com/users/doomspork/received_events","type":"User","site_admin":false},"body":"Could you sort these alphabetically?","created_at":"2016-12-22T02:51:46Z","updated_at":"2016-12-22T02:59:37Z","html_url":"https://github.com/doomspork/ua_parser/pull/9#discussion_r93558883","pull_request_url":"https://api.github.com/repos/doomspork/ua_parser/pulls/9","_links":{"self":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/comments/93558883"},"html":{"href":"https://github.com/doomspork/ua_parser/pull/9#discussion_r93558883"},"pull_request":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/9"}}},"pull_request":{"url":"https://api.github.com/repos/doomspork/ua_parser/pulls/9","id":98797594,"html_url":"https://github.com/doomspork/ua_parser/pull/9","diff_url":"https://github.com/doomspork/ua_parser/pull/9.diff","patch_url":"https://github.com/doomspork/ua_parser/pull/9.patch","issue_url":"https://api.github.com/repos/doomspork/ua_parser/issues/9","number":9,"state":"open","locked":false,"title":"Device model and brand + Remove GenServer dependency.","user":{"login":"fertel","id":415902,"avatar_url":"https://avatars.githubusercontent.com/u/415902?v=3","gravatar_id":"","url":"https://api.github.com/users/fertel","html_url":"https://github.com/fertel","followers_url":"https://api.github.com/users/fertel/followers","following_url":"https://api.github.com/users/fertel/following{/other_user}","gists_url":"https://api.github.com/users/fertel/gists{/gist_id}","starred_url":"https://api.github.com/users/fertel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fertel/subscriptions","organizations_url":"https://api.github.com/users/fertel/orgs","repos_url":"https://api.github.com/users/fertel/repos","events_url":"https://api.github.com/users/fertel/events{/privacy}","received_events_url":"https://api.github.com/users/fertel/received_events","type":"User","site_admin":false},"body":"Happy to keep this as fork of this if the changes are too drastic.\r\n\r\n1. Using a GenServer is an unnecessary bottleneck especially when you are able to load the yaml at compile time - and you aren't doing any work inside the worker process besides holding state.  Although another option would be to use ets to store the data. I can dig in deeper but its harder to configure which yaml file you actually use. Honestly didn't look that far into Yomel the yaml parser being used - but essentially it made sense as it didn't start an application. You would actually start to see the mailbox fill up on the Storage GenServer at a reasonable scale\r\n\r\n2. Maps have slightly better performance than keyword lists. Granted the ones you used are super small - so not really a huge difference.\r\n\r\n3. Added model and brand to device parsing.","created_at":"2016-12-20T18:05:46Z","updated_at":"2016-12-22T02:59:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"909ed12a9a905cb22735361d174626717ba71544","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/doomspork/ua_parser/pulls/9/commits","review_comments_url":"https://api.github.com/repos/doomspork/ua_parser/pulls/9/comments","review_comment_url":"https://api.github.com/repos/doomspork/ua_parser/pulls/comments{/number}","comments_url":"https://api.github.com/repos/doomspork/ua_parser/issues/9/comments","statuses_url":"https://api.github.com/repos/doomspork/ua_parser/statuses/055e9fc6e6b088d86d25cf94cc97143d0a14355a","head":{"label":"adqio:master","ref":"master","sha":"055e9fc6e6b088d86d25cf94cc97143d0a14355a","user":{"login":"adqio","id":6086138,"avatar_url":"https://avatars.githubusercontent.com/u/6086138?v=3","gravatar_id":"","url":"https://api.github.com/users/adqio","html_url":"https://github.com/adqio","followers_url":"https://api.github.com/users/adqio/followers","following_url":"https://api.github.com/users/adqio/following{/other_user}","gists_url":"https://api.github.com/users/adqio/gists{/gist_id}","starred_url":"https://api.github.com/users/adqio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adqio/subscriptions","organizations_url":"https://api.github.com/users/adqio/orgs","repos_url":"https://api.github.com/users/adqio/repos","events_url":"https://api.github.com/users/adqio/events{/privacy}","received_events_url":"https://api.github.com/users/adqio/received_events","type":"Organization","site_admin":false},"repo":{"id":76978681,"name":"ua_parser","full_name":"adqio/ua_parser","owner":{"login":"adqio","id":6086138,"avatar_url":"https://avatars.githubusercontent.com/u/6086138?v=3","gravatar_id":"","url":"https://api.github.com/users/adqio","html_url":"https://github.com/adqio","followers_url":"https://api.github.com/users/adqio/followers","following_url":"https://api.github.com/users/adqio/following{/other_user}","gists_url":"https://api.github.com/users/adqio/gists{/gist_id}","starred_url":"https://api.github.com/users/adqio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adqio/subscriptions","organizations_url":"https://api.github.com/users/adqio/orgs","repos_url":"https://api.github.com/users/adqio/repos","events_url":"https://api.github.com/users/adqio/events{/privacy}","received_events_url":"https://api.github.com/users/adqio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/adqio/ua_parser","description":"UserAgentParser implementation for Elixir","fork":true,"url":"https://api.github.com/repos/adqio/ua_parser","forks_url":"https://api.github.com/repos/adqio/ua_parser/forks","keys_url":"https://api.github.com/repos/adqio/ua_parser/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adqio/ua_parser/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adqio/ua_parser/teams","hooks_url":"https://api.github.com/repos/adqio/ua_parser/hooks","issue_events_url":"https://api.github.com/repos/adqio/ua_parser/issues/events{/number}","events_url":"https://api.github.com/repos/adqio/ua_parser/events","assignees_url":"https://api.github.com/repos/adqio/ua_parser/assignees{/user}","branches_url":"https://api.github.com/repos/adqio/ua_parser/branches{/branch}","tags_url":"https://api.github.com/repos/adqio/ua_parser/tags","blobs_url":"https://api.github.com/repos/adqio/ua_parser/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adqio/ua_parser/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adqio/ua_parser/git/refs{/sha}","trees_url":"https://api.github.com/repos/adqio/ua_parser/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adqio/ua_parser/statuses/{sha}","languages_url":"https://api.github.com/repos/adqio/ua_parser/languages","stargazers_url":"https://api.github.com/repos/adqio/ua_parser/stargazers","contributors_url":"https://api.github.com/repos/adqio/ua_parser/contributors","subscribers_url":"https://api.github.com/repos/adqio/ua_parser/subscribers","subscription_url":"https://api.github.com/repos/adqio/ua_parser/subscription","commits_url":"https://api.github.com/repos/adqio/ua_parser/commits{/sha}","git_commits_url":"https://api.github.com/repos/adqio/ua_parser/git/commits{/sha}","comments_url":"https://api.github.com/repos/adqio/ua_parser/comments{/number}","issue_comment_url":"https://api.github.com/repos/adqio/ua_parser/issues/comments{/number}","contents_url":"https://api.github.com/repos/adqio/ua_parser/contents/{+path}","compare_url":"https://api.github.com/repos/adqio/ua_parser/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adqio/ua_parser/merges","archive_url":"https://api.github.com/repos/adqio/ua_parser/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adqio/ua_parser/downloads","issues_url":"https://api.github.com/repos/adqio/ua_parser/issues{/number}","pulls_url":"https://api.github.com/repos/adqio/ua_parser/pulls{/number}","milestones_url":"https://api.github.com/repos/adqio/ua_parser/milestones{/number}","notifications_url":"https://api.github.com/repos/adqio/ua_parser/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adqio/ua_parser/labels{/name}","releases_url":"https://api.github.com/repos/adqio/ua_parser/releases{/id}","deployments_url":"https://api.github.com/repos/adqio/ua_parser/deployments","created_at":"2016-12-20T17:44:35Z","updated_at":"2016-12-20T17:44:36Z","pushed_at":"2016-12-20T17:53:50Z","git_url":"git://github.com/adqio/ua_parser.git","ssh_url":"git@github.com:adqio/ua_parser.git","clone_url":"https://github.com/adqio/ua_parser.git","svn_url":"https://github.com/adqio/ua_parser","homepage":null,"size":125,"stargazers_count":0,"watchers_count":0,"language":"Elixir","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"doomspork:master","ref":"master","sha":"59b8e1d096dfab6b0985a46d44899ba162b011ee","user":{"login":"doomspork","id":73386,"avatar_url":"https://avatars.githubusercontent.com/u/73386?v=3","gravatar_id":"","url":"https://api.github.com/users/doomspork","html_url":"https://github.com/doomspork","followers_url":"https://api.github.com/users/doomspork/followers","following_url":"https://api.github.com/users/doomspork/following{/other_user}","gists_url":"https://api.github.com/users/doomspork/gists{/gist_id}","starred_url":"https://api.github.com/users/doomspork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doomspork/subscriptions","organizations_url":"https://api.github.com/users/doomspork/orgs","repos_url":"https://api.github.com/users/doomspork/repos","events_url":"https://api.github.com/users/doomspork/events{/privacy}","received_events_url":"https://api.github.com/users/doomspork/received_events","type":"User","site_admin":false},"repo":{"id":73837149,"name":"ua_parser","full_name":"doomspork/ua_parser","owner":{"login":"doomspork","id":73386,"avatar_url":"https://avatars.githubusercontent.com/u/73386?v=3","gravatar_id":"","url":"https://api.github.com/users/doomspork","html_url":"https://github.com/doomspork","followers_url":"https://api.github.com/users/doomspork/followers","following_url":"https://api.github.com/users/doomspork/following{/other_user}","gists_url":"https://api.github.com/users/doomspork/gists{/gist_id}","starred_url":"https://api.github.com/users/doomspork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doomspork/subscriptions","organizations_url":"https://api.github.com/users/doomspork/orgs","repos_url":"https://api.github.com/users/doomspork/repos","events_url":"https://api.github.com/users/doomspork/events{/privacy}","received_events_url":"https://api.github.com/users/doomspork/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/doomspork/ua_parser","description":"UserAgentParser implementation for Elixir","fork":false,"url":"https://api.github.com/repos/doomspork/ua_parser","forks_url":"https://api.github.com/repos/doomspork/ua_parser/forks","keys_url":"https://api.github.com/repos/doomspork/ua_parser/keys{/key_id}","collaborators_url":"https://api.github.com/repos/doomspork/ua_parser/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/doomspork/ua_parser/teams","hooks_url":"https://api.github.com/repos/doomspork/ua_parser/hooks","issue_events_url":"https://api.github.com/repos/doomspork/ua_parser/issues/events{/number}","events_url":"https://api.github.com/repos/doomspork/ua_parser/events","assignees_url":"https://api.github.com/repos/doomspork/ua_parser/assignees{/user}","branches_url":"https://api.github.com/repos/doomspork/ua_parser/branches{/branch}","tags_url":"https://api.github.com/repos/doomspork/ua_parser/tags","blobs_url":"https://api.github.com/repos/doomspork/ua_parser/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/doomspork/ua_parser/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/doomspork/ua_parser/git/refs{/sha}","trees_url":"https://api.github.com/repos/doomspork/ua_parser/git/trees{/sha}","statuses_url":"https://api.github.com/repos/doomspork/ua_parser/statuses/{sha}","languages_url":"https://api.github.com/repos/doomspork/ua_parser/languages","stargazers_url":"https://api.github.com/repos/doomspork/ua_parser/stargazers","contributors_url":"https://api.github.com/repos/doomspork/ua_parser/contributors","subscribers_url":"https://api.github.com/repos/doomspork/ua_parser/subscribers","subscription_url":"https://api.github.com/repos/doomspork/ua_parser/subscription","commits_url":"https://api.github.com/repos/doomspork/ua_parser/commits{/sha}","git_commits_url":"https://api.github.com/repos/doomspork/ua_parser/git/commits{/sha}","comments_url":"https://api.github.com/repos/doomspork/ua_parser/comments{/number}","issue_comment_url":"https://api.github.com/repos/doomspork/ua_parser/issues/comments{/number}","contents_url":"https://api.github.com/repos/doomspork/ua_parser/contents/{+path}","compare_url":"https://api.github.com/repos/doomspork/ua_parser/compare/{base}...{head}","merges_url":"https://api.github.com/repos/doomspork/ua_parser/merges","archive_url":"https://api.github.com/repos/doomspork/ua_parser/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/doomspork/ua_parser/downloads","issues_url":"https://api.github.com/repos/doomspork/ua_parser/issues{/number}","pulls_url":"https://api.github.com/repos/doomspork/ua_parser/pulls{/number}","milestones_url":"https://api.github.com/repos/doomspork/ua_parser/milestones{/number}","notifications_url":"https://api.github.com/repos/doomspork/ua_parser/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/doomspork/ua_parser/labels{/name}","releases_url":"https://api.github.com/repos/doomspork/ua_parser/releases{/id}","deployments_url":"https://api.github.com/repos/doomspork/ua_parser/deployments","created_at":"2016-11-15T17:14:02Z","updated_at":"2016-12-01T22:17:17Z","pushed_at":"2016-12-20T18:05:46Z","git_url":"git://github.com/doomspork/ua_parser.git","ssh_url":"git@github.com:doomspork/ua_parser.git","clone_url":"https://github.com/doomspork/ua_parser.git","svn_url":"https://github.com/doomspork/ua_parser","homepage":null,"size":129,"stargazers_count":4,"watchers_count":4,"language":"Elixir","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":1,"forks":2,"open_issues":1,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/9"},"html":{"href":"https://github.com/doomspork/ua_parser/pull/9"},"issue":{"href":"https://api.github.com/repos/doomspork/ua_parser/issues/9"},"comments":{"href":"https://api.github.com/repos/doomspork/ua_parser/issues/9/comments"},"review_comments":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/9/comments"},"review_comment":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/doomspork/ua_parser/pulls/9/commits"},"statuses":{"href":"https://api.github.com/repos/doomspork/ua_parser/statuses/055e9fc6e6b088d86d25cf94cc97143d0a14355a"}}}}
{"actor":{"display_login":"doomspork"}}