module StructureSqlMergeDriver::MySQL
Constants
- RE_AUTO_INCREMENT_VALUE
- RE_DUMP_TIMESTAMP
- RE_VERSION
- RE_VERSIONS
Public Class Methods
match?(content)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 81 def match?(content) /^-- MySQL dump / === content end
merge!(*contents)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 85 def merge!(*contents) merge_dump_timestamps!(*contents) scrub_auto_increment_values!(*contents) merge_versions!(*contents) end
Private Class Methods
format_versions(versions)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 123 def format_versions(versions) versions.map { |version| "INSERT INTO schema_migrations (version) VALUES ('%s');\n\n" % version }.join end
merge_dump_timestamps!(*contents)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 93 def merge_dump_timestamps!(*contents) replacement = contents.inject('') { |timestamp, content| [timestamp, *content.scan(RE_DUMP_TIMESTAMP)].max rescue '' } unless replacement.empty? contents.each { |content| content.gsub!(RE_DUMP_TIMESTAMP, replacement) } end end
merge_versions!(*contents)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 111 def merge_versions!(*contents) replacement = format_versions( contents.inject([]) { |versions, content| versions | content.scan(RE_VERSION).flatten }.sort ) contents.each { |content| content.sub!(RE_VERSIONS, replacement) } end
scrub_auto_increment_values!(*contents)
click to toggle source
# File lib/git-merge-structure-sql.rb, line 105 def scrub_auto_increment_values!(*contents) contents.each { |content| content.gsub!(RE_AUTO_INCREMENT_VALUE, '') } end