domain_switcher 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
@@ -12,7 +12,26 @@ module DomainSwitcher
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def scan_domain(host)
|
15
|
-
@@domain_cache[host]
|
15
|
+
@@domain_cache[host] || deep_scan(host)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Will not match exactly the domain but will try to match the closest one
|
19
|
+
# For example => fr.staging.domain.com will match staging.domain.com if declared
|
20
|
+
def deep_scan(host)
|
21
|
+
return nil if !host
|
22
|
+
|
23
|
+
dom = nil
|
24
|
+
nbdot = nil
|
25
|
+
@domains.each do |domain|
|
26
|
+
if dot = host.rindex(domain.domain)
|
27
|
+
if !nbdot or dot < nbdot
|
28
|
+
nbdot = dot
|
29
|
+
dom = domain
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
@@domain_cache[host] = dom if dom
|
34
|
+
return dom
|
16
35
|
end
|
17
36
|
|
18
37
|
end
|
data/spec/config/websites.yml
CHANGED
@@ -46,8 +46,8 @@ describe :config_loader do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "load correctly all domains" do
|
49
|
-
@config.domains.size.should ==
|
50
|
-
@config.domains.collect(&:domain).uniq.size.should ==
|
49
|
+
@config.domains.size.should == 7
|
50
|
+
@config.domains.collect(&:domain).uniq.size.should == 7
|
51
51
|
@config.domains.first.domain.should == 'www.website1.com'
|
52
52
|
end
|
53
53
|
|
@@ -11,6 +11,11 @@ describe :scanner do
|
|
11
11
|
@scanner.scan_domain(nil).should == nil
|
12
12
|
@scanner.scan_domain('something_not_existing').should == nil
|
13
13
|
end
|
14
|
+
|
15
|
+
it "handle deep scanning" do
|
16
|
+
@scanner.scan_domain('staging.website2.com').domain.should == 'staging.website2.com'
|
17
|
+
@scanner.scan_domain('fr.staging.website2.com').domain.should == 'staging.website2.com'
|
18
|
+
end
|
14
19
|
|
15
20
|
it "return correct domain when existing" do
|
16
21
|
@scanner.scan_domain('www.website2.com').should_not be_nil
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domain_switcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Guillaume Luccisano
|