Class: Speedup::Collectors::Collector
- Inherits:
-
Object
- Object
- Speedup::Collectors::Collector
- Defined in:
- lib/speedup/collectors/collector.rb
Direct Known Subclasses
BulletCollector, MiniprofilerCollector, PartialsCollector, QueriesCollector, RequestCollector, RubyprofCollector
Class Method Summary collapse
Instance Method Summary collapse
-
#context_id ⇒ Object
Returns String.
-
#dom_id ⇒ Object
The wrapper ID for the individual panel in the Speedup bar.
-
#enabled? ⇒ Boolean
Conditionally enable views based on any gathered data.
-
#event_to_data(evt) ⇒ Object
Transfer the event to actual stored data.
- #filter_event?(evt) ⇒ Boolean
-
#initialize(options = {}) ⇒ Collector
constructor
A new instance of Collector.
-
#key ⇒ Object
(also: #defer_key)
Returns Symbol.
-
#parse_options ⇒ Object
Where any subclasses should pick and pull from @options to set any and all instance variables they like.
- #register(*args, &block) ⇒ Object
- #render? ⇒ Boolean
-
#store_event(evt, key = nil) ⇒ Object
Stores en event to request context.
- #subscribe(*args, &block) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Collector
Returns a new instance of Collector.
9 10 11 12 13 14 |
# File 'lib/speedup/collectors/collector.rb', line 9 def initialize( = {}) @options = setup_subscribes end |
Class Method Details
.key ⇒ Object
5 6 7 |
# File 'lib/speedup/collectors/collector.rb', line 5 def self.key self.name.to_s.split('::').last.gsub(/Collector$/, '').underscore.to_sym end |
Instance Method Details
#context_id ⇒ Object
Returns String.
46 47 48 |
# File 'lib/speedup/collectors/collector.rb', line 46 def context_id "speedup-context-#{key}" end |
#dom_id ⇒ Object
The wrapper ID for the individual panel in the Speedup bar.
Returns String.
53 54 55 |
# File 'lib/speedup/collectors/collector.rb', line 53 def dom_id "speedup-panel-#{key}" end |
#enabled? ⇒ Boolean
Conditionally enable views based on any gathered data. Helpful if you don’t want views to show up when they return 0 or are touched during the request.
Returns true.
29 30 31 |
# File 'lib/speedup/collectors/collector.rb', line 29 def enabled? true end |
#event_to_data(evt) ⇒ Object
Transfer the event to actual stored data. Default implementation takes full payload, event time and event duration.
82 83 84 |
# File 'lib/speedup/collectors/collector.rb', line 82 def event_to_data(evt) evt.payload.merge( time: evt.time, duration: evt.duration ) end |
#filter_event?(evt) ⇒ Boolean
86 87 88 |
# File 'lib/speedup/collectors/collector.rb', line 86 def filter_event?(evt) !Speedup.enabled? end |
#key ⇒ Object Also known as: defer_key
Returns Symbol.
35 36 37 |
# File 'lib/speedup/collectors/collector.rb', line 35 def key self.class.key end |
#parse_options ⇒ Object
Where any subclasses should pick and pull from @options to set any and all instance variables they like.
Returns nothing.
20 21 22 |
# File 'lib/speedup/collectors/collector.rb', line 20 def # pass end |
#register(*args, &block) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/speedup/collectors/collector.rb', line 61 def register(*args, &block) if block_given? subscribe(*args, &block) else subscribe(*args) do |*args| next unless Speedup.enabled? evt = ActiveSupport::Notifications::Event.new(*args) store_event(evt) unless filter_event?(evt) end end end |
#render? ⇒ Boolean
40 41 42 |
# File 'lib/speedup/collectors/collector.rb', line 40 def render? enabled? end |
#store_event(evt, key = nil) ⇒ Object
Stores en event to request context. Uses a event_to_data method.
75 76 77 78 |
# File 'lib/speedup/collectors/collector.rb', line 75 def store_event(evt, key=nil) key ||= self.key Speedup.request.store_event(key, event_to_data(evt) ) if Speedup.request end |
#subscribe(*args, &block) ⇒ Object
57 58 59 |
# File 'lib/speedup/collectors/collector.rb', line 57 def subscribe(*args, &block) ActiveSupport::Notifications.subscribe(*args, &block) end |