Class: Browsable::Finding

Inherits:
Data
  • Object
show all
Defined in:
lib/browsable/finding.rb

Overview

A single feature-usage event discovered in the project’s frontend code.

A Finding records what feature was used, where, which browser versions it requires, and how that compares against the project’s declared target. It is an immutable value object — analyzers produce them, formatters and the LSP server consume them.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#columnObject (readonly)

Returns the value of attribute column

Returns:

  • (Object)

    the current value of column



10
11
12
# File 'lib/browsable/finding.rb', line 10

def column
  @column
end

#feature_idObject (readonly)

Returns the value of attribute feature_id

Returns:

  • (Object)

    the current value of feature_id



10
11
12
# File 'lib/browsable/finding.rb', line 10

def feature_id
  @feature_id
end

#feature_nameObject (readonly)

Returns the value of attribute feature_name

Returns:

  • (Object)

    the current value of feature_name



10
11
12
# File 'lib/browsable/finding.rb', line 10

def feature_name
  @feature_name
end

#fileObject (readonly)

Returns the value of attribute file

Returns:

  • (Object)

    the current value of file



10
11
12
# File 'lib/browsable/finding.rb', line 10

def file
  @file
end

#lineObject (readonly)

Returns the value of attribute line

Returns:

  • (Object)

    the current value of line



10
11
12
# File 'lib/browsable/finding.rb', line 10

def line
  @line
end

#messageObject (readonly)

Returns the value of attribute message

Returns:

  • (Object)

    the current value of message



10
11
12
# File 'lib/browsable/finding.rb', line 10

def message
  @message
end

#required_browser_versionsObject (readonly)

Returns the value of attribute required_browser_versions

Returns:

  • (Object)

    the current value of required_browser_versions



10
11
12
# File 'lib/browsable/finding.rb', line 10

def required_browser_versions
  @required_browser_versions
end

#severityObject (readonly)

Returns the value of attribute severity

Returns:

  • (Object)

    the current value of severity



10
11
12
# File 'lib/browsable/finding.rb', line 10

def severity
  @severity
end

#target_browser_versionsObject (readonly)

Returns the value of attribute target_browser_versions

Returns:

  • (Object)

    the current value of target_browser_versions



10
11
12
# File 'lib/browsable/finding.rb', line 10

def target_browser_versions
  @target_browser_versions
end

Instance Method Details

#as_jsonObject

A stable, JSON-friendly hash. This is the wire format the JSON formatter and the LSP server both rely on.



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/browsable/finding.rb', line 27

def as_json
  {
    feature_id: feature_id,
    feature_name: feature_name,
    file: file,
    line: line,
    column: column,
    required_browser_versions: required_browser_versions,
    target_browser_versions: target_browser_versions,
    severity: severity.to_s,
    message: message
  }
end

#error?Boolean

Returns:

  • (Boolean)


21
# File 'lib/browsable/finding.rb', line 21

def error?   = severity == :error

#info?Boolean

Returns:

  • (Boolean)


23
# File 'lib/browsable/finding.rb', line 23

def info?    = severity == :info

#warning?Boolean

Returns:

  • (Boolean)


22
# File 'lib/browsable/finding.rb', line 22

def warning? = severity == :warning