Object
# File lib/twitter/search.rb, line 11
11: def initialize(q=nil, options={})
12: @options = options
13: clear
14: containing(q) if q && q.strip != ""
15: endpoint_url = options[:api_endpoint]
16: endpoint_url = "#{endpoint_url}/search" if endpoint_url && !endpoint_url.include?("/search")
17: self.class.base_uri(endpoint_url) if endpoint_url
18: end
Clears all the query filters to make a new search
# File lib/twitter/search.rb, line 120
120: def clear
121: @fetch = nil
122: @query = {}
123: @query[:q] = []
124: self
125: end
# File lib/twitter/search.rb, line 41
41: def containing(word, exclude=false)
42: @query[:q] << "#{exclude ? "-" : ""}#{word}"
43: self
44: end
# File lib/twitter/search.rb, line 137
137: def each
138: results = fetch()['results']
139: return if results.nil?
140: results.each {|r| yield r}
141: end
# File lib/twitter/search.rb, line 127
127: def fetch(force=false)
128: if @fetch.nil? || force
129: query = @query.dup
130: query[:q] = query[:q].join(" ")
131: perform_get(query)
132: end
133:
134: @fetch
135: end
# File lib/twitter/search.rb, line 147
147: def fetch_next_page
148: if next_page?
149: s = Search.new(nil, :user_agent => user_agent)
150: s.perform_get(fetch()["next_page"][1..1])
151: s
152: end
153: end
# File lib/twitter/search.rb, line 24
24: def from(user, exclude=false)
25: @query[:q] << "#{exclude ? "-" : ""}from:#{user}"
26: self
27: end
Ranges like 25km and 50mi work.
# File lib/twitter/search.rb, line 109
109: def geocode(lat, long, range)
110: @query[:geocode] = [lat, long, range].join(",")
111: self
112: end
adds filtering based on hash tag ie: #
# File lib/twitter/search.rb, line 48
48: def hashed(tag, exclude=false)
49: @query[:q] << "#{exclude ? "-" : ""}\##{tag}"
50: self
51: end
lang must be ISO 639-1 code ie: en, fr, de, ja, etc.
when I tried en it limited my results a lot and took out several tweets that were english so i’d avoid this unless you really want it
# File lib/twitter/search.rb, line 64
64: def lang(lang)
65: @query[:lang] = lang
66: self
67: end
# File lib/twitter/search.rb, line 114
114: def max(id)
115: @query[:max_id] = id
116: self
117: end
# File lib/twitter/search.rb, line 143
143: def next_page?
144: !!fetch()["next_page"]
145: end
Which page of results to fetch
# File lib/twitter/search.rb, line 82
82: def page(num)
83: @query[:page] = num
84: self
85: end
Limits the number of results per page
# File lib/twitter/search.rb, line 76
76: def per_page(num)
77: @query[:rpp] = num
78: self
79: end
Search for a phrase instead of a group of words
# File lib/twitter/search.rb, line 54
54: def phrase(phrase)
55: @query[:phrase] = phrase
56: self
57: end
# File lib/twitter/search.rb, line 34
34: def referencing(user, exclude=false)
35: @query[:q] << "#{exclude ? "-" : ""}@#{user}"
36: self
37: end
popular|recent
# File lib/twitter/search.rb, line 70
70: def result_type(result_type)
71: @query[:result_type] = result_type
72: self
73: end
Only searches tweets since a given id. Recommended to use this when possible.
# File lib/twitter/search.rb, line 89
89: def since(since_id)
90: @query[:since_id] = since_id
91: self
92: end
From the advanced search form, not documented in the API Format YYYY-MM-DD
# File lib/twitter/search.rb, line 96
96: def since_date(since_date)
97: @query[:since] = since_date
98: self
99: end
# File lib/twitter/search.rb, line 29
29: def to(user, exclude=false)
30: @query[:q] << "#{exclude ? "-" : ""}to:#{user}"
31: self
32: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.