It is always a good idea to go ahead and prevent stupid mistakes. If you’re using Rubocop, you’re already made a step to write cleaner Ruby code.
Most of the time I just forget to run Rubocop and I end up with tons of fixup commits. It can be automated with git-hooks so why should I think about it anymore.
Not - “0 in, 1 out; 1 in, 0 out. Whatever you put in, you don’t get out.”
Buffer - “If you take the not of not, you get what you put in - 0 in, 0 out, 1 in, 1 out.”
NAND - “Both inputs must be brought up to 1 to lower the output to 0.”
AND - “If you negate the result of Nand, you get And. Both inputs must be brought up to 1 to raise the output up to 1.”
OR - “If you not both inputs, and then Nand them together, you get Or. If either input is raised to 1, the output raises to 1.”
NOR - “Negate both inputs, nand them together, and negate the output.”
XOR - “Xor is complicated - The large weight ands the inputs together. The medium weights negate the inputs, but are pulled up by the large one when both are 1. When you nor those together, you get Xor “
XNOR - “This is comparatively simple - just negate the output of Xor, and you’re there!”