Module: Migrake::DSL
- Defined in:
- lib/migrake/dsl.rb
Instance Method Summary collapse
-
#migrake(tasks) ⇒ Object
Public: Define the rake tasks required to run migrake.
Instance Method Details
#migrake(tasks) ⇒ Object
Public: Define the rake tasks required to run migrake. This defines the following tasks:
- A task to create the `Migrake.status_file_directory` unless it exists.
- A task to create the MIGRAKE_STATUS file in the aforementioned
directory, unless it exists.
- A `migrake:ready` task to bootstrap new environments by writing all
the tasks to the store.
- The `migrake` task, that will run any tasks not run before.
tasks - A Set of tasks to be run.
Returns the ‘migrake` Rake::Task.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/migrake/dsl.rb', line 18 def migrake(tasks) dir = Migrake.status_file_directory status_file = dir.join("MIGRAKE_STATUS") namespace :migrake do directory dir.to_s file status_file.to_s => dir.to_s do touch status_file end task :run_tasks => status_file.to_s do Migrake::Runner.run(tasks, Migrake::Store.new(status_file)) end desc "Tell migrake that all defined tasks have already been run" task :ready => status_file.to_s do Migrake::Store.new(status_file).write(tasks) end end desc "Run the tasks defined by migrake" task migrake: "migrake:run_tasks" end |