Class: MysqlInspector::Diff
- Inherits:
-
Object
- Object
- MysqlInspector::Diff
- Defined in:
- lib/mysql_inspector/diff.rb
Defined Under Namespace
Classes: TableDiff
Instance Attribute Summary collapse
-
#added_tables ⇒ Object
readonly
Returns the value of attribute added_tables.
-
#different_tables ⇒ Object
readonly
Returns the value of attribute different_tables.
-
#equal_tables ⇒ Object
readonly
Returns the value of attribute equal_tables.
-
#missing_tables ⇒ Object
readonly
Returns the value of attribute missing_tables.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(current_dump, target_dump) ⇒ Diff
constructor
A new instance of Diff.
Constructor Details
#initialize(current_dump, target_dump) ⇒ Diff
Returns a new instance of Diff.
4 5 6 7 |
# File 'lib/mysql_inspector/diff.rb', line 4 def initialize(current_dump, target_dump) @current_dump = current_dump @target_dump = target_dump end |
Instance Attribute Details
#added_tables ⇒ Object (readonly)
Returns the value of attribute added_tables.
9 10 11 |
# File 'lib/mysql_inspector/diff.rb', line 9 def added_tables @added_tables end |
#different_tables ⇒ Object (readonly)
Returns the value of attribute different_tables.
12 13 14 |
# File 'lib/mysql_inspector/diff.rb', line 12 def different_tables @different_tables end |
#equal_tables ⇒ Object (readonly)
Returns the value of attribute equal_tables.
11 12 13 |
# File 'lib/mysql_inspector/diff.rb', line 11 def equal_tables @equal_tables end |
#missing_tables ⇒ Object (readonly)
Returns the value of attribute missing_tables.
10 11 12 |
# File 'lib/mysql_inspector/diff.rb', line 10 def missing_tables @missing_tables end |
Instance Method Details
#execute ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/mysql_inspector/diff.rb', line 14 def execute @added_tables = [] @missing_tables = [] @equal_tables = [] @different_tables = [] target_tables = Hash[*@target_dump.tables.map { |t| [t.table_name, t] }.flatten] current_tables = Hash[*@current_dump.tables.map { |t| [t.table_name, t] }.flatten] (target_tables.keys + current_tables.keys).uniq.each { |n| target = target_tables[n] current = current_tables[n] if target && current if target == current @equal_tables << target else @different_tables << TableDiff.new(target, current) end else @added_tables << target if target_tables.has_key?(n) @missing_tables << current if current_tables.has_key?(n) end } end |