Class: Onoma::Migrator

Inherits:
Object
  • Object
show all
Defined in:
lib/onoma/migration.rb

Overview

Migrator is a tool class to launch migrations

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database_path, migrations_path) ⇒ Migrator

Returns a new instance of Migrator.



89
90
91
92
# File 'lib/onoma/migration.rb', line 89

def initialize(database_path, migrations_path)
  @database_path = database_path
  @migrations_path = migrations_path
end

Instance Attribute Details

#database_pathObject

Returns the value of attribute database_path.



87
88
89
# File 'lib/onoma/migration.rb', line 87

def database_path
  @database_path
end

#migrations_pathObject

Returns the value of attribute migrations_path.



87
88
89
# File 'lib/onoma/migration.rb', line 87

def migrations_path
  @migrations_path
end

Class Method Details

.migrateObject



82
83
84
# File 'lib/onoma/migration.rb', line 82

def migrate
  Onoma::Migrator.new(Onoma.reference_path, Onoma.migrations_path).migrate
end

Instance Method Details

#connectionObject



116
117
118
# File 'lib/onoma/migration.rb', line 116

def connection
  @connection ||= Database.open(@database_path)
end

#migrateObject



109
110
111
112
113
114
# File 'lib/onoma/migration.rb', line 109

def migrate
  missing_migrations.each do |migration|
    migration.migrate(connection)
  end
  connection.write
end

#migrationsObject

Returns list of Onoma::Migration



95
96
97
98
99
# File 'lib/onoma/migration.rb', line 95

def migrations
  Dir.glob(@migrations_path.join('*.xml')).sort.collect do |f|
    Onoma::Migration.parse(Pathname.new(f))
  end
end

#missing_migrationsObject

Returns list of migrations since last done



102
103
104
105
106
107
# File 'lib/onoma/migration.rb', line 102

def missing_migrations
  last_version = connection.version
  migrations.select do |m|
    m.number > last_version
  end
end