Class: Wrangler::ExceptionHandler
- Inherits:
-
Object
- Object
- Wrangler::ExceptionHandler
- Defined in:
- lib/wrangler/exception_handler.rb
Overview
Class Method Summary collapse
-
.config ⇒ Object
give access to config —————————————————————————–.
-
.configure {|@@config| ... } ⇒ Object
Allows for overriding default configuration settings.
-
.status_code_for_exception(exception) ⇒ Object
translate the exception class to an http status code, using default code (set in config) if the exception class isn’t excplicitly mapped to a status code in config —————————————————————————.
Class Method Details
.config ⇒ Object
give access to config
134 135 136 |
# File 'lib/wrangler/exception_handler.rb', line 134 def self.config @@config end |
.configure {|@@config| ... } ⇒ Object
Allows for overriding default configuration settings. in your environment.rb or environments/<env name>.rb, use a block that accepts one argument
-
recommend against naming it ‘config’ as you will probably be calling it within the config block in env.rb…):
-
note that some of the config values are arrays or hashes; you can overwrite them completely, delete or insert/merge new entries into the default values as you see fit…but in most cases, recommend AGAINST overwriting the arrays/hashes completely unless you don’t want to take advantage of lots of out-of-the-box config
Wrangler::ExceptionHandler.configure do |handler_config|
handler_config[:key1] = value1 handler_config[:key2] = value2 handler_config[:key_for_a_hash].merge! :subkey => value handler_config[:key_for_an_array] << another_value
end
OR
Wrangler::ExceptionHandler.configure do |handler_config|
handler_config.merge! :key1 => value1,
:key2 => value2,
handler_config[:key_for_a_hash].merge! :subkey => value
handler_config[:key_for_an_array] << another_value
end
NOTE: sure, you can change this configuration on the fly in your app, but we don’t recommend it. plus, if you do and you’re using delayed_job, there may end up being configuration differences between the rails process and the delayed_job process, resulting in unexpected behavior. so recommend you just modify this in the environment config files…or if you’re doing something sneaky, you’re on your own.
173 174 175 |
# File 'lib/wrangler/exception_handler.rb', line 173 def self.configure(&block) yield @@config end |
.status_code_for_exception(exception) ⇒ Object
translate the exception class to an http status code, using default code (set in config) if the exception class isn’t excplicitly mapped to a status code in config
182 183 184 185 186 187 188 189 |
# File 'lib/wrangler/exception_handler.rb', line 182 def self.status_code_for_exception(exception) if exception.respond_to?(:status_code) return exception.status_code else return config[:error_class_status_codes][exception.class.name] || config[:error_class_status_codes][:default] end end |