{"blog_url":"https://blog.nishimu.land/","version":"1.0","url":"https://blog.nishimu.land/entry/20081229/1230569355","image_url":null,"provider_name":"Hatena Blog","description":"http://ujihisa.nowa.jp/entry/62365f7d52\u3069\u3046\u305b\u306a\u3089\u3053\u3053\u307e\u3067\u3057\u305f\u3044\u611f\u3058 module OOnize def not; !self end def and(other) self && other end def or(other) self || other end end class TrueClass include OOnize end class FalseClass include OOnize end before a = 3 b = 4 if a.odd? && b.odd?.not p 'OK' end after a = 3 b = 4 i\u2026","height":"190","type":"rich","author_name":"Sixeight","width":"100%","published":"2008-12-29 01:49:15","categories":["ruby"],"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog.nishimu.land%2Fentry%2F20081229%2F1230569355\" title=\"Re: Object-oriented negation operators - \u3061\u306a\u307f\u306b\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_url":"https://hatena.blog","author_url":"https://blog.hatena.ne.jp/Sixeight/","blog_title":"\u3061\u306a\u307f\u306b","title":"Re: Object-oriented negation operators"}