Class: Kintsugi::ConflictResolver
- Inherits:
-
Object
- Object
- Kintsugi::ConflictResolver
- Defined in:
- lib/kintsugi/conflict_resolver.rb
Class Method Summary collapse
-
.create_nonexistent_component_when_changing_it?(path) ⇒ Boolean
Should be called when trying to apply changes to a component with path
paththat doesn’t exist. -
.create_nonexistent_group_when_adding_file?(containing_group_path, file_name) ⇒ Boolean
Should be called when trying to add a file with name
file_namewhose containing group with pathcontaining_group_pathdoesn’t exist. -
.create_nonexistent_group_when_adding_subgroup?(containing_group_path, subgroup_name) ⇒ Boolean
Should be called when trying to add a subgroup with name
subgroup_namewhose containing group with pathcontaining_group_pathdoesn’t exist. -
.override_values_when_keys_already_exist_in_hash?(hash_name, old_hash, new_hash) ⇒ Boolean
Should be called when trying to merge
new_hashintonew_hashbutnew_hashcontains keys that exist inold_hash. -
.remove_component_when_unexpected_hash?(component, change) ⇒ Boolean
Should be called when trying to remove a
componentwho’s expected to have a hash equal tochangebut they are not equal. -
.remove_entries_when_unexpected_values_in_hash?(hash_name, expected_values, actual_values) ⇒ Boolean
Should be called when trying to remove entries from a hash of an attribute named
hash_name. -
.set_value_to_string_when_unxpected_value?(string_name, new_value, expected_value, actual_value) ⇒ Boolean
Should be called when setting a string named
string_nameto valuenew_valueand its expected value isexpected_valuebut it has a value ofactual_value.
Class Method Details
.create_nonexistent_component_when_changing_it?(path) ⇒ Boolean
Should be called when trying to apply changes to a component with path path that doesn’t exist. Returns true if the component should be created and false if applying the changes to it should be ignored.
41 42 43 44 45 46 47 48 49 |
# File 'lib/kintsugi/conflict_resolver.rb', line 41 def create_nonexistent_component_when_changing_it?(path) resolve_merge_error( "Trying to apply change to a component that doesn't exist at path '#{path}'", { 'Create component and the components that contain it': true, 'Ignore change to component': false } ) end |
.create_nonexistent_group_when_adding_file?(containing_group_path, file_name) ⇒ Boolean
Should be called when trying to add a file with name file_name whose containing group with path containing_group_path doesn’t exist. Returns true if the cotaining group should be created and false if adding the file should be ignored.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/kintsugi/conflict_resolver.rb', line 27 def create_nonexistent_group_when_adding_file?(containing_group_path, file_name) resolve_merge_error( "Trying to add or move a file with name '#{file_name}' to a group that doesn't exist. " \ "The group's path is '#{containing_group_path}'", { "Create group with path '#{containing_group_path}'": true, "Ignore adding file '#{file_name}'": false } ) end |
.create_nonexistent_group_when_adding_subgroup?(containing_group_path, subgroup_name) ⇒ Boolean
Should be called when trying to add a subgroup with name subgroup_name whose containing group with path containing_group_path doesn’t exist. Returns true if the cotaining group should be created and false if adding the subgroup should be ignored.
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/kintsugi/conflict_resolver.rb', line 13 def create_nonexistent_group_when_adding_subgroup?(containing_group_path, subgroup_name) resolve_merge_error( "Trying to create group '#{subgroup_name}' inside a group that doesn't exist. The " \ "group's path is '#{containing_group_path}'", { "Create containing group with path '#{containing_group_path}'": true, "Ignore adding group '#{subgroup_name}'": false } ) end |
.override_values_when_keys_already_exist_in_hash?(hash_name, old_hash, new_hash) ⇒ Boolean
Should be called when trying to merge new_hash into new_hash but new_hash contains keys that exist in old_hash. Returns true if the keys should be overriden from new_hash, false to keep the values from old_hash.
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/kintsugi/conflict_resolver.rb', line 54 def override_values_when_keys_already_exist_in_hash?(hash_name, old_hash, new_hash) resolve_merge_error( "Trying to add values to hash of attribute named '#{hash_name}': Merging hash " \ "#{new_hash} into existing hash #{old_hash} but it contains values that already " \ "exist", { 'Override values from new hash': true, 'Ignore values from new hash': false } ) end |
.remove_component_when_unexpected_hash?(component, change) ⇒ Boolean
Should be called when trying to remove a component who’s expected to have a hash equal to change but they are not equal. Returns true if component should be removed anyway, false otherwise.
100 101 102 103 104 105 106 107 108 109 |
# File 'lib/kintsugi/conflict_resolver.rb', line 100 def remove_component_when_unexpected_hash?(component, change) resolve_merge_error( "Trying to remove a component named '#{component.display_name}': Expected hash of " \ "#{change} but its hash is #{component.to_tree_hash}", { 'Remove object anyway': true, 'Keep object': false } ) end |
.remove_entries_when_unexpected_values_in_hash?(hash_name, expected_values, actual_values) ⇒ Boolean
Should be called when trying to remove entries from a hash of an attribute named hash_name. The values of those entries were expected to be expected_values but instead they are actual_values. Returns true if the entries should be removed anyway, false to keep the entries.
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/kintsugi/conflict_resolver.rb', line 70 def remove_entries_when_unexpected_values_in_hash?(hash_name, expected_values, actual_values) resolve_merge_error( "Trying to remove entries from hash of attribute named '#{hash_name}': Expected values " \ "for keys to be '#{expected_values}' but the existing values are '#{actual_values}'", { 'Remove entries anyway': true, 'Keep entries': false } ) end |
.set_value_to_string_when_unxpected_value?(string_name, new_value, expected_value, actual_value) ⇒ Boolean
Should be called when setting a string named string_name to value new_value and its expected value is expected_value but it has a value of actual_value. Returns true if the string should be set to new_value, false if the actual_value should remain.
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/kintsugi/conflict_resolver.rb', line 84 def set_value_to_string_when_unxpected_value?( string_name, new_value, expected_value, actual_value ) resolve_merge_error( "Trying to change value of attribute named '#{string_name} from '#{new_value}' to " \ "'#{expected_value || "nil"}', but the existing value is '#{actual_value}'", { "Set to new value '#{new_value}'": true, "Keep existing value '#{actual_value}'": false } ) end |