{"action":"reopened","issue":{"url":"https://api.github.com/repos/google/guava/issues/3011","repository_url":"https://api.github.com/repos/google/guava","labels_url":"https://api.github.com/repos/google/guava/issues/3011/labels{/name}","comments_url":"https://api.github.com/repos/google/guava/issues/3011/comments","events_url":"https://api.github.com/repos/google/guava/issues/3011/events","html_url":"https://github.com/google/guava/issues/3011","id":281148206,"number":3011,"title":"Add containsIgnoreCase to StringUtils","user":{"login":"martinfrancois","id":14319020,"avatar_url":"https://avatars1.githubusercontent.com/u/14319020?v=4","gravatar_id":"","url":"https://api.github.com/users/martinfrancois","html_url":"https://github.com/martinfrancois","followers_url":"https://api.github.com/users/martinfrancois/followers","following_url":"https://api.github.com/users/martinfrancois/following{/other_user}","gists_url":"https://api.github.com/users/martinfrancois/gists{/gist_id}","starred_url":"https://api.github.com/users/martinfrancois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinfrancois/subscriptions","organizations_url":"https://api.github.com/users/martinfrancois/orgs","repos_url":"https://api.github.com/users/martinfrancois/repos","events_url":"https://api.github.com/users/martinfrancois/events{/privacy}","received_events_url":"https://api.github.com/users/martinfrancois/received_events","type":"User","site_admin":false},"labels":[{"id":691862394,"url":"https://api.github.com/repos/google/guava/labels/P3","name":"P3","color":"c5c5c5","default":false},{"id":143505359,"url":"https://api.github.com/repos/google/guava/labels/package=base","name":"package=base","color":"62a0e5","default":false},{"id":143505671,"url":"https://api.github.com/repos/google/guava/labels/status=triaged","name":"status=triaged","color":"bfe5bf","default":false},{"id":143505258,"url":"https://api.github.com/repos/google/guava/labels/type=addition","name":"type=addition","color":"f4d75f","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2017-12-11T19:59:43Z","updated_at":"2018-05-17T18:43:31Z","closed_at":null,"author_association":"NONE","body":"I regularly use StringUtils.isEmptyOrNull, inspired by it came the idea for the function \"containsIgnoreCase\" of StringUtils. It is a function I usually find myself writing over and over again because of its usefulness.\r\n\r\nIt compares two strings with the \"contains\" operation, but turns both strings lowercase before doing so (hence the \"ignoreCase\" aspect of it).\r\n\r\nUse cases would be especially search filters. When a search string (in a search field) should be compared to items, this function is particularly useful. Case doesn't matter in most cases and partial results are often desired as well, which is why contains is useful.\r\n\r\nUpon acceptance I would happily implement this and submit a pull request."}}
{"actor":{"display_login":"avarzar"}}