Would this work?:

```ruby
object.is_a?(Hash) && object.all? { |k, v| k =~ /\A-?\d+\z/  && v.is_a?(Hash) }
```