I didn’t have a chance to look at your code closely. But I can see it’s not wrapped in your unique namespace and module name.
That would be something like:
module JHJ
module MyPushTool
# your code here
end
end
Also, no need for the TXT or the RBZ files. If you want to post a file, use Ruby, .rb files. Or share the code in a post, like this: [How to] Post correctly formatted and colorized code on the forum? - Developers - SketchUp Community
You need to learn how SketchUp extensions are structured: [Template] Multi-File, Multi-Class with SharedConstants Mixin - Developers / Ruby API - SketchUp Community
The tool could work something like in the following video. It might be possible to eliminate the ‘push’ when there is nothing in front of the raytest. That might be more intuitive. But it’s kind of cool.
In case it is not intuitive, there’s an information icon:

…just wanted to try this:
