{"url":"https://blog.nishimu.land/entry/20081229/1230569355","published":"2008-12-29 01:49:15","blog_url":"https://blog.nishimu.land/","blog_title":"\u3061\u306a\u307f\u306b","height":"190","title":"Re: Object-oriented negation operators","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>","version":"1.0","author_name":"Sixeight","author_url":"https://blog.hatena.ne.jp/Sixeight/","type":"rich","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","width":"100%","provider_name":"Hatena Blog","image_url":null,"provider_url":"https://hatena.blog"}