sferik/twitter — pull request #436 by korny (2013-07-31 13:53:43+00:00)
Title: Remove NullObject#!

#451 added a `NullObject` class that defined `!`. There are multiple problems with this:

- It breaks Ruby 1.8 compatibility, where `!` wasn't a method. It's not even syntactically allowed, so you'll get a strange error like:

```
/dependencies.rb:251:in `require': twitter/lib/twitter/null_object.rb:13: syntax error, unexpected '!' (SyntaxError)
twitter/lib/twitter/null_object.rb:18: syntax error, unexpected kEND, expecting $end
```
- It's inconsistent. You can't create a falsy object of your own in Ruby. So, even if `if !NullObject.new` would work, `unless NullObject.new` would not. The ability to overwrite `!` is IMO only useful for DSLs.
- It's not used or tested anywhere, except for a synthetic spec that just mirrors the implementation.

So, I propose to remove it.