Экстракт URI, выходящий из двоеточия, есть ли способ избежать этого? - PullRequest
4 голосов
/ 04 февраля 2012

У меня есть следующая функция, которая обычно выдает URL, такой как path.com/p/12345.

Иногда, когда твит содержит двоеточие перед твитом, например

RT: Something path.com/p/123

функция вернет:

personName:
path.com/p/12345

Моя функция:

$a = 10

def grabTweets()
  tweet = Twitter.search("[pic] "+" path.com/p/", :rpp => $a, :result_type => "recent").map do |status|
    tweet = "#{status.text}" #class = string
    urls = URI::extract(tweet) #returns an array of strings
  end
end

Моя цель - найтилюбой твит с двоеточием перед URL и удаление этого результата из цикла, чтобы он не возвращался в созданный массив.

1 Ответ

3 голосов
/ 04 февраля 2012

Вы можете выбрать только HTTP-URL:

URI.extract("RT: Something http://path.com/p/123")
  # => ["RT:", "http://path.com/p/123"]

URI.extract("RT: Something http://path.com/p/123", "http")
  # => ["http://path.com/p/123"]

Ваш метод также может быть немного очищен, у вас есть много лишних локальных переменных:

def grabTweets
  Twitter.search("[pic] "+" path.com/p/", :rpp => $a, :result_type => "recent").map do |status|
    URI.extract(status.text, "http")
  end
end

Я также настоятельно не рекомендую использовать глобальную переменную ($a).

...