Class: DynportTools::Differ
- Inherits:
-
Object
- Object
- DynportTools::Differ
- Defined in:
- lib/dynport_tools/differ.rb
Instance Attribute Summary collapse
-
#diff_all ⇒ Object
Returns the value of attribute diff_all.
-
#use_return ⇒ Object
Returns the value of attribute use_return.
Instance Method Summary collapse
- #diff(a, b) ⇒ Object
- #diff_to_message_lines(the_diff, prefix = nil) ⇒ Object
-
#initialize(options = {}) ⇒ Differ
constructor
A new instance of Differ.
Constructor Details
#initialize(options = {}) ⇒ Differ
Returns a new instance of Differ.
6 7 8 9 |
# File 'lib/dynport_tools/differ.rb', line 6 def initialize( = {}) self.diff_all = [:diff_all] != false self.use_return = [:use_return] == true end |
Instance Attribute Details
#diff_all ⇒ Object
Returns the value of attribute diff_all.
3 4 5 |
# File 'lib/dynport_tools/differ.rb', line 3 def diff_all @diff_all end |
#use_return ⇒ Object
Returns the value of attribute use_return.
3 4 5 |
# File 'lib/dynport_tools/differ.rb', line 3 def use_return @use_return end |
Instance Method Details
#diff(a, b) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/dynport_tools/differ.rb', line 11 def diff(a, b) if both?(a, b, Hash) diff_hash_values(a, b, a.keys + (self.diff_all ? b.keys : [])) elsif both?(a, b, Array) diff_hash_values(a, b, all_array_indexes(a, b)) else [a, b] if a != b end end |
#diff_to_message_lines(the_diff, prefix = nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/dynport_tools/differ.rb', line 21 def (the_diff, prefix = nil) if the_diff.is_a?(Array) ["expected #{expected_value(the_diff.first)} to be #{expected_value(the_diff.at(1))}"] elsif the_diff.is_a?(Hash) the_diff.map do |key, diff| if diff.is_a?(Array) "expected #{merge_prefixes(prefix, key)} to #{use_return ? "return" : "be"} #{expected_value(diff.first)} but #{use_return ? "did" : "was"} #{expected_value(diff.at(1))}" else (diff, merge_prefixes(prefix, key)) end end.flatten else [] end end |