You can use Eth::Client.eth_get_filter_changes
from the eth
gem. See api.rb#L130.
geth = Eth::Client.create "http://127.0.0.1:8545"
# => #<Eth::Client::Http:0x000055d54c9c8f20>
contract = Eth::Address.new "0x6B175474E89094C44Da98b954EedeAC495271d0F"
# => #<Eth::Address:0x000055d54ca08e40 @address="0x6B175474E89094C44Da98b954EedeAC495271d0F">
filter = { fromBlock: 0, toBlock: 9999, address: contract.to_s }
# => {:fromBlock=>0, :toBlock=>9999, :address=>"0x6B175474E89094C44Da98b954EedeAC495271d0F"}
geth.eth_new_filter filter
# => {"jsonrpc"=>"2.0", "id"=>2, "result"=>"0xc6deb76fb676738465dd4b9418364f6"}
geth.eth_get_filter_changes "0xc6deb76fb676738465dd4b9418364f6"
# => {"jsonrpc"=>"2.0", "id"=>3, "result"=>[]}