Class: HoptoadNotifier::Configuration
- Inherits:
-
Object
- Object
- HoptoadNotifier::Configuration
- Defined in:
- lib/hoptoad_notifier/configuration.rb
Overview
Used to set up and modify settings for the notifier.
Constant Summary collapse
- OPTIONS =
[:api_key, :backtrace_filters, :development_environments, :development_lookup, :environment_name, :host, :http_open_timeout, :http_read_timeout, :ignore, :ignore_by_filters, :ignore_user_agent, :notifier_name, :notifier_url, :notifier_version, :params_filters, :project_root, :port, :protocol, :proxy_host, :proxy_pass, :proxy_port, :proxy_user, :secure, :framework, :js_notifier].freeze
- DEFAULT_PARAMS_FILTERS =
%w(password password_confirmation).freeze
- DEFAULT_BACKTRACE_FILTERS =
[ lambda { |line| if defined?(HoptoadNotifier.configuration.project_root) && HoptoadNotifier.configuration.project_root.to_s != '' line.gsub(/#{HoptoadNotifier.configuration.project_root}/, "[PROJECT_ROOT]") else line end }, lambda { |line| line.gsub(/^\.\//, "") }, lambda { |line| if defined?(Gem) Gem.path.inject(line) do |line, path| line.gsub(/#{path}/, "[GEM_ROOT]") end end }, lambda { |line| line if line !~ %r{lib/hoptoad_notifier} } ].freeze
- IGNORE_DEFAULT =
['ActiveRecord::RecordNotFound', 'ActionController::RoutingError', 'ActionController::InvalidAuthenticityToken', 'CGI::Session::CookieStore::TamperedWithCookie', 'ActionController::UnknownAction']
Instance Attribute Summary collapse
-
#api_key ⇒ Object
The API key for your project, found on the project edit form.
-
#backtrace_filters ⇒ Object
readonly
A list of filters for cleaning and pruning the backtrace.
-
#development_environments ⇒ Object
A list of environments in which notifications should not be sent.
-
#development_lookup ⇒ Object
true
if you want to check for production errors matching development errors,false
otherwise. -
#environment_name ⇒ Object
The name of the environment the application is running in.
-
#framework ⇒ Object
The framework HoptoadNotifier is configured to use.
-
#host ⇒ Object
The host to connect to (defaults to hoptoadapp.com).
-
#http_open_timeout ⇒ Object
The HTTP open timeout in seconds (defaults to 2).
-
#http_read_timeout ⇒ Object
The HTTP read timeout in seconds (defaults to 5).
-
#ignore ⇒ Object
readonly
A list of exception classes to ignore.
-
#ignore_by_filters ⇒ Object
readonly
A list of filters for ignoring exceptions.
-
#ignore_user_agent ⇒ Object
readonly
A list of user agents that are being ignored.
-
#js_notifier ⇒ Object
true
if you want to enable the JavaScript notifier in production environments. -
#logger ⇒ Object
The logger used by HoptoadNotifier.
-
#notifier_name ⇒ Object
The name of the notifier library being used to send notifications (such as “Hoptoad Notifier”).
-
#notifier_url ⇒ Object
The url of the notifier library being used to send notifications.
-
#notifier_version ⇒ Object
The version of the notifier library being used to send notifications (such as “1.0.2”).
-
#params_filters ⇒ Object
readonly
A list of parameters that should be filtered out of what is sent to Hoptoad.
-
#port ⇒ Object
The port on which your Hoptoad server runs (defaults to 443 for secure connections, 80 for insecure connections).
-
#project_root ⇒ Object
The path to the project in which the error occurred, such as the RAILS_ROOT.
-
#proxy_host ⇒ Object
The hostname of your proxy server (if using a proxy).
-
#proxy_pass ⇒ Object
The password to use when logging into your proxy server (if using a proxy).
-
#proxy_port ⇒ Object
The port of your proxy server (if using a proxy).
-
#proxy_user ⇒ Object
The username to use when logging into your proxy server (if using a proxy).
-
#secure ⇒ Object
(also: #secure?)
true
for https connections,false
for http connections.
Instance Method Summary collapse
-
#[](option) ⇒ Object
Allows config options to be read like a hash.
- #environment_filters ⇒ Object
-
#filter_backtrace(&block) {|line| ... } ⇒ Object
Takes a block and adds it to the list of backtrace filters.
-
#ignore_by_filter(&block) {|data| ... } ⇒ Object
Takes a block and adds it to the list of ignore filters.
-
#ignore_only=(names) ⇒ Object
Overrides the list of default ignored errors.
-
#ignore_user_agent_only=(names) ⇒ Object
Overrides the list of default ignored user agents.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
-
#merge(hash) ⇒ Object
Returns a hash of all configurable options merged with
hash
. - #protocol ⇒ Object
-
#public? ⇒ Boolean
Determines if the notifier will send notices.
-
#to_hash ⇒ Object
Returns a hash of all configurable options.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/hoptoad_notifier/configuration.rb', line 118 def initialize @secure = false @host = 'hoptoadapp.com' @http_open_timeout = 2 @http_read_timeout = 5 @params_filters = DEFAULT_PARAMS_FILTERS.dup @backtrace_filters = DEFAULT_BACKTRACE_FILTERS.dup @ignore_by_filters = [] @ignore = IGNORE_DEFAULT.dup @ignore_user_agent = [] @development_environments = %w(development test cucumber) @development_lookup = true @js_notifier = false @notifier_name = 'Hoptoad Notifier' @notifier_version = VERSION @notifier_url = 'http://hoptoadapp.com' @framework = 'Standalone' end |
Instance Attribute Details
#api_key ⇒ Object
The API key for your project, found on the project edit form.
13 14 15 |
# File 'lib/hoptoad_notifier/configuration.rb', line 13 def api_key @api_key end |
#backtrace_filters ⇒ Object (readonly)
A list of filters for cleaning and pruning the backtrace. See #filter_backtrace.
48 49 50 |
# File 'lib/hoptoad_notifier/configuration.rb', line 48 def backtrace_filters @backtrace_filters end |
#development_environments ⇒ Object
A list of environments in which notifications should not be sent.
60 61 62 |
# File 'lib/hoptoad_notifier/configuration.rb', line 60 def development_environments @development_environments end |
#development_lookup ⇒ Object
true
if you want to check for production errors matching development errors, false
otherwise.
63 64 65 |
# File 'lib/hoptoad_notifier/configuration.rb', line 63 def development_lookup @development_lookup end |
#environment_name ⇒ Object
The name of the environment the application is running in
69 70 71 |
# File 'lib/hoptoad_notifier/configuration.rb', line 69 def environment_name @environment_name end |
#framework ⇒ Object
The framework HoptoadNotifier is configured to use
87 88 89 |
# File 'lib/hoptoad_notifier/configuration.rb', line 87 def framework @framework end |
#host ⇒ Object
The host to connect to (defaults to hoptoadapp.com).
16 17 18 |
# File 'lib/hoptoad_notifier/configuration.rb', line 16 def host @host end |
#http_open_timeout ⇒ Object
The HTTP open timeout in seconds (defaults to 2).
26 27 28 |
# File 'lib/hoptoad_notifier/configuration.rb', line 26 def http_open_timeout @http_open_timeout end |
#http_read_timeout ⇒ Object
The HTTP read timeout in seconds (defaults to 5).
29 30 31 |
# File 'lib/hoptoad_notifier/configuration.rb', line 29 def http_read_timeout @http_read_timeout end |
#ignore ⇒ Object (readonly)
A list of exception classes to ignore. The array can be appended to.
54 55 56 |
# File 'lib/hoptoad_notifier/configuration.rb', line 54 def ignore @ignore end |
#ignore_by_filters ⇒ Object (readonly)
A list of filters for ignoring exceptions. See #ignore_by_filter.
51 52 53 |
# File 'lib/hoptoad_notifier/configuration.rb', line 51 def ignore_by_filters @ignore_by_filters end |
#ignore_user_agent ⇒ Object (readonly)
A list of user agents that are being ignored. The array can be appended to.
57 58 59 |
# File 'lib/hoptoad_notifier/configuration.rb', line 57 def ignore_user_agent @ignore_user_agent end |
#js_notifier ⇒ Object
true
if you want to enable the JavaScript notifier in production environments
66 67 68 |
# File 'lib/hoptoad_notifier/configuration.rb', line 66 def js_notifier @js_notifier end |
#logger ⇒ Object
The logger used by HoptoadNotifier
84 85 86 |
# File 'lib/hoptoad_notifier/configuration.rb', line 84 def logger @logger end |
#notifier_name ⇒ Object
The name of the notifier library being used to send notifications (such as “Hoptoad Notifier”)
75 76 77 |
# File 'lib/hoptoad_notifier/configuration.rb', line 75 def notifier_name @notifier_name end |
#notifier_url ⇒ Object
The url of the notifier library being used to send notifications
81 82 83 |
# File 'lib/hoptoad_notifier/configuration.rb', line 81 def notifier_url @notifier_url end |
#notifier_version ⇒ Object
The version of the notifier library being used to send notifications (such as “1.0.2”)
78 79 80 |
# File 'lib/hoptoad_notifier/configuration.rb', line 78 def notifier_version @notifier_version end |
#params_filters ⇒ Object (readonly)
A list of parameters that should be filtered out of what is sent to Hoptoad. By default, all “password” attributes will have their contents replaced.
45 46 47 |
# File 'lib/hoptoad_notifier/configuration.rb', line 45 def params_filters @params_filters end |
#port ⇒ Object
The port on which your Hoptoad server runs (defaults to 443 for secure connections, 80 for insecure connections).
20 21 22 |
# File 'lib/hoptoad_notifier/configuration.rb', line 20 def port @port end |
#project_root ⇒ Object
The path to the project in which the error occurred, such as the RAILS_ROOT
72 73 74 |
# File 'lib/hoptoad_notifier/configuration.rb', line 72 def project_root @project_root end |
#proxy_host ⇒ Object
The hostname of your proxy server (if using a proxy)
32 33 34 |
# File 'lib/hoptoad_notifier/configuration.rb', line 32 def proxy_host @proxy_host end |
#proxy_pass ⇒ Object
The password to use when logging into your proxy server (if using a proxy)
41 42 43 |
# File 'lib/hoptoad_notifier/configuration.rb', line 41 def proxy_pass @proxy_pass end |
#proxy_port ⇒ Object
The port of your proxy server (if using a proxy)
35 36 37 |
# File 'lib/hoptoad_notifier/configuration.rb', line 35 def proxy_port @proxy_port end |
#proxy_user ⇒ Object
The username to use when logging into your proxy server (if using a proxy)
38 39 40 |
# File 'lib/hoptoad_notifier/configuration.rb', line 38 def proxy_user @proxy_user end |
#secure ⇒ Object Also known as: secure?
true
for https connections, false
for http connections.
23 24 25 |
# File 'lib/hoptoad_notifier/configuration.rb', line 23 def secure @secure end |
Instance Method Details
#[](option) ⇒ Object
Allows config options to be read like a hash
183 184 185 |
# File 'lib/hoptoad_notifier/configuration.rb', line 183 def [](option) send(option) end |
#environment_filters ⇒ Object
219 220 221 222 |
# File 'lib/hoptoad_notifier/configuration.rb', line 219 def environment_filters warn 'config.environment_filters has been deprecated and has no effect.' [] end |
#filter_backtrace(&block) {|line| ... } ⇒ Object
Takes a block and adds it to the list of backtrace filters. When the filters run, the block will be handed each line of the backtrace and can modify it as necessary.
148 149 150 |
# File 'lib/hoptoad_notifier/configuration.rb', line 148 def filter_backtrace(&block) self.backtrace_filters << block end |
#ignore_by_filter(&block) {|data| ... } ⇒ Object
Takes a block and adds it to the list of ignore filters. When the filters run, the block will be handed the exception.
162 163 164 |
# File 'lib/hoptoad_notifier/configuration.rb', line 162 def ignore_by_filter(&block) self.ignore_by_filters << block end |
#ignore_only=(names) ⇒ Object
Overrides the list of default ignored errors.
169 170 171 |
# File 'lib/hoptoad_notifier/configuration.rb', line 169 def ignore_only=(names) @ignore = [names].flatten end |
#ignore_user_agent_only=(names) ⇒ Object
Overrides the list of default ignored user agents
176 177 178 |
# File 'lib/hoptoad_notifier/configuration.rb', line 176 def ignore_user_agent_only=(names) @ignore_user_agent = [names].flatten end |
#merge(hash) ⇒ Object
Returns a hash of all configurable options merged with hash
197 198 199 |
# File 'lib/hoptoad_notifier/configuration.rb', line 197 def merge(hash) to_hash.merge(hash) end |
#protocol ⇒ Object
211 212 213 214 215 216 217 |
# File 'lib/hoptoad_notifier/configuration.rb', line 211 def protocol if secure? 'https' else 'http' end end |
#public? ⇒ Boolean
Determines if the notifier will send notices.
203 204 205 |
# File 'lib/hoptoad_notifier/configuration.rb', line 203 def public? !development_environments.include?(environment_name) end |
#to_hash ⇒ Object
Returns a hash of all configurable options
188 189 190 191 192 |
# File 'lib/hoptoad_notifier/configuration.rb', line 188 def to_hash OPTIONS.inject({}) do |hash, option| hash.merge(option.to_sym => send(option)) end end |