Module: Timber::Events
- Defined in:
- lib/timber/events.rb,
lib/timber/events/custom.rb,
lib/timber/events/exception.rb,
lib/timber/events/sql_query.rb,
lib/timber/events/controller_call.rb,
lib/timber/events/template_render.rb,
lib/timber/events/http_server_request.rb,
lib/timber/events/http_server_response.rb
Overview
Namespace for all Timber supported events.
Defined Under Namespace
Classes: ControllerCall, Custom, Exception, HTTPRequest, HTTPResponse, SQLQuery, TemplateRender
Class Method Summary collapse
-
.build(obj) ⇒ Object
Protocol for casting objects into a ‘Timber::Event`.
Class Method Details
.build(obj) ⇒ Object
Protocol for casting objects into a ‘Timber::Event`.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/timber/events.rb', line 16 def self.build(obj) if obj.is_a?(::Timber::Event) obj elsif obj.respond_to?(:to_timber_event) obj.to_timber_event elsif obj.is_a?(Hash) && obj.key?(:message) && obj.length == 2 event = obj.select { |k,v| k != :message } type = event.keys.first data = event.values.first Events::Custom.new( type: type, message: obj[:message], data: data ) elsif obj.is_a?(Struct) && obj.respond_to?(:message) && obj.respond_to?(:type) Events::Custom.new( type: obj.type, message: obj., data: obj.respond_to?(:to_h) ? obj.to_h : Timber::Util::Struct.to_hash(obj) # ruby 1.9.3 does not have to_h :( ) else nil end end |