Class: Migflow::Services::MigrationDslScanner
- Inherits:
-
Object
- Object
- Migflow::Services::MigrationDslScanner
- Defined in:
- lib/migflow/services/migration_dsl_scanner.rb
Constant Summary collapse
- BLOCK_NON_COLUMNS =
%w[ column index timestamps remove remove_columns rename change change_default change_null remove_references remove_timestamps remove_index rename_index check_constraint remove_check_constraint ].freeze
Instance Method Summary collapse
- #add_check_constraints ⇒ Object
- #add_columns ⇒ Object
- #add_foreign_keys ⇒ Object
- #add_indexes ⇒ Object
- #add_references ⇒ Object
- #block_add_check_constraints(block) ⇒ Object
- #block_add_indexes(block) ⇒ Object
- #block_change_defaults(block) ⇒ Object
- #block_change_nulls(block) ⇒ Object
- #block_column_definitions(block) ⇒ Object
- #block_has_timestamps?(block) ⇒ Boolean
- #block_remove_check_constraints(block) ⇒ Object
- #block_remove_columns(block) ⇒ Object
- #block_remove_columns_plural(block) ⇒ Object
- #block_remove_indexes(block) ⇒ Object
- #block_remove_references(block) ⇒ Object
- #block_rename_indexes(block) ⇒ Object
- #change_column_comments ⇒ Object
- #change_column_defaults ⇒ Object
- #change_column_nulls ⇒ Object
- #change_columns ⇒ Object
- #change_table_blocks ⇒ Object
- #create_table_blocks ⇒ Object
- #drop_tables ⇒ Object
-
#initialize(content) ⇒ MigrationDslScanner
constructor
A new instance of MigrationDslScanner.
- #remove_check_constraints ⇒ Object
- #remove_column ⇒ Object
- #remove_columns ⇒ Object
- #remove_foreign_keys ⇒ Object
- #remove_indexes ⇒ Object
- #remove_references ⇒ Object
- #rename_columns ⇒ Object
- #rename_indexes ⇒ Object
- #rename_tables ⇒ Object
Constructor Details
#initialize(content) ⇒ MigrationDslScanner
Returns a new instance of MigrationDslScanner.
12 13 14 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 12 def initialize(content) @content = content end |
Instance Method Details
#add_check_constraints ⇒ Object
92 93 94 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 92 def add_check_constraints @content.scan(/add_check_constraint\s+[:"'](\w+)[:"']?,\s*["'](.+?)["']([^\n]*)/) end |
#add_columns ⇒ Object
28 29 30 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 28 def add_columns @content.scan(/add_column\s*\(?\s*[:"'](\w+)[:"']?\s*,\s*[:"'](\w+)[:"']?\s*,\s*[:"'](\w+)([^\n]*)/) end |
#add_foreign_keys ⇒ Object
84 85 86 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 84 def add_foreign_keys @content.scan(/add_foreign_key\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?([^\n]*)/) end |
#add_indexes ⇒ Object
76 77 78 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 76 def add_indexes @content.scan(/add_index\s+[:"'](\w+)[:"']?,\s*(\[.*?\]|[:"']\w+[:"']?)([^\n]*)/) end |
#add_references ⇒ Object
40 41 42 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 40 def add_references @content.scan(/add_(?:reference|belongs_to)\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?([^\n]*)/) end |
#block_add_check_constraints(block) ⇒ Object
152 153 154 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 152 def block_add_check_constraints(block) block.scan(/t\.check_constraint\s+["'](.+?)["']([^\n]*)/) end |
#block_add_indexes(block) ⇒ Object
120 121 122 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 120 def block_add_indexes(block) block.scan(/t\.index\s+(\[.*?\]|[:"']\w+[:"']?)([^\n]*)/) end |
#block_change_defaults(block) ⇒ Object
140 141 142 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 140 def block_change_defaults(block) block.scan(/t\.change_default\s+[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#block_change_nulls(block) ⇒ Object
144 145 146 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 144 def block_change_nulls(block) block.scan(/t\.change_null\s+[:"'](\w+)[:"']?,\s*(true|false)(?:,\s*([^\n]+))?/) end |
#block_column_definitions(block) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 100 def block_column_definitions(block) definitions = [] block.scan(/t\.column\s+[:"'](\w+)[:"']?,\s*:?(?:["'])?(\w+)(?:["'])?([^\n]*)/) do |name, type, opts| definitions << [:column, name, type, opts] end block.scan(/t\.(\w+)\s+[:"'](\w+)[:"']?([^\n]*)/) do |type, name, opts| next if BLOCK_NON_COLUMNS.include?(type) definitions << [type, name, opts] end definitions end |
#block_has_timestamps?(block) ⇒ Boolean
116 117 118 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 116 def (block) block.match?(/t\.timestamps/) end |
#block_remove_check_constraints(block) ⇒ Object
156 157 158 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 156 def block_remove_check_constraints(block) block.scan(/t\.remove_check_constraint\s+([^\n]+)/).flatten end |
#block_remove_columns(block) ⇒ Object
128 129 130 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 128 def block_remove_columns(block) block.scan(/t\.remove\s+[:"'](\w+)/).flatten end |
#block_remove_columns_plural(block) ⇒ Object
132 133 134 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 132 def block_remove_columns_plural(block) block.scan(/t\.remove_columns\s+([^\n]+)/).flatten end |
#block_remove_indexes(block) ⇒ Object
124 125 126 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 124 def block_remove_indexes(block) block.scan(/t\.remove_index\s+([^\n]+)/).flatten end |
#block_remove_references(block) ⇒ Object
136 137 138 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 136 def block_remove_references(block) block.scan(/t\.remove_(?:reference|references|belongs_to)\s+[:"'](\w+)[:"']?([^\n]*)/) end |
#block_rename_indexes(block) ⇒ Object
148 149 150 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 148 def block_rename_indexes(block) block.scan(/t\.rename_index\s+([:"']\w+[:"']?),\s*([:"']\w+[:"']?)/) end |
#change_column_comments ⇒ Object
72 73 74 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 72 def change_column_comments @content.scan(/change_column_comment\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#change_column_defaults ⇒ Object
64 65 66 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 64 def change_column_defaults @content.scan(/change_column_default\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#change_column_nulls ⇒ Object
68 69 70 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 68 def change_column_nulls @content.scan(/change_column_null\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?,\s*(true|false)(?:,\s*([^\n]+))?/) end |
#change_columns ⇒ Object
60 61 62 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 60 def change_columns @content.scan(/change_column\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?,\s*[:"'](\w+)/) end |
#change_table_blocks ⇒ Object
20 21 22 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 20 def change_table_blocks @content.scan(/change_table\s+[:"'](\w+)[:"']?[^\n]*\n(.*?)\n\s*end\b/m) end |
#create_table_blocks ⇒ Object
16 17 18 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 16 def create_table_blocks @content.scan(/create_table\s+[:"'](\w+)[:"']?[^\n]*\n(.*?)\n\s*end\b/m) end |
#drop_tables ⇒ Object
24 25 26 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 24 def drop_tables @content.scan(/drop_table\s+[:"'](\w+)/).flatten end |
#remove_check_constraints ⇒ Object
96 97 98 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 96 def remove_check_constraints @content.scan(/remove_check_constraint\s+[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#remove_column ⇒ Object
32 33 34 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 32 def remove_column @content.scan(/remove_column\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)/) end |
#remove_columns ⇒ Object
36 37 38 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 36 def remove_columns @content.scan(/remove_columns\s+[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#remove_foreign_keys ⇒ Object
88 89 90 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 88 def remove_foreign_keys @content.scan(/remove_foreign_key\s+[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#remove_indexes ⇒ Object
80 81 82 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 80 def remove_indexes @content.scan(/remove_index\s+[:"'](\w+)[:"']?,\s*([^\n]+)/) end |
#remove_references ⇒ Object
44 45 46 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 44 def remove_references @content.scan(/remove_(?:reference|references|belongs_to)\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?([^\n]*)/) end |
#rename_columns ⇒ Object
48 49 50 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 48 def rename_columns @content.scan(/rename_column\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)[:"']?,\s*[:"'](\w+)/) end |
#rename_indexes ⇒ Object
56 57 58 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 56 def rename_indexes @content.scan(/rename_index\s+[:"'](\w+)[:"']?,\s*([:"']\w+[:"']?),\s*([:"']\w+[:"']?)/) end |
#rename_tables ⇒ Object
52 53 54 |
# File 'lib/migflow/services/migration_dsl_scanner.rb', line 52 def rename_tables @content.scan(/rename_table\s+[:"'](\w+)[:"']?,\s*[:"'](\w+)/) end |