class CoverallsMulti::Validator
checks that a payload is valid before sending to Coveralls
Constants
- SOURCE_FILE_KEYS
- TOP_LEVEL_KEYS
Attributes
payload[RW]
Public Class Methods
new(payload)
click to toggle source
# File lib/coveralls-multi/validator.rb, line 10 def initialize(payload) @payload = payload end
Public Instance Methods
check_required_keys(required_keys, message = 'Missing required key(s)', payload = @payload)
click to toggle source
# File lib/coveralls-multi/validator.rb, line 39 def check_required_keys(required_keys, message = 'Missing required key(s)', payload = @payload) missing_keys = [] required_keys.each do |key| missing_keys.push key unless payload[key] end error = "#{message} - #{missing_keys.join(', ')}" raise error unless missing_keys.empty? end
json?()
click to toggle source
# File lib/coveralls-multi/validator.rb, line 18 def json? parsed_json = JSON.dump(@payload) parsed_json rescue JSON::UnparserError => e puts '[CoverallsMulti] Payload could not be parsed to JSON!' raise e end
run()
click to toggle source
# File lib/coveralls-multi/validator.rb, line 14 def run return true if json? && valid_coveralls_payload? end
valid_coveralls_payload?()
click to toggle source
# File lib/coveralls-multi/validator.rb, line 26 def valid_coveralls_payload? raise 'Payload is empty!' if !@payload || @payload.empty? raise 'Payload should be a hash!' unless @payload.is_a?(Hash) check_required_keys(TOP_LEVEL_KEYS, 'Missing required top-level key') @payload['source_files'].each do |src_file| check_required_keys( SOURCE_FILE_KEYS, 'Missing required source file key(s)', src_file ) end @payload end