API de streaming do Twitter: seja explícito

Em vez de minerar tweets com base em termos individuais,
também podemos exigir que os tweets contenham TODOS os termos desejados.
por exemplo, “apple” ou “maps” VS “apple” e “maps”

ORs lógicos são delimitados
por vírgulas, por exemplo, “apple”, “maps”

ANDs lógicos são delimitados
por espaço: por exemplo, “mapas da maçã”

Podemos até combinar os dois:
por exemplo, “apple maps”, “apple google”

require 'twitter'
require 'tweetstream'

# Tweets with the following terms
criteria
= ['apple maps', 'google apple']

TweetStream.configure do |config|
config
.consumer_key = ENV['CONSUMER_KEY']
config
.consumer_secret = ENV['CONSUMER_SECRET']
config
.oauth_token = ENV['OAUTH_TOKEN']
config
.oauth_token_secret = ENV['OAUTH_SECRET']
config
.auth_method = :oauth
end

# Match Tweets with Apple AND (Google OR Maps)
TweetStream::Client.new.track(*criteria) do |status|
tweet
= status.text.downcase
term
= tweet.include?('google') ? 'Google' : 'Maps'

puts
"#{status.user[:id]} tweeted about #{term}"
end

Isso nos dá a capacidade de capturar mais explicitamente apenas os tweets que realmente desejamos.