Class: PoolLint::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/poollint/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(inspection_point:, setting_changes:, advisory_locks:, suspicions:, user_level_locks: []) ⇒ Report

Returns a new instance of Report.



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/poollint/report.rb', line 51

def initialize(
  inspection_point:,
  setting_changes:,
  advisory_locks:,
  suspicions:,
  user_level_locks: []
)
  @inspection_point = inspection_point
  @setting_changes = setting_changes
  @advisory_locks = advisory_locks
  @suspicions = suspicions
  @user_level_locks = user_level_locks
end

Instance Attribute Details

#advisory_locksObject (readonly)

Returns the value of attribute advisory_locks.



45
46
47
# File 'lib/poollint/report.rb', line 45

def advisory_locks
  @advisory_locks
end

#inspection_pointObject (readonly)

Returns the value of attribute inspection_point.



45
46
47
# File 'lib/poollint/report.rb', line 45

def inspection_point
  @inspection_point
end

#setting_changesObject (readonly)

Returns the value of attribute setting_changes.



45
46
47
# File 'lib/poollint/report.rb', line 45

def setting_changes
  @setting_changes
end

#suspicionsObject (readonly)

Returns the value of attribute suspicions.



45
46
47
# File 'lib/poollint/report.rb', line 45

def suspicions
  @suspicions
end

#user_level_locksObject (readonly)

Returns the value of attribute user_level_locks.



45
46
47
# File 'lib/poollint/report.rb', line 45

def user_level_locks
  @user_level_locks
end

Instance Method Details

#leak?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/poollint/report.rb', line 65

def leak?
  setting_changes.any? || advisory_locks.any? || user_level_locks.any?
end

#to_hObject



69
70
71
72
73
74
75
76
77
# File 'lib/poollint/report.rb', line 69

def to_h
  {
    inspection_point: inspection_point,
    setting_changes: setting_changes.map(&:to_h),
    advisory_locks: advisory_locks.map(&:to_h),
    user_level_locks: user_level_locks.map(&:to_h),
    suspicions: suspicions.map(&:to_h)
  }
end

#to_sObject



79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/poollint/report.rb', line 79

def to_s
  lines = [
    "PoolLint::LeakedSessionState",
    "",
    boundary_message
  ]
  append_setting_changes(lines)
  append_advisory_locks(lines)
  append_user_level_locks(lines)
  append_suspicions(lines)
  append_remediation(lines)
  lines.join("\n")
end