tchandy/octopus — pull request #292 by cctiger36 (2014-12-16 10:06:38+00:00)
Title: Fix collection association with the same name as ancestor private method.

When I define a scope with the same name as the ancestor private method.
Such as `open`. It will cause an error.

```ruby
class Client
has_many :comments
end

class Comment
belongs_to :client
scope :open, -> { where(open: true) }
end
```
```
> client.comments.open
ArgumentError:
wrong number of arguments (0 for 1..3)
# ./lib/octopus/relation_proxy.rb:20:in `initialize'
# ./lib/octopus/relation_proxy.rb:20:in `open'
# ./lib/octopus/relation_proxy.rb:20:in `block in method_missing'
# ./lib/octopus/proxy.rb:226:in `block (2 levels) in run_queries_on_shard'
# ./lib/octopus/proxy.rb:476:in `using_shard'
# ./lib/octopus/proxy.rb:225:in `block in run_queries_on_shard'
# ./lib/octopus/proxy.rb:462:in `keeping_connection_proxy'
# ./lib/octopus/proxy.rb:224:in `run_queries_on_shard'
# ./lib/octopus/shard_tracking.rb:30:in `run_on_shard'
# ./lib/octopus/relation_proxy.rb:20:in `method_missing'
# ./spec/octopus/relation_proxy_spec.rb:17:in `block (3 levels) in '
```

Use `public_send` instead of `send` to avoid this problem.