class Lacerda::Reporters::Stdout
Public Class Methods
new(options = {})
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 5 def initialize(options = {}) @verbose = options.fetch(:verbose, true) @io = options.fetch(:output, $stdout) end
Public Instance Methods
check_consumed_object(object)
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 47 def check_consumed_object(object) error = if object.publisher.nil? "Publisher #{object.publisher_name} does not exist" elsif !object.publisher.publishes?(object.name) "#{object.publisher.name} does not publish #{object.name}" else nil end @current_consumer.it "#{object.name} from #{object.publisher_name}" do expect(error).to(be_nil, error) end end
check_consumer(consuming_service)
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 41 def check_consumer(consuming_service) return unless @verbose @io.print "\nObjects consumed by #{consuming_service.name.camelize}: " end
check_consuming()
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 30 def check_consuming return unless @verbose if @consumers == 0 @io.print " (no consumers)".yellow + "\n" elsif @consume_errors == 0 @io.print " OK".green else @io.print " ERROR".red end end
check_publisher(publisher)
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 13 def check_publisher(publisher) return unless @verbose @consumers = 0 @consume_errors = 0 @io.print "\n#{publisher.name.camelize} satisfies: " end
check_publishing()
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 10 def check_publishing end
consume_specification_satisfied(consumer, is_valid)
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 20 def consume_specification_satisfied(consumer, is_valid) @consumers += 1 if is_valid @io.print "#{consumer.name.camelize.green} " if @verbose else @io.print "#{consumer.name.camelize.red} " if @verbose @consume_errors += 1 end end
result(errors)
click to toggle source
# File lib/lacerda/reporters/stdout.rb, line 68 def result(errors) return unless @verbose if errors.blank? @io.puts "\n----------------------" @io.puts "All contracts valid 🙌 ".green else @io.puts "--------------" @io.puts "😱 Violations:".red @io.puts JSON.pretty_generate(errors) @io.puts "#{errors.length} contract violations".red end end