Class: Aquatone::Detector

Inherits:
Object
  • Object
show all
Defined in:
lib/aquatone/detector.rb

Defined Under Namespace

Classes: Error, InvalidMetadataError, MetadataNotSetError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host, resource) ⇒ Detector

Returns a new instance of Detector.



28
29
30
31
# File 'lib/aquatone/detector.rb', line 28

def initialize(host, resource)
  @host     = host
  @resource = resource
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



7
8
9
# File 'lib/aquatone/detector.rb', line 7

def host
  @host
end

#resourceObject (readonly)

Returns the value of attribute resource.



7
8
9
# File 'lib/aquatone/detector.rb', line 7

def resource
  @resource
end

Class Method Details

.descendantsObject



18
19
20
21
# File 'lib/aquatone/detector.rb', line 18

def self.descendants
  detectors = ObjectSpace.each_object(Class).select { |klass| klass < self }
  detectors.sort { |x, y| x.meta[:service] <=> y.meta[:service] }
end

.metaObject



9
10
11
# File 'lib/aquatone/detector.rb', line 9

def self.meta
  @meta || fail(MetadataNotSetError, "Metadata has not been set")
end

.meta=(meta) ⇒ Object



13
14
15
16
# File 'lib/aquatone/detector.rb', line 13

def self.meta=(meta)
  (meta)
  @meta = meta
end

.sluggified_nameObject



23
24
25
26
# File 'lib/aquatone/detector.rb', line 23

def self.sluggified_name
  return meta[:slug].downcase if meta[:slug]
  meta[:service].strip.downcase.gsub(/[^a-z0-9]+/, '-').gsub("--", "-")
end

Instance Method Details

#positive?Boolean

Returns:

  • (Boolean)


37
38
39
40
41
# File 'lib/aquatone/detector.rb', line 37

def positive?
  run
rescue
  false
end

#runObject



33
34
35
# File 'lib/aquatone/detector.rb', line 33

def run
  fail NotImplementedError
end