rugalytics 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +2 -0
- data/lib/rugalytics/report.rb +18 -1
- data/lib/rugalytics/server.rb +6 -3
- data/lib/rugalytics.rb +1 -1
- data/rugalytics.gemspec +1 -1
- data/spec/lib/rugalytics/report_spec.rb +2 -2
- metadata +1 -1
data/CHANGELOG
CHANGED
data/lib/rugalytics/report.rb
CHANGED
@@ -95,7 +95,24 @@ module Rugalytics
|
|
95
95
|
morph(items_attribute, items)
|
96
96
|
|
97
97
|
while (values_line = lines[index]) && values_line[/^# -/].nil? && values_line.strip.size > 0
|
98
|
-
|
98
|
+
begin
|
99
|
+
values = FasterCSV.parse_line(values_line)
|
100
|
+
rescue Exception => e
|
101
|
+
# fix broken csv
|
102
|
+
values_line.gsub!(/,""/,',"\"')
|
103
|
+
values_line.gsub!(/"",/,'\"",')
|
104
|
+
values_line.gsub!(/^""/,'"\"')
|
105
|
+
values_line.gsub!(/""$/,'\""')
|
106
|
+
values_line.gsub!(/([^\\])""/,'\1\"')
|
107
|
+
values_line.gsub!(/\\"/,'""')
|
108
|
+
begin
|
109
|
+
values = FasterCSV.parse_line(values_line)
|
110
|
+
rescue Exception => e
|
111
|
+
values_line.gsub!(/\\"/,'')
|
112
|
+
values_line.gsub!(/"/,'')
|
113
|
+
values = FasterCSV.parse_line(values_line)
|
114
|
+
end
|
115
|
+
end
|
99
116
|
items << Item.new(attributes, values, base_url)
|
100
117
|
index = index.next
|
101
118
|
end
|
data/lib/rugalytics/server.rb
CHANGED
@@ -20,6 +20,7 @@ module Rugalytics
|
|
20
20
|
end
|
21
21
|
|
22
22
|
@profile = Rugalytics.default_profile
|
23
|
+
@reports = {}
|
23
24
|
|
24
25
|
server = HTTPServer.new :Port => 8888
|
25
26
|
|
@@ -27,9 +28,11 @@ module Rugalytics
|
|
27
28
|
|
28
29
|
server.mount_proc("/top_content_detail_keywords") {|request, response|
|
29
30
|
url = request.query['url']
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
@reports[url] ||= @profile.top_content_detail_keywords_report(:url => url)
|
32
|
+
items = @reports[url].items
|
33
|
+
data = {:url =>url, :report_name=>@reports[url].name, :items=>items}
|
34
|
+
response.body = data.to_json
|
35
|
+
response['Content-Type'] = "application/json"
|
33
36
|
}
|
34
37
|
|
35
38
|
trap("INT"){ server.shutdown }
|
data/lib/rugalytics.rb
CHANGED
data/rugalytics.gemspec
CHANGED
@@ -100,7 +100,7 @@ describe Report do
|
|
100
100
|
@base_url = %Q|your_site.com|
|
101
101
|
@attributes = %Q|URL,Page Views,Unique Page Views,Time on Page,Bounce Rate,% Exit,$ Index, Keyword|
|
102
102
|
@values1 = %Q|/,189,157,54.94957983193277,0.4862385392189026,0.37037035822868347,0.0,"ABC, Project"|
|
103
|
-
@values2 = %Q|/bills,60,38,54.17307692307692,0.0,0.13333334028720856,0.0,
|
103
|
+
@values2 = %Q|/bills,60,38,54.17307692307692,0.0,0.13333334028720856,0.0,""new zealand"" house ""begins with h""|
|
104
104
|
@csv = ['# ----------------------------------------',
|
105
105
|
@base_url,
|
106
106
|
'Top Content,',
|
@@ -119,7 +119,7 @@ describe Report do
|
|
119
119
|
item1 = mock('item1')
|
120
120
|
item2 = mock('item2')
|
121
121
|
array1 = ['/','189','157','54.94957983193277','0.4862385392189026','0.37037035822868347','0.0',"ABC, Project"]
|
122
|
-
array2 = ['/bills','60','38','54.17307692307692','0.0','0.13333334028720856','0.0','
|
122
|
+
array2 = ['/bills','60','38','54.17307692307692','0.0','0.13333334028720856','0.0','"new zealand" house "begins with h"']
|
123
123
|
Item.should_receive(:new).with(@attributes.split(','), array1, @base_url).and_return item1
|
124
124
|
Item.should_receive(:new).with(@attributes.split(','), array2, @base_url).and_return item2
|
125
125
|
|