Completed
Pull Request — master (#115)
by Artur 'Wodor'
03:01
created

DnsDockResolver   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 4
lcom 0
cbo 0
dl 0
loc 35
rs 10
c 4
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getDnsByContainerNameAndImage() 0 10 1
A stripTagNameFromImageName() 0 8 2
A stripSlashFromImageName() 0 4 1
1
<?php
2
3
namespace Dock\Docker\Dns;
4
5
class DnsDockResolver implements ContainerAddressResolver
6
{
7
    /**
8
     * {@inheritdoc}
9
     */
10
    public function getDnsByContainerNameAndImage($containerName, $imageName)
11
    {
12
        $imageName = $this->stripTagNameFromImageName($imageName);
13
        $imageName = $this->stripSlashFromImageName($imageName);
14
15
        return [
16
            $imageName.'.docker',
17
            $containerName.'.'.$imageName.'.docker',
18
        ];
19
    }
20
21
    /**
22
     * @param string $imageName
23
     *
24
     * @return string
25
     */
26
    private function stripTagNameFromImageName($imageName)
27
    {
28
        if (false !== ($position = strpos($imageName, ':'))) {
29
            $imageName = substr($imageName, 0, $position);
30
        }
31
32
        return $imageName;
33
    }
34
    
35
    private function stripSlashFromImageName($imageName)
36
    {
37
        return str_replace('/', '_', $imageName);
38
    }
39
}
40