class Pact::Matchers::ExtractDiffMessages
Attributes
diff[R]
Public Class Methods
call(diff, options = {})
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 12 def self.call diff, options = {} new(diff, options).call end
new(diff, options = {})
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 8 def initialize diff, options = {} @diff = diff end
Public Instance Methods
call()
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 20 def call to_a end
diff_messages(obj, path = [], messages = [])
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 32 def diff_messages obj, path = [], messages = [] case obj when Hash then handle_hash obj, path, messages when Array then handle_array obj, path, messages when BaseDifference then handle_difference obj, path, messages when NoDiffAtIndex then nil else raise "Invalid diff, expected Hash, Array, NoDiffAtIndex or BaseDifference, found #{obj.class}" end messages end
handle_array(array, path, messages)
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 51 def handle_array array, path, messages array.each_with_index do | obj, index | diff_messages obj, path + ["[#{index}]"], messages end end
handle_difference(difference, path, messages)
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 57 def handle_difference difference, path, messages if difference.message message = difference.message message = message.gsub("<path>", path_to_s(path)) message = message.gsub("<parent_path>", parent_path_to_s(path)) messages << message end end
handle_hash(hash, path, messages)
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 44 def handle_hash hash, path, messages hash.each_pair do | key, value | next_part = key =~ /\s/ ? key.inspect : key diff_messages value, path + [".#{next_part}"], messages end end
parent_path_to_s(path)
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 70 def parent_path_to_s path path_to_s(path[0..-2]) end
path_to_s(path)
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 66 def path_to_s path "$" + path.join end
to_a()
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 28 def to_a diff_messages(diff) end
to_hash()
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 16 def to_hash to_a end
to_s()
click to toggle source
# File lib/pact/matchers/extract_diff_messages.rb, line 24 def to_s diff_messages(diff).join("\n") end