Class: AeTestCoverage::Collectors::ActionView::RenderedTemplateCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRenderedTemplateCollector

Returns a new instance of RenderedTemplateCollector.



24
25
26
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 24

def initialize
  RenderedTemplateCollector.subscribe(self) unless RenderedTemplateCollector.subscriber.present?
end

Class Attribute Details

.subscriberObject (readonly)

Returns the value of attribute subscriber.



8
9
10
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 8

def subscriber
  @subscriber
end

Class Method Details

.subscribe(collector) ⇒ Object



10
11
12
13
14
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 10

def subscribe(collector)
  @subscriber = ActiveSupport::Notifications.subscribe('!render_template.action_view') do |_name, _start, _finish, _id, payload|
    collector.add_covered_templates(payload[:identifier])
  end
end

.unsubscribeObject



16
17
18
19
20
21
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 16

def unsubscribe
  if @subscriber
    ActiveSupport::Notifications.unsubscribe(@subscriber)
    @subscriber = nil
  end
end

Instance Method Details

#add_covered_templates(*tempates) ⇒ Object



32
33
34
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 32

def add_covered_templates(*tempates)
  @covered_templates_collection&.merge(tempates)
end

#covered_filesObject



36
37
38
39
40
41
42
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 36

def covered_files
  {}.tap do |coverage_data|
    @covered_templates_collection.map do |template_file|
      coverage_data[template_file] = {template: true}
    end
  end
end

#on_startObject



28
29
30
# File 'lib/ae_test_coverage/collectors/action_view/rendered_template_collector.rb', line 28

def on_start
  @covered_templates_collection = Set.new
end