Class: EasyCaddy::Conflicts

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_caddy/conflicts.rb

Defined Under Namespace

Classes: Finding

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, content:, registry:, skip_name:) ⇒ Conflicts

Returns a new instance of Conflicts.



21
22
23
24
25
26
# File 'lib/easy_caddy/conflicts.rb', line 21

def initialize(name:, content:, registry:, skip_name:)
  @name      = name
  @content   = content
  @registry  = registry
  @skip_name = skip_name
end

Class Method Details

.check(name:, content:, registry:, skip_name: nil) ⇒ Object

Check a fragment file about to be written for domain/port collisions with existing enabled sites. skip_name: the site being updated (exclude it from collision checks against itself).



13
14
15
# File 'lib/easy_caddy/conflicts.rb', line 13

def self.check(name:, content:, registry:, skip_name: nil)
  new(name: name, content: content, registry: registry, skip_name: skip_name).check
end

.doctor(registry:) ⇒ Object



17
18
19
# File 'lib/easy_caddy/conflicts.rb', line 17

def self.doctor(registry:)
  new(name: nil, content: nil, registry: registry, skip_name: nil).doctor
end

Instance Method Details

#checkObject



28
29
30
31
32
33
34
35
36
# File 'lib/easy_caddy/conflicts.rb', line 28

def check
  return [] unless @content

  incoming = Parser.parse(@content)
  findings = []
  findings += domain_conflicts(incoming.domains)
  findings += port_conflicts(incoming.ports)
  findings
end

#doctorObject



38
39
40
41
42
43
# File 'lib/easy_caddy/conflicts.rb', line 38

def doctor
  findings = []
  findings += cross_site_conflicts
  findings += dead_upstream_findings
  findings
end