{"action":"created","comment":{"url":"https://api.github.com/repos/theforeman/foreman/pulls/comments/38307330","id":38307330,"diff_hunk":"@@ -14,9 +14,16 @@ def update_counter_caches\n         if key =~ /_id/\n           association = self.association(key.sub(/_id$/, '').to_sym)\n           if association.options[ :counter_cache ]\n-            counter_name = self.class.name.underscore.split(\"/\")[0].pluralize.to_sym\n-            association.klass.reset_counters(old_value, counter_name) if old_value\n-            association.klass.reset_counters(new_value, counter_name) if new_value\n+\n+            if association.options[:inverse_of].is_a?(Symbol)\n+              counter_name = association.options[:inverse_of]\n+            else\n+              counter_name = self.class.name.underscore.split(\"/\")[0].pluralize.to_sym\n+            end\n+\n+            association_name = counter_name.to_s.sub(/_count$/, \"\").to_sym","path":"app/models/concerns/counter_cache_fix.rb","position":14,"original_position":14,"commit_id":"7df35f4c12f0f06a202852b807b9b7cb8019ba77","original_commit_id":"61c45097c73324f0bd62a9b8e8faf69cae0e7979","user":{"login":"unorthodoxgeek","id":706359,"avatar_url":"https://avatars.githubusercontent.com/u/706359?v=3","gravatar_id":"","url":"https://api.github.com/users/unorthodoxgeek","html_url":"https://github.com/unorthodoxgeek","followers_url":"https://api.github.com/users/unorthodoxgeek/followers","following_url":"https://api.github.com/users/unorthodoxgeek/following{/other_user}","gists_url":"https://api.github.com/users/unorthodoxgeek/gists{/gist_id}","starred_url":"https://api.github.com/users/unorthodoxgeek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unorthodoxgeek/subscriptions","organizations_url":"https://api.github.com/users/unorthodoxgeek/orgs","repos_url":"https://api.github.com/users/unorthodoxgeek/repos","events_url":"https://api.github.com/users/unorthodoxgeek/events{/privacy}","received_events_url":"https://api.github.com/users/unorthodoxgeek/received_events","type":"User","site_admin":false},"body":"don't know about rails 4, I can test it and see. you want me to put a comment in the code explaining this?","created_at":"2015-08-31T12:36:23Z","updated_at":"2015-08-31T12:36:23Z","html_url":"https://github.com/theforeman/foreman/pull/2466#discussion_r38307330","pull_request_url":"https://api.github.com/repos/theforeman/foreman/pulls/2466","_links":{"self":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/comments/38307330"},"html":{"href":"https://github.com/theforeman/foreman/pull/2466#discussion_r38307330"},"pull_request":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/2466"}}},"pull_request":{"url":"https://api.github.com/repos/theforeman/foreman/pulls/2466","id":37789998,"html_url":"https://github.com/theforeman/foreman/pull/2466","diff_url":"https://github.com/theforeman/foreman/pull/2466.diff","patch_url":"https://github.com/theforeman/foreman/pull/2466.patch","issue_url":"https://api.github.com/repos/theforeman/foreman/issues/2466","number":2466,"state":"open","locked":false,"title":"fixes #10832 - separating lookup keys into puppet and variable","user":{"login":"unorthodoxgeek","id":706359,"avatar_url":"https://avatars.githubusercontent.com/u/706359?v=3","gravatar_id":"","url":"https://api.github.com/users/unorthodoxgeek","html_url":"https://github.com/unorthodoxgeek","followers_url":"https://api.github.com/users/unorthodoxgeek/followers","following_url":"https://api.github.com/users/unorthodoxgeek/following{/other_user}","gists_url":"https://api.github.com/users/unorthodoxgeek/gists{/gist_id}","starred_url":"https://api.github.com/users/unorthodoxgeek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unorthodoxgeek/subscriptions","organizations_url":"https://api.github.com/users/unorthodoxgeek/orgs","repos_url":"https://api.github.com/users/unorthodoxgeek/repos","events_url":"https://api.github.com/users/unorthodoxgeek/events{/privacy}","received_events_url":"https://api.github.com/users/unorthodoxgeek/received_events","type":"User","site_admin":false},"body":"this PR is a combination @orrabin's and my work\r\n\r\n@elobato 's edit - a bit more context https://dl.dropboxusercontent.com/u/5892944/Foreman-Parameters-2015-04-16.pdf","created_at":"2015-06-16T12:38:05Z","updated_at":"2015-08-31T12:36:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a52cf1ccb47b6353114538953e54e911ca83cee0","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/theforeman/foreman/pulls/2466/commits","review_comments_url":"https://api.github.com/repos/theforeman/foreman/pulls/2466/comments","review_comment_url":"https://api.github.com/repos/theforeman/foreman/pulls/comments{/number}","comments_url":"https://api.github.com/repos/theforeman/foreman/issues/2466/comments","statuses_url":"https://api.github.com/repos/theforeman/foreman/statuses/7df35f4c12f0f06a202852b807b9b7cb8019ba77","head":{"label":"unorthodoxgeek:10832","ref":"10832","sha":"7df35f4c12f0f06a202852b807b9b7cb8019ba77","user":{"login":"unorthodoxgeek","id":706359,"avatar_url":"https://avatars.githubusercontent.com/u/706359?v=3","gravatar_id":"","url":"https://api.github.com/users/unorthodoxgeek","html_url":"https://github.com/unorthodoxgeek","followers_url":"https://api.github.com/users/unorthodoxgeek/followers","following_url":"https://api.github.com/users/unorthodoxgeek/following{/other_user}","gists_url":"https://api.github.com/users/unorthodoxgeek/gists{/gist_id}","starred_url":"https://api.github.com/users/unorthodoxgeek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unorthodoxgeek/subscriptions","organizations_url":"https://api.github.com/users/unorthodoxgeek/orgs","repos_url":"https://api.github.com/users/unorthodoxgeek/repos","events_url":"https://api.github.com/users/unorthodoxgeek/events{/privacy}","received_events_url":"https://api.github.com/users/unorthodoxgeek/received_events","type":"User","site_admin":false},"repo":{"id":27370503,"name":"foreman","full_name":"unorthodoxgeek/foreman","owner":{"login":"unorthodoxgeek","id":706359,"avatar_url":"https://avatars.githubusercontent.com/u/706359?v=3","gravatar_id":"","url":"https://api.github.com/users/unorthodoxgeek","html_url":"https://github.com/unorthodoxgeek","followers_url":"https://api.github.com/users/unorthodoxgeek/followers","following_url":"https://api.github.com/users/unorthodoxgeek/following{/other_user}","gists_url":"https://api.github.com/users/unorthodoxgeek/gists{/gist_id}","starred_url":"https://api.github.com/users/unorthodoxgeek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unorthodoxgeek/subscriptions","organizations_url":"https://api.github.com/users/unorthodoxgeek/orgs","repos_url":"https://api.github.com/users/unorthodoxgeek/repos","events_url":"https://api.github.com/users/unorthodoxgeek/events{/privacy}","received_events_url":"https://api.github.com/users/unorthodoxgeek/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/unorthodoxgeek/foreman","description":"an application that automates the lifecycle of servers ","fork":true,"url":"https://api.github.com/repos/unorthodoxgeek/foreman","forks_url":"https://api.github.com/repos/unorthodoxgeek/foreman/forks","keys_url":"https://api.github.com/repos/unorthodoxgeek/foreman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/unorthodoxgeek/foreman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/unorthodoxgeek/foreman/teams","hooks_url":"https://api.github.com/repos/unorthodoxgeek/foreman/hooks","issue_events_url":"https://api.github.com/repos/unorthodoxgeek/foreman/issues/events{/number}","events_url":"https://api.github.com/repos/unorthodoxgeek/foreman/events","assignees_url":"https://api.github.com/repos/unorthodoxgeek/foreman/assignees{/user}","branches_url":"https://api.github.com/repos/unorthodoxgeek/foreman/branches{/branch}","tags_url":"https://api.github.com/repos/unorthodoxgeek/foreman/tags","blobs_url":"https://api.github.com/repos/unorthodoxgeek/foreman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/unorthodoxgeek/foreman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/unorthodoxgeek/foreman/git/refs{/sha}","trees_url":"https://api.github.com/repos/unorthodoxgeek/foreman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/unorthodoxgeek/foreman/statuses/{sha}","languages_url":"https://api.github.com/repos/unorthodoxgeek/foreman/languages","stargazers_url":"https://api.github.com/repos/unorthodoxgeek/foreman/stargazers","contributors_url":"https://api.github.com/repos/unorthodoxgeek/foreman/contributors","subscribers_url":"https://api.github.com/repos/unorthodoxgeek/foreman/subscribers","subscription_url":"https://api.github.com/repos/unorthodoxgeek/foreman/subscription","commits_url":"https://api.github.com/repos/unorthodoxgeek/foreman/commits{/sha}","git_commits_url":"https://api.github.com/repos/unorthodoxgeek/foreman/git/commits{/sha}","comments_url":"https://api.github.com/repos/unorthodoxgeek/foreman/comments{/number}","issue_comment_url":"https://api.github.com/repos/unorthodoxgeek/foreman/issues/comments{/number}","contents_url":"https://api.github.com/repos/unorthodoxgeek/foreman/contents/{+path}","compare_url":"https://api.github.com/repos/unorthodoxgeek/foreman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/unorthodoxgeek/foreman/merges","archive_url":"https://api.github.com/repos/unorthodoxgeek/foreman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/unorthodoxgeek/foreman/downloads","issues_url":"https://api.github.com/repos/unorthodoxgeek/foreman/issues{/number}","pulls_url":"https://api.github.com/repos/unorthodoxgeek/foreman/pulls{/number}","milestones_url":"https://api.github.com/repos/unorthodoxgeek/foreman/milestones{/number}","notifications_url":"https://api.github.com/repos/unorthodoxgeek/foreman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/unorthodoxgeek/foreman/labels{/name}","releases_url":"https://api.github.com/repos/unorthodoxgeek/foreman/releases{/id}","created_at":"2014-12-01T08:46:29Z","updated_at":"2015-02-22T13:59:01Z","pushed_at":"2015-08-31T11:39:13Z","git_url":"git://github.com/unorthodoxgeek/foreman.git","ssh_url":"git@github.com:unorthodoxgeek/foreman.git","clone_url":"https://github.com/unorthodoxgeek/foreman.git","svn_url":"https://github.com/unorthodoxgeek/foreman","homepage":"http://theforeman.org","size":32785,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"theforeman:develop","ref":"develop","sha":"833dcdeb33d33569f2b1e09e9e7dc6d906590d08","user":{"login":"theforeman","id":1439844,"avatar_url":"https://avatars.githubusercontent.com/u/1439844?v=3","gravatar_id":"","url":"https://api.github.com/users/theforeman","html_url":"https://github.com/theforeman","followers_url":"https://api.github.com/users/theforeman/followers","following_url":"https://api.github.com/users/theforeman/following{/other_user}","gists_url":"https://api.github.com/users/theforeman/gists{/gist_id}","starred_url":"https://api.github.com/users/theforeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theforeman/subscriptions","organizations_url":"https://api.github.com/users/theforeman/orgs","repos_url":"https://api.github.com/users/theforeman/repos","events_url":"https://api.github.com/users/theforeman/events{/privacy}","received_events_url":"https://api.github.com/users/theforeman/received_events","type":"Organization","site_admin":false},"repo":{"id":258750,"name":"foreman","full_name":"theforeman/foreman","owner":{"login":"theforeman","id":1439844,"avatar_url":"https://avatars.githubusercontent.com/u/1439844?v=3","gravatar_id":"","url":"https://api.github.com/users/theforeman","html_url":"https://github.com/theforeman","followers_url":"https://api.github.com/users/theforeman/followers","following_url":"https://api.github.com/users/theforeman/following{/other_user}","gists_url":"https://api.github.com/users/theforeman/gists{/gist_id}","starred_url":"https://api.github.com/users/theforeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theforeman/subscriptions","organizations_url":"https://api.github.com/users/theforeman/orgs","repos_url":"https://api.github.com/users/theforeman/repos","events_url":"https://api.github.com/users/theforeman/events{/privacy}","received_events_url":"https://api.github.com/users/theforeman/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/theforeman/foreman","description":"an application that automates the lifecycle of servers ","fork":false,"url":"https://api.github.com/repos/theforeman/foreman","forks_url":"https://api.github.com/repos/theforeman/foreman/forks","keys_url":"https://api.github.com/repos/theforeman/foreman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/theforeman/foreman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/theforeman/foreman/teams","hooks_url":"https://api.github.com/repos/theforeman/foreman/hooks","issue_events_url":"https://api.github.com/repos/theforeman/foreman/issues/events{/number}","events_url":"https://api.github.com/repos/theforeman/foreman/events","assignees_url":"https://api.github.com/repos/theforeman/foreman/assignees{/user}","branches_url":"https://api.github.com/repos/theforeman/foreman/branches{/branch}","tags_url":"https://api.github.com/repos/theforeman/foreman/tags","blobs_url":"https://api.github.com/repos/theforeman/foreman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/theforeman/foreman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/theforeman/foreman/git/refs{/sha}","trees_url":"https://api.github.com/repos/theforeman/foreman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/theforeman/foreman/statuses/{sha}","languages_url":"https://api.github.com/repos/theforeman/foreman/languages","stargazers_url":"https://api.github.com/repos/theforeman/foreman/stargazers","contributors_url":"https://api.github.com/repos/theforeman/foreman/contributors","subscribers_url":"https://api.github.com/repos/theforeman/foreman/subscribers","subscription_url":"https://api.github.com/repos/theforeman/foreman/subscription","commits_url":"https://api.github.com/repos/theforeman/foreman/commits{/sha}","git_commits_url":"https://api.github.com/repos/theforeman/foreman/git/commits{/sha}","comments_url":"https://api.github.com/repos/theforeman/foreman/comments{/number}","issue_comment_url":"https://api.github.com/repos/theforeman/foreman/issues/comments{/number}","contents_url":"https://api.github.com/repos/theforeman/foreman/contents/{+path}","compare_url":"https://api.github.com/repos/theforeman/foreman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/theforeman/foreman/merges","archive_url":"https://api.github.com/repos/theforeman/foreman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/theforeman/foreman/downloads","issues_url":"https://api.github.com/repos/theforeman/foreman/issues{/number}","pulls_url":"https://api.github.com/repos/theforeman/foreman/pulls{/number}","milestones_url":"https://api.github.com/repos/theforeman/foreman/milestones{/number}","notifications_url":"https://api.github.com/repos/theforeman/foreman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/theforeman/foreman/labels{/name}","releases_url":"https://api.github.com/repos/theforeman/foreman/releases{/id}","created_at":"2009-07-23T15:07:00Z","updated_at":"2015-08-30T05:00:29Z","pushed_at":"2015-08-31T12:16:45Z","git_url":"git://github.com/theforeman/foreman.git","ssh_url":"git@github.com:theforeman/foreman.git","clone_url":"https://github.com/theforeman/foreman.git","svn_url":"https://github.com/theforeman/foreman","homepage":"http://theforeman.org","size":87489,"stargazers_count":832,"watchers_count":832,"language":"Ruby","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":425,"mirror_url":null,"open_issues_count":88,"forks":425,"open_issues":88,"watchers":832,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/2466"},"html":{"href":"https://github.com/theforeman/foreman/pull/2466"},"issue":{"href":"https://api.github.com/repos/theforeman/foreman/issues/2466"},"comments":{"href":"https://api.github.com/repos/theforeman/foreman/issues/2466/comments"},"review_comments":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/2466/comments"},"review_comment":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/theforeman/foreman/pulls/2466/commits"},"statuses":{"href":"https://api.github.com/repos/theforeman/foreman/statuses/7df35f4c12f0f06a202852b807b9b7cb8019ba77"}}}}