@@ -51,11 +51,13 @@ def parse(obj)
51
51
52
52
data = { :known => false , :uri => url . to_s }
53
53
54
- if ( name_key = name_key_for ( url ) )
54
+ domain , name_key = domain_and_name_key_for ( url )
55
+ if domain and name_key
55
56
referer_data = @name_hash [ name_key ]
56
57
data [ :known ] = true
57
58
data [ :source ] = referer_data [ :source ]
58
59
data [ :medium ] = referer_data [ :medium ]
60
+ data [ :domain ] = domain
59
61
60
62
# Parse parameters if the referer uses them
61
63
if url . query and referer_data [ :parameters ]
@@ -78,12 +80,13 @@ def parse(obj)
78
80
protected
79
81
80
82
# Determine the correct name_key for this host and path
81
- def name_key_for ( uri )
83
+ def domain_and_name_key_for ( uri )
82
84
# Create a proc that will return immediately
83
85
check = Proc . new do |domain |
86
+ domain . downcase!
84
87
if paths = @domain_index [ domain ]
85
88
paths . each do |path , name_key |
86
- return name_key if uri . path . include? ( path )
89
+ return [ domain , name_key ] if uri . path . include? ( path )
87
90
end
88
91
end
89
92
end
@@ -174,6 +177,9 @@ def parse_referer_data(data)
174
177
if domain =~ /\A www\. (.*)\z /i
175
178
domain = $1
176
179
end
180
+
181
+ domain . downcase!
182
+
177
183
@domain_index [ domain ] ||= [ ]
178
184
if !path . empty?
179
185
@domain_index [ domain ] << [ '/' + path . join ( '/' ) , name_key ]
0 commit comments