class ResultViewer
Attributes
run_state[R]
Public Class Methods
new(policies)
click to toggle source
# File lib/result_viewer.rb, line 9 def initialize(policies) @run_state = { :policies => policies, :total => policies.size, :successes => policies.reduce(0) { |count, policy| policy[:success] ? count + 1 : count } } end
Public Instance Methods
to_csv()
click to toggle source
# File lib/result_viewer.rb, line 35 def to_csv ## CSV.generate do |csv| # csv << ['Rule', 'Property', 'Expected Value', 'Actual Value', 'Success'] # rule_results.each do |rule, result| # result.each do |r| # csv << [rule, r[:property], r[:expected], r[:actual], r[:success]] # end # end # end "TODO(ploubser): Implement" end
to_json()
click to toggle source
# File lib/result_viewer.rb, line 31 def to_json @run_state.to_json end
to_s()
click to toggle source
# File lib/result_viewer.rb, line 15 def to_s string_buffer = [] string_buffer << "Total Policies: #{@run_state[:total]}" @run_state[:policies].each do |policy| string_buffer << stringify_policy(policy) end string_buffer << "Passed: #{@run_state[:successes]}/#{@run_state[:total]}" string_buffer.join("\n\n") end
to_yaml()
click to toggle source
# File lib/result_viewer.rb, line 27 def to_yaml @run_state.to_yaml end
Private Instance Methods
indent_buffer(buffer, count=4)
click to toggle source
# File lib/result_viewer.rb, line 94 def indent_buffer(buffer, count=4) buffer.map do |s| ' ' * count + s.to_s end end
stringify_policy(policy)
click to toggle source
# File lib/result_viewer.rb, line 50 def stringify_policy(policy) string_buffer = [] color = policy[:success] ? :green : :red string_buffer << "Policy: #{Rainbow(policy[:name]).send(color)}" policy[:rules].each do |rule| string_buffer << stringify_rule(rule) end string_buffer.join("\n\n") end
stringify_property(property)
click to toggle source
# File lib/result_viewer.rb, line 86 def stringify_property(property) string_buffer = [] color = property[:success] ? :green : :red string_buffer << "#{property[:name]}: #{property[:expected]} -> #{Rainbow(property[:actual]).send(color)}" indent_buffer(string_buffer, 8).join("\n") end
stringify_resource(resource)
click to toggle source
# File lib/result_viewer.rb, line 76 def stringify_resource(resource) string_buffer = [] string_buffer << resource[:title] resource[:properties].each do |property| string_buffer << stringify_property(property) end indent_buffer(string_buffer).join("\n") end
stringify_rule(rule)
click to toggle source
# File lib/result_viewer.rb, line 60 def stringify_rule(rule) string_buffer = [] color = rule[:success] ? :green : :red string_buffer << "Description: #{Rainbow(rule[:description]).send(color)}" if rule[:severity] string_buffer << "Severity: #{Rainbow(rule[:severity]).send(color)}" end rule[:resources].each do |resource| string_buffer << stringify_resource(resource) end indent_buffer(string_buffer).join("\n") end