Class: InspecRspecJson

Inherits:
InspecRspecMiniJson show all
Defined in:
lib/inspec/rspec_json_formatter.rb

Instance Method Summary collapse

Methods inherited from InspecRspecMiniJson

#stop

Instance Method Details

#add_profile(profile) ⇒ Object



77
78
79
80
# File 'lib/inspec/rspec_json_formatter.rb', line 77

def add_profile(profile)
  @profiles ||= []
  @profiles.push(profile)
end

#dump_one_example(example, profiles, missing) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/inspec/rspec_json_formatter.rb', line 82

def dump_one_example(example, profiles, missing)
  profile = profiles[example[:profile_id]]
  return missing.push(example) if profile.nil? || profile[:controls].nil?

  control = profile[:controls][example[:id]]
  return missing.push(example) if control.nil?

  control[:results] ||= []
  example.delete(:id)
  example.delete(:profile_id)
  control[:results].push(example)
end

#dump_summary(summary) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/inspec/rspec_json_formatter.rb', line 100

def dump_summary(summary)
  super(summary)
  @profiles ||= []
  examples = @output_hash.delete(:controls)
  profiles = Hash[@profiles.map { |x| profile_info(x) }]
  missing = []

  examples.each do |example|
    dump_one_example(example, profiles, missing)
  end

  @output_hash[:profiles] = profiles
  @output_hash[:other_checks] = missing
end

#profile_info(profile) ⇒ Object



95
96
97
98
# File 'lib/inspec/rspec_json_formatter.rb', line 95

def profile_info(profile)
  info = profile.info.dup
  [info[:name], info]
end