Class: CMSScanner::Model::InterestingFinding

Inherits:
Object
  • Object
show all
Includes:
Finders::Finding
Defined in:
app/models/interesting_finding.rb

Overview

Interesting Finding

Constant Summary

Constants included from Finders::Finding

Finders::Finding::FINDING_OPTS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Finders::Finding

#<=>, #confidence, #confidence=, #confirmed_by, #eql?, included, #interesting_entries, #parse_finding_options

Constructor Details

#initialize(url, opts = {}) ⇒ InterestingFinding

Returns a new instance of InterestingFinding.

Parameters:

  • url (String)
  • opts (Hash) (defaults to: {})

    :to_s (override the to_s method) See Finders::Finding for other available options



16
17
18
19
20
21
# File 'app/models/interesting_finding.rb', line 16

def initialize(url, opts = {})
  @url  = url
  @to_s = opts[:to_s]

  parse_finding_options(opts)
end

Instance Attribute Details

#to_sString

Returns:

  • (String)


33
34
35
# File 'app/models/interesting_finding.rb', line 33

def to_s
  @to_s || url
end

#urlObject (readonly)

Returns the value of attribute url.



9
10
11
# File 'app/models/interesting_finding.rb', line 9

def url
  @url
end

Instance Method Details

#==(other) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'app/models/interesting_finding.rb', line 43

def ==(other)
  self.class == other.class && to_s == other.to_s
end

#entriesArray<String>

Returns:

  • (Array<String>)


24
25
26
27
28
29
30
# File 'app/models/interesting_finding.rb', line 24

def entries
  res = NS::Browser.get(url)

  return [] unless res && res.headers['Content-Type'] =~ %r{\Atext/plain;}i

  res.body.split("\n").reject { |s| s.strip.empty? }
end

#typeString

Returns:

  • (String)


38
39
40
# File 'app/models/interesting_finding.rb', line 38

def type
  @type ||= self.class.to_s.demodulize.underscore
end