Class: SearchEngineReferer::Base
- Inherits:
-
Object
- Object
- SearchEngineReferer::Base
show all
- Defined in:
- lib/search_engine_referer/base.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(url_or_referer) ⇒ Base
Returns a new instance of Base.
21
22
23
24
|
# File 'lib/search_engine_referer/base.rb', line 21
def initialize url_or_referer
@url = url_or_referer if url_or_referer.is_a?(URI)
@source = url_or_referer.to_s
end
|
Instance Attribute Details
#source ⇒ Object
Returns the value of attribute source.
26
27
28
|
# File 'lib/search_engine_referer/base.rb', line 26
def source
@source
end
|
Class Method Details
.factory(referer_string) ⇒ Object
6
7
8
9
10
11
|
# File 'lib/search_engine_referer/base.rb', line 6
def self.factory referer_string
url = URI.parse(referer_string)
SearchEngineReferer.engines.detect{|engine| engine.host_pattern =~ url.host}.try(:new, url)
rescue URI::InvalidURIError
nil
end
|
.host_pattern ⇒ Object
13
14
15
|
# File 'lib/search_engine_referer/base.rb', line 13
def self.host_pattern
self::HOST_PATTERN
end
|
.name ⇒ Object
17
18
19
|
# File 'lib/search_engine_referer/base.rb', line 17
def self.name
super.split('::').last.downcase.to_sym
end
|
Instance Method Details
#==(other) ⇒ Object
49
50
51
|
# File 'lib/search_engine_referer/base.rb', line 49
def == other
source == other.source
end
|
#page ⇒ Object
36
37
38
|
# File 'lib/search_engine_referer/base.rb', line 36
def page
@page ||= page!
end
|
#query ⇒ Object
28
29
30
|
# File 'lib/search_engine_referer/base.rb', line 28
def query
query!.strip
end
|
#search_engine ⇒ Object
32
33
34
|
# File 'lib/search_engine_referer/base.rb', line 32
def search_engine
self.class.to_s.split('::').last.downcase.to_sym
end
|
#to_hash ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'lib/search_engine_referer/base.rb', line 40
def to_hash
{
:search_engine => search_engine,
:source => source,
:query => query,
:page => page
}
end
|