ralexa 0.0.7 → 0.0.8
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.
- checksums.yaml +7 -0
- data/README.md +4 -10
- data/lib/ralexa/url_info.rb +103 -5
- data/lib/ralexa/version.rb +1 -1
- data/spec/fixtures/rank.xml +238 -5
- data/spec/url_info_spec.rb +99 -7
- metadata +15 -25
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d1b82971f1f2831ceab99ae0380a5c1c77fd6cb8
|
4
|
+
data.tar.gz: fd68afd62770887e25115cd9a546851b2e9c717e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8d952d6cbe12c5d979bbb509d9b6424f36ca12f58f3a99bfc6fdb8d01266bf9ec5052414d9edf37f648c7af83fec808c0197002da5d3165d9f26afa79176a42d
|
7
|
+
data.tar.gz: ca9d3933053a736e1fb510456651912de6350b97febb48d0a8a42ed002f370eb2619dd58737821f3714597f8e5fa95535216595a6a214383e4cab1cc8c41d764
|
data/README.md
CHANGED
@@ -58,9 +58,9 @@ session.top_sites.country("AU", 10).each do |s|
|
|
58
58
|
puts "#{s.url} (#{s.page_views} pageviews)"
|
59
59
|
end
|
60
60
|
|
61
|
-
#
|
62
|
-
puts "
|
63
|
-
puts session.url_info.
|
61
|
+
# url info for an individual site
|
62
|
+
puts "Url info of Flippa.com"
|
63
|
+
puts session.url_info.get("http://flippa.com")
|
64
64
|
|
65
65
|
puts "bam!"
|
66
66
|
```
|
@@ -95,15 +95,9 @@ Status
|
|
95
95
|
<tr>
|
96
96
|
<td rowspan="7">Alexa Web Information Services</td>
|
97
97
|
<td>UrlInfo</td>
|
98
|
-
<td>
|
98
|
+
<td>Get</td>
|
99
99
|
<td>Yes</td>
|
100
100
|
</tr>
|
101
|
-
<tr>
|
102
|
-
<td></td>
|
103
|
-
<td>*</td>
|
104
|
-
<td>Send a pull request!</td>
|
105
|
-
</tr>
|
106
|
-
<tr>
|
107
101
|
<td>TrafficHistory</td>
|
108
102
|
<td>*</td>
|
109
103
|
<td>Send a pull request!</td>
|
data/lib/ralexa/url_info.rb
CHANGED
@@ -1,19 +1,117 @@
|
|
1
1
|
module Ralexa
|
2
2
|
class UrlInfo < AbstractService
|
3
3
|
|
4
|
-
#
|
4
|
+
# Alexa data for an individual site
|
5
|
+
def get(url, params = {})
|
6
|
+
result({"ResponseGroup" => "Related,TrafficData,ContentData", "Url" => url}, params) do |doc|
|
7
|
+
@document = doc
|
8
|
+
|
9
|
+
{
|
10
|
+
speed_median_load_time: speed_median_load_time,
|
11
|
+
speed_load_percentile: speed_load_percentile,
|
12
|
+
link_count: link_count,
|
13
|
+
ranking: ranking,
|
14
|
+
ranking_delta: ranking_delta,
|
15
|
+
reach_rank: reach_rank,
|
16
|
+
reach_rank_delta: reach_rank_delta,
|
17
|
+
reach_per_million: reach_per_million,
|
18
|
+
reach_per_million_delta: reach_per_million_delta,
|
19
|
+
page_views_rank: page_views_rank,
|
20
|
+
page_views_rank_delta: page_views_rank_delta,
|
21
|
+
page_views_per_million: page_views_per_million,
|
22
|
+
page_views_per_million_delta: page_views_per_million_delta,
|
23
|
+
page_views_per_user: page_views_per_user,
|
24
|
+
page_views_per_user_delta: page_views_per_user_delta
|
25
|
+
}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# The site's Alexa rank (a legacy method)
|
5
30
|
def rank(url, params = {})
|
6
|
-
|
7
|
-
document.at("//UrlInfoResult/Alexa/TrafficData/Rank") &&
|
8
|
-
document.at("//UrlInfoResult/Alexa/TrafficData/Rank").text.to_i
|
9
|
-
end
|
31
|
+
get(url, params)[:ranking]
|
10
32
|
end
|
11
33
|
|
12
34
|
private
|
13
35
|
|
36
|
+
attr_accessor :document
|
37
|
+
|
14
38
|
def host; "awis.amazonaws.com" end
|
15
39
|
def path; "/" end
|
16
40
|
def default_params; {"Action" => "UrlInfo"}; end
|
17
41
|
|
42
|
+
def speed_median_load_time
|
43
|
+
document.at("//UrlInfoResult/Alexa/ContentData/Speed/MedianLoadTime") &&
|
44
|
+
document.at("//UrlInfoResult/Alexa/ContentData/Speed/MedianLoadTime").text.to_i
|
45
|
+
end
|
46
|
+
|
47
|
+
def speed_load_percentile
|
48
|
+
document.at("//UrlInfoResult/Alexa/ContentData/Speed/Percentile") &&
|
49
|
+
document.at("//UrlInfoResult/Alexa/ContentData/Speed/Percentile").text.to_i
|
50
|
+
end
|
51
|
+
|
52
|
+
def link_count
|
53
|
+
document.at("//UrlInfoResult/Alexa/ContentData/LinksInCount") &&
|
54
|
+
document.at("//UrlInfoResult/Alexa/ContentData/LinksInCount").text.to_i
|
55
|
+
end
|
56
|
+
|
57
|
+
def ranking
|
58
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/Rank") &&
|
59
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/Rank").text.to_i
|
60
|
+
end
|
61
|
+
|
62
|
+
def ranking_delta
|
63
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Rank/Delta") &&
|
64
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Rank/Delta").text.to_i
|
65
|
+
end
|
66
|
+
|
67
|
+
def reach_rank
|
68
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/Rank/Value") &&
|
69
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/Rank/Value").text.to_i
|
70
|
+
end
|
71
|
+
|
72
|
+
def reach_rank_delta
|
73
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/Rank/Delta") &&
|
74
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/Rank/Delta").text.to_i
|
75
|
+
end
|
76
|
+
|
77
|
+
def reach_per_million
|
78
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/PerMillion/Value") &&
|
79
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/PerMillion/Value").text.gsub(',','').to_i
|
80
|
+
end
|
81
|
+
|
82
|
+
def reach_per_million_delta
|
83
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/PerMillion/Delta") &&
|
84
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/Reach/PerMillion/Delta").text.to_i
|
85
|
+
end
|
86
|
+
|
87
|
+
def page_views_rank
|
88
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/Rank/Value") &&
|
89
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/Rank/Value").text.to_i
|
90
|
+
end
|
91
|
+
|
92
|
+
def page_views_rank_delta
|
93
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/Rank/Delta") &&
|
94
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/Rank/Delta").text.to_i
|
95
|
+
end
|
96
|
+
|
97
|
+
def page_views_per_million
|
98
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerMillion/Value") &&
|
99
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerMillion/Value").text.to_i
|
100
|
+
end
|
101
|
+
|
102
|
+
def page_views_per_million_delta
|
103
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerMillion/Delta") &&
|
104
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerMillion/Delta").text.to_i
|
105
|
+
end
|
106
|
+
|
107
|
+
def page_views_per_user
|
108
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerUser/Value") &&
|
109
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerUser/Value").text.to_i
|
110
|
+
end
|
111
|
+
|
112
|
+
def page_views_per_user_delta
|
113
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerUser/Delta") &&
|
114
|
+
document.at("//UrlInfoResult/Alexa/TrafficData/UsageStatistics/UsageStatistic/PageViews/PerUser/Delta").text.to_i
|
115
|
+
end
|
18
116
|
end
|
19
117
|
end
|
data/lib/ralexa/version.rb
CHANGED
data/spec/fixtures/rank.xml
CHANGED
@@ -1,8 +1,241 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
|
-
<aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"
|
3
|
-
|
2
|
+
<aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
|
3
|
+
<aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11">
|
4
|
+
<aws:OperationRequest>
|
5
|
+
<aws:RequestId>86b12d15-46f7-4c31-937e-a5254d2aa306</aws:RequestId>
|
6
|
+
</aws:OperationRequest>
|
7
|
+
<aws:UrlInfoResult>
|
8
|
+
<aws:Alexa>
|
9
|
+
<aws:ContentData>
|
10
|
+
<aws:DataUrl type="canonical">flippa.com</aws:DataUrl>
|
11
|
+
<aws:SiteData>
|
12
|
+
<aws:Title>Flippa</aws:Title>
|
13
|
+
<aws:Description>The number one marketplace for buying and selling websites.</aws:Description>
|
14
|
+
</aws:SiteData>
|
15
|
+
<aws:Speed>
|
16
|
+
<aws:MedianLoadTime>1930</aws:MedianLoadTime>
|
17
|
+
<aws:Percentile>42</aws:Percentile>
|
18
|
+
</aws:Speed>
|
19
|
+
<aws:AdultContent/>
|
20
|
+
<aws:Language>
|
21
|
+
<aws:Locale>en</aws:Locale>
|
22
|
+
<aws:Encoding>us-ascii</aws:Encoding>
|
23
|
+
</aws:Language>
|
24
|
+
<aws:LinksInCount>1788</aws:LinksInCount>
|
25
|
+
<aws:Keywords/>
|
26
|
+
<aws:OwnedDomains/>
|
27
|
+
</aws:ContentData>
|
28
|
+
<aws:Related>
|
29
|
+
<aws:DataUrl type="canonical">flippa.com</aws:DataUrl>
|
30
|
+
<aws:RelatedLinks>
|
31
|
+
<aws:RelatedLink>
|
32
|
+
<aws:DataUrl type="canonical">uservoice.com/</aws:DataUrl>
|
33
|
+
<aws:NavigableUrl>http://uservoice.com/</aws:NavigableUrl>
|
34
|
+
<aws:Title>UserVoice &#187; Customer Feedback 2.0</aws:Title>
|
35
|
+
</aws:RelatedLink>
|
36
|
+
<aws:RelatedLink>
|
37
|
+
<aws:DataUrl type="canonical">urltrends.com/</aws:DataUrl>
|
38
|
+
<aws:NavigableUrl>http://urltrends.com/</aws:NavigableUrl>
|
39
|
+
<aws:Title>Free SEO Reports, Search Engine Ranking Trends and Competitive Research by UrlTr</aws:Title>
|
40
|
+
</aws:RelatedLink>
|
41
|
+
<aws:RelatedLink>
|
42
|
+
<aws:DataUrl type="canonical">tutorial9.net/</aws:DataUrl>
|
43
|
+
<aws:NavigableUrl>http://tutorial9.net/</aws:NavigableUrl>
|
44
|
+
<aws:Title>Tutorial9 - Tutorial Bliss.</aws:Title>
|
45
|
+
</aws:RelatedLink>
|
46
|
+
<aws:RelatedLink>
|
47
|
+
<aws:DataUrl type="canonical">sitepoint.com/</aws:DataUrl>
|
48
|
+
<aws:NavigableUrl>http://sitepoint.com/</aws:NavigableUrl>
|
49
|
+
<aws:Title>SitePoint</aws:Title>
|
50
|
+
</aws:RelatedLink>
|
51
|
+
<aws:RelatedLink>
|
52
|
+
<aws:DataUrl type="canonical">preview-online.com/</aws:DataUrl>
|
53
|
+
<aws:NavigableUrl>http://preview-online.com/</aws:NavigableUrl>
|
54
|
+
<aws:Title>Preview-Online.Com</aws:Title>
|
55
|
+
</aws:RelatedLink>
|
56
|
+
<aws:RelatedLink>
|
57
|
+
<aws:DataUrl type="canonical">copyscape.com/</aws:DataUrl>
|
58
|
+
<aws:NavigableUrl>http://copyscape.com/</aws:NavigableUrl>
|
59
|
+
<aws:Title>Copyscape</aws:Title>
|
60
|
+
</aws:RelatedLink>
|
61
|
+
<aws:RelatedLink>
|
62
|
+
<aws:DataUrl type="canonical">700megs.com/</aws:DataUrl>
|
63
|
+
<aws:NavigableUrl>http://700megs.com/</aws:NavigableUrl>
|
64
|
+
<aws:Title>700 Megs.com - Free website hosting. Create your own website with a control pane</aws:Title>
|
65
|
+
</aws:RelatedLink>
|
66
|
+
</aws:RelatedLinks>
|
67
|
+
</aws:Related>
|
4
68
|
<aws:TrafficData>
|
5
|
-
<aws:DataUrl type="canonical">
|
6
|
-
<aws:Rank>
|
69
|
+
<aws:DataUrl type="canonical">flippa.com</aws:DataUrl>
|
70
|
+
<aws:Rank>932</aws:Rank>
|
71
|
+
<aws:UsageStatistics>
|
72
|
+
<aws:UsageStatistic>
|
73
|
+
<aws:TimeRange>
|
74
|
+
<aws:Months>3</aws:Months>
|
75
|
+
</aws:TimeRange>
|
76
|
+
<aws:Rank>
|
77
|
+
<aws:Value>932</aws:Value>
|
78
|
+
<aws:Delta>-695</aws:Delta>
|
79
|
+
</aws:Rank>
|
80
|
+
<aws:Reach>
|
81
|
+
<aws:Rank>
|
82
|
+
<aws:Value>1230</aws:Value>
|
83
|
+
<aws:Delta>-868</aws:Delta>
|
84
|
+
</aws:Rank>
|
85
|
+
<aws:PerMillion>
|
86
|
+
<aws:Value>1,093</aws:Value>
|
87
|
+
<aws:Delta>+90%</aws:Delta>
|
88
|
+
</aws:PerMillion>
|
89
|
+
</aws:Reach>
|
90
|
+
<aws:PageViews>
|
91
|
+
<aws:PerMillion>
|
92
|
+
<aws:Value>98.5</aws:Value>
|
93
|
+
<aws:Delta>+92.9%</aws:Delta>
|
94
|
+
</aws:PerMillion>
|
95
|
+
<aws:Rank>
|
96
|
+
<aws:Value>579</aws:Value>
|
97
|
+
<aws:Delta>-406</aws:Delta>
|
98
|
+
</aws:Rank>
|
99
|
+
<aws:PerUser>
|
100
|
+
<aws:Value>9.56</aws:Value>
|
101
|
+
<aws:Delta>+1.8%</aws:Delta>
|
102
|
+
</aws:PerUser>
|
103
|
+
</aws:PageViews>
|
104
|
+
</aws:UsageStatistic>
|
105
|
+
<aws:UsageStatistic>
|
106
|
+
<aws:TimeRange>
|
107
|
+
<aws:Months>1</aws:Months>
|
108
|
+
</aws:TimeRange>
|
109
|
+
<aws:Rank>
|
110
|
+
<aws:Value>914</aws:Value>
|
111
|
+
<aws:Delta>-18</aws:Delta>
|
112
|
+
</aws:Rank>
|
113
|
+
<aws:Reach>
|
114
|
+
<aws:Rank>
|
115
|
+
<aws:Value>1203</aws:Value>
|
116
|
+
<aws:Delta>-37</aws:Delta>
|
117
|
+
</aws:Rank>
|
118
|
+
<aws:PerMillion>
|
119
|
+
<aws:Value>1,114</aws:Value>
|
120
|
+
<aws:Delta>+3%</aws:Delta>
|
121
|
+
</aws:PerMillion>
|
122
|
+
</aws:Reach>
|
123
|
+
<aws:PageViews>
|
124
|
+
<aws:PerMillion>
|
125
|
+
<aws:Value>97</aws:Value>
|
126
|
+
<aws:Delta>-2.53%</aws:Delta>
|
127
|
+
</aws:PerMillion>
|
128
|
+
<aws:Rank>
|
129
|
+
<aws:Value>586</aws:Value>
|
130
|
+
<aws:Delta>4</aws:Delta>
|
131
|
+
</aws:Rank>
|
132
|
+
<aws:PerUser>
|
133
|
+
<aws:Value>9.21</aws:Value>
|
134
|
+
<aws:Delta>-5.25%</aws:Delta>
|
135
|
+
</aws:PerUser>
|
136
|
+
</aws:PageViews>
|
137
|
+
</aws:UsageStatistic>
|
138
|
+
<aws:UsageStatistic>
|
139
|
+
<aws:TimeRange>
|
140
|
+
<aws:Days>7</aws:Days>
|
141
|
+
</aws:TimeRange>
|
142
|
+
<aws:Rank>
|
143
|
+
<aws:Value>824</aws:Value>
|
144
|
+
<aws:Delta>-216</aws:Delta>
|
145
|
+
</aws:Rank>
|
146
|
+
<aws:Reach>
|
147
|
+
<aws:Rank>
|
148
|
+
<aws:Value>1083</aws:Value>
|
149
|
+
<aws:Delta>-263</aws:Delta>
|
150
|
+
</aws:Rank>
|
151
|
+
<aws:PerMillion>
|
152
|
+
<aws:Value>1,230</aws:Value>
|
153
|
+
<aws:Delta>+22%</aws:Delta>
|
154
|
+
</aws:PerMillion>
|
155
|
+
</aws:Reach>
|
156
|
+
<aws:PageViews>
|
157
|
+
<aws:PerMillion>
|
158
|
+
<aws:Value>104.4</aws:Value>
|
159
|
+
<aws:Delta>+21.0%</aws:Delta>
|
160
|
+
</aws:PerMillion>
|
161
|
+
<aws:Rank>
|
162
|
+
<aws:Value>549</aws:Value>
|
163
|
+
<aws:Delta>-131</aws:Delta>
|
164
|
+
</aws:Rank>
|
165
|
+
<aws:PerUser>
|
166
|
+
<aws:Value>9.0</aws:Value>
|
167
|
+
<aws:Delta>-0.77%</aws:Delta>
|
168
|
+
</aws:PerUser>
|
169
|
+
</aws:PageViews>
|
170
|
+
</aws:UsageStatistic>
|
171
|
+
<aws:UsageStatistic>
|
172
|
+
<aws:TimeRange>
|
173
|
+
<aws:Days>1</aws:Days>
|
174
|
+
</aws:TimeRange>
|
175
|
+
<aws:Rank>
|
176
|
+
<aws:Value>568</aws:Value>
|
177
|
+
<aws:Delta>-292</aws:Delta>
|
178
|
+
</aws:Rank>
|
179
|
+
<aws:Reach>
|
180
|
+
<aws:Rank>
|
181
|
+
<aws:Value>723</aws:Value>
|
182
|
+
<aws:Delta>-401</aws:Delta>
|
183
|
+
</aws:Rank>
|
184
|
+
<aws:PerMillion>
|
185
|
+
<aws:Value>1,660</aws:Value>
|
186
|
+
<aws:Delta>+40%</aws:Delta>
|
187
|
+
</aws:PerMillion>
|
188
|
+
</aws:Reach>
|
189
|
+
<aws:PageViews>
|
190
|
+
<aws:PerMillion>
|
191
|
+
<aws:Value>153</aws:Value>
|
192
|
+
<aws:Delta>+50%</aws:Delta>
|
193
|
+
</aws:PerMillion>
|
194
|
+
<aws:Rank>
|
195
|
+
<aws:Value>408</aws:Value>
|
196
|
+
<aws:Delta>-208</aws:Delta>
|
197
|
+
</aws:Rank>
|
198
|
+
<aws:PerUser>
|
199
|
+
<aws:Value>8.9</aws:Value>
|
200
|
+
<aws:Delta>+7%</aws:Delta>
|
201
|
+
</aws:PerUser>
|
202
|
+
</aws:PageViews>
|
203
|
+
</aws:UsageStatistic>
|
204
|
+
</aws:UsageStatistics>
|
205
|
+
<aws:ContributingSubdomains>
|
206
|
+
<aws:ContributingSubdomain>
|
207
|
+
<aws:DataUrl>flippa.com</aws:DataUrl>
|
208
|
+
<aws:TimeRange>
|
209
|
+
<aws:Months>1</aws:Months>
|
210
|
+
</aws:TimeRange>
|
211
|
+
<aws:Reach>
|
212
|
+
<aws:Percentage>99.93%</aws:Percentage>
|
213
|
+
</aws:Reach>
|
214
|
+
<aws:PageViews>
|
215
|
+
<aws:Percentage>99.39%</aws:Percentage>
|
216
|
+
<aws:PerUser>9.16</aws:PerUser>
|
217
|
+
</aws:PageViews>
|
218
|
+
</aws:ContributingSubdomain>
|
219
|
+
<aws:ContributingSubdomain>
|
220
|
+
<aws:DataUrl>support.flippa.com</aws:DataUrl>
|
221
|
+
<aws:TimeRange>
|
222
|
+
<aws:Months>1</aws:Months>
|
223
|
+
</aws:TimeRange>
|
224
|
+
<aws:Reach>
|
225
|
+
<aws:Percentage>2.81%</aws:Percentage>
|
226
|
+
</aws:Reach>
|
227
|
+
<aws:PageViews>
|
228
|
+
<aws:Percentage>0.61%</aws:Percentage>
|
229
|
+
<aws:PerUser>1.98</aws:PerUser>
|
230
|
+
</aws:PageViews>
|
231
|
+
</aws:ContributingSubdomain>
|
232
|
+
</aws:ContributingSubdomains>
|
7
233
|
</aws:TrafficData>
|
8
|
-
</aws:Alexa
|
234
|
+
</aws:Alexa>
|
235
|
+
</aws:UrlInfoResult>
|
236
|
+
<aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
|
237
|
+
<aws:StatusCode>Success
|
238
|
+
</aws:StatusCode>
|
239
|
+
</aws:ResponseStatus>
|
240
|
+
</aws:Response>
|
241
|
+
</aws:UrlInfoResponse>
|
data/spec/url_info_spec.rb
CHANGED
@@ -2,26 +2,118 @@ require_relative "spec_helper"
|
|
2
2
|
|
3
3
|
module Ralexa
|
4
4
|
describe UrlInfo do
|
5
|
-
|
6
5
|
let(:url_info) { UrlInfo.new(client) }
|
7
|
-
let(:client)
|
6
|
+
let(:client) { MiniTest::Mock.new }
|
8
7
|
|
9
8
|
describe "#rank" do
|
10
9
|
def expected_params
|
11
10
|
{
|
12
11
|
"Action" => "UrlInfo",
|
13
|
-
"ResponseGroup" => "
|
14
|
-
"Url" => "
|
12
|
+
"ResponseGroup" => "Related,TrafficData,ContentData",
|
13
|
+
"Url" => "flippa.com"
|
15
14
|
}
|
16
15
|
end
|
16
|
+
|
17
17
|
before do
|
18
18
|
client.expect :get, fixture("rank.xml"),
|
19
19
|
["awis.amazonaws.com", "/", expected_params]
|
20
20
|
end
|
21
|
+
|
21
22
|
it "fetches, parses, and returns the site's rank" do
|
22
|
-
rank = url_info.rank("
|
23
|
-
rank.must_equal
|
24
|
-
end
|
23
|
+
rank = url_info.rank("flippa.com")
|
24
|
+
rank.must_equal 932
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#info" do
|
29
|
+
def expected_params
|
30
|
+
{
|
31
|
+
"Action" => "UrlInfo",
|
32
|
+
"ResponseGroup" => "Related,TrafficData,ContentData",
|
33
|
+
"Url" => "flippa.com"
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
before do
|
38
|
+
client.expect :get, fixture("rank.xml"),
|
39
|
+
["awis.amazonaws.com", "/", expected_params]
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns the alexa speed median load time in the result" do
|
43
|
+
result = url_info.get("flippa.com")[:speed_median_load_time]
|
44
|
+
result.must_equal 1930
|
45
|
+
end
|
46
|
+
|
47
|
+
it "returns the alexa speed load percentile in the result" do
|
48
|
+
result = url_info.get("flippa.com")[:speed_load_percentile]
|
49
|
+
result.must_equal 42
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns the alexa link count in the result" do
|
53
|
+
result = url_info.get("flippa.com")[:link_count]
|
54
|
+
result.must_equal 1788
|
55
|
+
end
|
56
|
+
|
57
|
+
it "returns the alexa ranking in the result" do
|
58
|
+
result = url_info.get("flippa.com")[:ranking]
|
59
|
+
result.must_equal 932
|
60
|
+
end
|
61
|
+
|
62
|
+
it "returns the alexa ranking delta in the result" do
|
63
|
+
result = url_info.get("flippa.com")[:ranking_delta]
|
64
|
+
result.must_equal -695
|
65
|
+
end
|
66
|
+
|
67
|
+
it "returns the alexa reach rank in the result" do
|
68
|
+
result = url_info.get("flippa.com")[:reach_rank]
|
69
|
+
result.must_equal 1230
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns the alexa reach rank delta in the result" do
|
73
|
+
result = url_info.get("flippa.com")[:reach_rank_delta]
|
74
|
+
result.must_equal -868
|
75
|
+
end
|
76
|
+
|
77
|
+
it "returns the alexa reach per million in the result" do
|
78
|
+
result = url_info.get("flippa.com")[:reach_per_million]
|
79
|
+
result.must_equal 1093
|
80
|
+
end
|
81
|
+
|
82
|
+
it "returns the alexa reach per million delta in the result" do
|
83
|
+
result = url_info.get("flippa.com")[:reach_per_million_delta]
|
84
|
+
result.must_equal 90
|
85
|
+
end
|
86
|
+
|
87
|
+
it "returns the alexa page views rank in the result" do
|
88
|
+
result = url_info.get("flippa.com")[:page_views_rank]
|
89
|
+
result.must_equal 579
|
90
|
+
end
|
91
|
+
|
92
|
+
it "returns the alexa page views rank delta in the result" do
|
93
|
+
result = url_info.get("flippa.com")[:page_views_rank_delta]
|
94
|
+
result.must_equal -406
|
95
|
+
end
|
96
|
+
|
97
|
+
it "returns the alexa page views per million in the result" do
|
98
|
+
result = url_info.get("flippa.com")[:page_views_per_million]
|
99
|
+
result.must_equal 98
|
100
|
+
end
|
101
|
+
|
102
|
+
it "returns the alexa page views per million delta in the result" do
|
103
|
+
result = url_info.get("flippa.com")[:page_views_per_million_delta]
|
104
|
+
result.must_equal 92
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns the alexa page views per user in the result" do
|
108
|
+
result = url_info.get("flippa.com")[:page_views_per_user]
|
109
|
+
result.must_equal 9
|
110
|
+
end
|
111
|
+
|
112
|
+
it "returns the alexa page views per user delta in the result" do
|
113
|
+
result = url_info.get("flippa.com")[:page_views_per_user_delta]
|
114
|
+
result.must_equal 1
|
115
|
+
end
|
116
|
+
|
25
117
|
end
|
26
118
|
|
27
119
|
end
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ralexa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Paul Annesley
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: addressable
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.2.7
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.2.7
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: nokogiri
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: minitest
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Ruby client for Amazon Alexa APIs.
|
@@ -117,26 +108,25 @@ files:
|
|
117
108
|
- spec/url_info_spec.rb
|
118
109
|
homepage: https://github.com/flippa/ralexa
|
119
110
|
licenses: []
|
111
|
+
metadata: {}
|
120
112
|
post_install_message:
|
121
113
|
rdoc_options: []
|
122
114
|
require_paths:
|
123
115
|
- lib
|
124
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
117
|
requirements:
|
127
|
-
- -
|
118
|
+
- - '>='
|
128
119
|
- !ruby/object:Gem::Version
|
129
120
|
version: '0'
|
130
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
122
|
requirements:
|
133
|
-
- -
|
123
|
+
- - '>='
|
134
124
|
- !ruby/object:Gem::Version
|
135
125
|
version: '0'
|
136
126
|
requirements: []
|
137
127
|
rubyforge_project:
|
138
|
-
rubygems_version:
|
128
|
+
rubygems_version: 2.0.2
|
139
129
|
signing_key:
|
140
|
-
specification_version:
|
130
|
+
specification_version: 4
|
141
131
|
summary: Ruby client for Amazon Alexa APIs such as TopSites.
|
142
132
|
test_files: []
|