topsy 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/topsy/client.rb +10 -5
- data/lib/topsy/version.rb +1 -1
- data/test/test_topsy.rb +10 -0
- metadata +13 -13
data/lib/topsy/client.rb
CHANGED
@@ -3,7 +3,7 @@ module Topsy
|
|
3
3
|
include HTTParty
|
4
4
|
format :json
|
5
5
|
base_uri "http://otter.topsy.com"
|
6
|
-
@@windows = {:all => 'a', :
|
6
|
+
@@windows = {:all => 'a', :week => 'w', :day => 'd', :month => 'm', :hour => 'h', :realtime => 'realtime'}
|
7
7
|
|
8
8
|
# Returns info about API rate limiting
|
9
9
|
#
|
@@ -25,12 +25,12 @@ module Topsy
|
|
25
25
|
#
|
26
26
|
# @param [String] q the search query string
|
27
27
|
# @param [Hash] options method options
|
28
|
-
# @option options [Symbol] :window Time window for results. (default: :
|
28
|
+
# @option options [Symbol] :window Time window for results. (default: :all) Options: :dynamic most relevant, :hour last hour, :day last day, :week last week, :month last month, :all all time. You can also use the h6 (6 hours) d3 (3 days) syntax.
|
29
29
|
# @option options [Integer] :page page number of the result set. (default: 1, max: 10)
|
30
30
|
# @option options [Integer] :perpage limit number of results per page. (default: 10, max: 50)
|
31
31
|
# @return [Hashie::Mash]
|
32
32
|
def experts(q, options={})
|
33
|
-
options
|
33
|
+
options = set_window_or_default(options)
|
34
34
|
handle_response(self.class.get("/experts.json", :query => {:q => q}.merge(options)))
|
35
35
|
end
|
36
36
|
|
@@ -74,7 +74,7 @@ module Topsy
|
|
74
74
|
#
|
75
75
|
# @param [String] q the search query string
|
76
76
|
# @param [Hash] options method options
|
77
|
-
# @option options [Symbol] :window Time window for results. (default: :
|
77
|
+
# @option options [Symbol] :window Time window for results. (default: :all) Options: :dynamic most relevant, :hour last hour, :day last day, :week last week, :month last month, :all all time. You can also use the h6 (6 hours) d3 (3 days) syntax.
|
78
78
|
# @option options [Integer] :page page number of the result set. (default: 1, max: 10)
|
79
79
|
# @option options [Integer] :perpage limit number of results per page. (default: 10, max: 50)
|
80
80
|
# @option options [String] :site narrow results to a domain
|
@@ -86,7 +86,7 @@ module Topsy
|
|
86
86
|
else
|
87
87
|
q += " site:#{options.delete(:site)}" if options[:site]
|
88
88
|
end
|
89
|
-
options
|
89
|
+
options = set_window_or_default(options)
|
90
90
|
results = handle_response(self.class.get("/search.json", :query => {:q => q}.merge(options)))
|
91
91
|
Topsy::Page.new(results,Topsy::LinkSearchResult)
|
92
92
|
end
|
@@ -163,6 +163,11 @@ module Topsy
|
|
163
163
|
end
|
164
164
|
|
165
165
|
private
|
166
|
+
|
167
|
+
def set_window_or_default(options)
|
168
|
+
options[:window] = @@windows[options[:window]] if options[:window] && @@windows[options[:window]]
|
169
|
+
options
|
170
|
+
end
|
166
171
|
|
167
172
|
def handle_response(response)
|
168
173
|
raise_errors(response)
|
data/lib/topsy/version.rb
CHANGED
data/test/test_topsy.rb
CHANGED
@@ -109,6 +109,16 @@ class TestTopsy < Test::Unit::TestCase
|
|
109
109
|
results = Topsy.search(:site => 'thechangelog.com', :window => :hour)
|
110
110
|
end
|
111
111
|
|
112
|
+
should "handle hash queries with explicit window" do
|
113
|
+
stub_get("/search.json?q=site%3Athechangelog.com&window=h3", "search.json")
|
114
|
+
results = Topsy.search(:site => 'thechangelog.com', :window => 'h3')
|
115
|
+
end
|
116
|
+
|
117
|
+
should "handle hash queries with explicit window with undefined terms" do
|
118
|
+
stub_get("/search.json?q=site%3Athechangelog.com&window=dynamic", "search.json")
|
119
|
+
results = Topsy.search(:site => 'thechangelog.com', :window => :dynamic)
|
120
|
+
end
|
121
|
+
|
112
122
|
should "handle combined queries" do
|
113
123
|
stub_get("/search.json?q=riak%20site%3Athechangelog.com&window=h", "search.json")
|
114
124
|
results = Topsy.search('riak', :site => 'thechangelog.com', :window => :hour)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: topsy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2011-01-07 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hashie
|
17
|
-
requirement: &
|
17
|
+
requirement: &70188716824680 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70188716824680
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: httparty
|
28
|
-
requirement: &
|
28
|
+
requirement: &70188716824040 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.8.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70188716824040
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: shoulda
|
39
|
-
requirement: &
|
39
|
+
requirement: &70188716823180 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 2.11.3
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70188716823180
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mocha
|
50
|
-
requirement: &
|
50
|
+
requirement: &70188716822580 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.9.10
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70188716822580
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: fakeweb
|
61
|
-
requirement: &
|
61
|
+
requirement: &70188716821960 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 1.3.0
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70188716821960
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: jnunemaker-matchy
|
72
|
-
requirement: &
|
72
|
+
requirement: &70188716821140 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: 0.4.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70188716821140
|
81
81
|
description: Wrapper for the Topsy API
|
82
82
|
email: wynn.netherland@gmail.com
|
83
83
|
executables: []
|