Class: Jekyll::AgentAudit::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/agent_audit/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Runner

Returns a new instance of Runner.



12
13
14
# File 'lib/jekyll/agent_audit/runner.rb', line 12

def initialize(options = {})
  @options = options.transform_keys(&:to_s)
end

Instance Method Details

#run ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/jekyll/agent_audit/runner.rb', line 16

def run
  @extraction_diagnostics = []
  temporary = Dir.mktmpdir("jekyll-agent-audit-")
  site = nil
  begin
    jekyll_options = build_options(temporary)
    configuration = Configuration.new(jekyll_options.fetch("agent_audit", {}), @options.slice("fail_on", "format"))
    site = Jekyll::Site.new(jekyll_options)
    register_context(site, configuration)
    site.process
    inventory = site.instance_variable_get(:@agent_audit_inventory)
    inventory&.finalize!
    report_from_site(site, inventory)
  rescue Interrupt
    operational_report("interrupted", "Audit interrupted", site)
  rescue StandardError => e
    operational_report("build_failure", e.message, site)
  ensure
    FileUtils.remove_entry(temporary) if temporary && File.directory?(temporary)
  end
end