IIRC, you need to change the iskeyword parameter.
You can try set iskeyword+=?,! to and ! were considered part of the words, not separators.
In .vimrc you can add:
autocmd BufRead,BufNewFile *.rb set iskeyword+=?,!
See :help iskeyword .
Edit: I did not see that you already mentioned iskeyword as a possible workaround.
Alternative idea:
1. Create ctags for your ruby ββcode.
2. in the complete option, delete everything except the t parameter, the tags only value.
You will have suggestions coming from the tag file. The downside is that it adds a new step to use completion, and you will skip some non-tag completion.
source share