Class: Eussiror::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/eussiror/configuration.rb

Constant Summary collapse

ISSUE_PRIVACY_LEVELS =

Allowed values for #issue_privacy: :minimal (default), :standard, :full

i[minimal standard full].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration



30
31
32
33
34
35
36
37
38
# File 'lib/eussiror/configuration.rb', line 30

def initialize
  @environments           = %w[production]
  @labels                 = []
  @assignees              = []
  @ignored_exceptions     = []
  @async                  = true
  @report_handled_errors  = false
  @issue_privacy          = :minimal
end

Instance Attribute Details

#assigneesObject

Optional GitHub issue metadata



15
16
17
# File 'lib/eussiror/configuration.rb', line 15

def assignees
  @assignees
end

#asyncObject

Set to false to report synchronously (useful in tests)



21
22
23
# File 'lib/eussiror/configuration.rb', line 21

def async
  @async
end

#environmentsObject

Environments where issue reporting is active (default: production only)



12
13
14
# File 'lib/eussiror/configuration.rb', line 12

def environments
  @environments
end

#github_repositoryObject

Required settings



9
10
11
# File 'lib/eussiror/configuration.rb', line 9

def github_repository
  @github_repository
end

#github_tokenObject

Required settings



9
10
11
# File 'lib/eussiror/configuration.rb', line 9

def github_token
  @github_token
end

#ignored_exceptionsObject

Exception classes to ignore (array of strings)



18
19
20
# File 'lib/eussiror/configuration.rb', line 18

def ignored_exceptions
  @ignored_exceptions
end

#issue_privacyObject

Controls how much request/user context is included in GitHub issue bodies and occurrence comments. :minimal is safest for public repos; :full for trusted private teams.



28
29
30
# File 'lib/eussiror/configuration.rb', line 28

def issue_privacy
  @issue_privacy
end

#labelsObject

Optional GitHub issue metadata



15
16
17
# File 'lib/eussiror/configuration.rb', line 15

def labels
  @labels
end

#report_handled_errorsObject

When true, errors caught by Rails.error.handle are also reported (default: false).



24
25
26
# File 'lib/eussiror/configuration.rb', line 24

def report_handled_errors
  @report_handled_errors
end

Instance Method Details

#environment_nameString

Current Rails / Rack environment name (for display in issue bodies).



56
57
58
# File 'lib/eussiror/configuration.rb', line 56

def environment_name
  current_environment
end

#reporting_enabled?Boolean



49
50
51
# File 'lib/eussiror/configuration.rb', line 49

def reporting_enabled?
  valid? && environments.include?(current_environment)
end

#valid?Boolean



44
45
46
47
# File 'lib/eussiror/configuration.rb', line 44

def valid?
  github_token.to_s.strip.length.positive? &&
    github_repository.to_s.strip.length.positive?
end