class Chef::Audit::AuditEventProxy
Public Class Methods
events=(events)
click to toggle source
TODO I don't like this, but I don't see another way to pass this in see rspec files configuration.rb#L671 and formatters.rb#L129
# File lib/chef/audit/audit_event_proxy.rb, line 28 def self.events=(events) @@events = events end
Public Instance Methods
events()
click to toggle source
# File lib/chef/audit/audit_event_proxy.rb, line 32 def events @@events end
example_group_started(notification)
click to toggle source
# File lib/chef/audit/audit_event_proxy.rb, line 36 def example_group_started(notification) if notification.group.parent_groups.size == 1 # top level `control_group` block desc = notification.group.description Chef::Log.trace("Entered `control_group` block named #{desc}") events.control_group_started(desc) end end
stop(notification)
click to toggle source
# File lib/chef/audit/audit_event_proxy.rb, line 45 def stop(notification) Chef::Log.info("Successfully executed all `control_group` blocks and contained examples") notification.examples.each do |example| control_group_name, control_data = build_control_from(example) e = example.exception if e events.control_example_failure(control_group_name, control_data, e) else events.control_example_success(control_group_name, control_data) end end end
Private Instance Methods
build_control_from(example)
click to toggle source
# File lib/chef/audit/audit_event_proxy.rb, line 60 def build_control_from(example) described_class = example.metadata[:described_class] if described_class resource_type = described_class.class.name.split(":")[-1] resource_name = described_class.name end # The following code builds up the context - the list of wrapping `describe` or `control` blocks describe_groups = [] group = example.metadata[:example_group] # If the innermost block has a resource instead of a string, don't include it in context describe_groups.unshift(group[:description]) if described_class.nil? group = group[:parent_example_group] until group.nil? describe_groups.unshift(group[:description]) group = group[:parent_example_group] end # We know all of our examples each live in a top-level `control_group` block - get this name now outermost_group_desc = describe_groups.shift [outermost_group_desc, { :name => example.description, :desc => example.full_description, :resource_type => resource_type, :resource_name => resource_name, :context => describe_groups, :line_number => example.metadata[:line_number], }] end