{"action":"created","issue":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/8994","repository_url":"https://api.github.com/repos/ManageIQ/manageiq","labels_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/8994/labels{/name}","comments_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/8994/comments","events_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/8994/events","html_url":"https://github.com/ManageIQ/manageiq/pull/8994","id":157044866,"number":8994,"title":"Replace conditional #to_arel with polymorphic expressions","user":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ManageIQ/manageiq/labels/core","name":"core","color":"5319e7"},{"url":"https://api.github.com/repos/ManageIQ/manageiq/labels/refactoring","name":"refactoring","color":"fbca04"},{"url":"https://api.github.com/repos/ManageIQ/manageiq/labels/wip","name":"wip","color":"eeeeee"}],"state":"open","locked":false,"assignee":{"login":"gtanzillo","id":76593,"avatar_url":"https://avatars.githubusercontent.com/u/76593?v=3","gravatar_id":"","url":"https://api.github.com/users/gtanzillo","html_url":"https://github.com/gtanzillo","followers_url":"https://api.github.com/users/gtanzillo/followers","following_url":"https://api.github.com/users/gtanzillo/following{/other_user}","gists_url":"https://api.github.com/users/gtanzillo/gists{/gist_id}","starred_url":"https://api.github.com/users/gtanzillo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gtanzillo/subscriptions","organizations_url":"https://api.github.com/users/gtanzillo/orgs","repos_url":"https://api.github.com/users/gtanzillo/repos","events_url":"https://api.github.com/users/gtanzillo/events{/privacy}","received_events_url":"https://api.github.com/users/gtanzillo/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2016-05-26T18:10:13Z","updated_at":"2016-05-26T23:01:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/8994","html_url":"https://github.com/ManageIQ/manageiq/pull/8994","diff_url":"https://github.com/ManageIQ/manageiq/pull/8994.diff","patch_url":"https://github.com/ManageIQ/manageiq/pull/8994.patch"},"body":"Blocked by https://github.com/ManageIQ/manageiq/pull/8946\r\n\r\nDrawbacks:\r\n\r\n* > LOC. To be fair, most of which are class/module/method declarations\r\n* > Indirection\r\n* There's an awkwardness in having to maintain MiqExpression and its\r\n  public interface and introducing more objects under it that are kinds\r\n  of `Expression`\r\n\r\nBenefits:\r\n\r\n* > Cohesiveness. All `Expression` types use their data and none of\r\n    their methods accept arguments (as with the recursive `MiqExpression#to_arel`)\r\n* Opens the possibility to refactor `to_ruby`, `to_human`, the complex\r\n  `preprocess_for_sql` and `sql_supports_atom?`, pretty much anywhere\r\n  there's a (giant) case statement on operator. Preprocessing could just\r\n  go away\r\n* I think this will help in optimizing MiqExpression in discrete chunks,\r\n  with more confidence\r\n\r\n@miq-bot assign @gtanzillo \r\n@miq-bot add-label core, refactoring\r\n/cc @yrudman "},"comment":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/comments/222019051","html_url":"https://github.com/ManageIQ/manageiq/pull/8994#issuecomment-222019051","issue_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/8994","id":222019051,"user":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"created_at":"2016-05-26T23:01:46Z","updated_at":"2016-05-26T23:01:46Z","body":"@miq-bot rm-label wip"}}
{"actor":{"display_login":"imtayadeway"}}