Skip to content

Instantly share code, notes, and snippets.

@lazyvar
Created August 24, 2019 14:07
Show Gist options
  • Save lazyvar/e55af541b6b2ec16ce194daff7bf045a to your computer and use it in GitHub Desktop.
Save lazyvar/e55af541b6b2ec16ce194daff7bf045a to your computer and use it in GitHub Desktop.
/**
Inspired by rails `StringInquirer`
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/string_inquirer.rb
**/
@dynamicMemberLookup
struct StringInquirer {
let string: String
init(_ string: String) { self.string = string }
subscript(dynamicMember member: String) -> Bool {
return string == member
}
}
extension String {
var `is`: StringInquirer {
return StringInquirer(self)
}
}
"mack".is.mack // true
"mack".is.jack // false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment