Module: Leda::Rake
Instance Method Summary collapse
- #create_runner(configuration) ⇒ Object
- #define_dump_task(configuration, outside_prerequisites, description, data_unit_name, store_name) ⇒ Object
- #define_restore_from_task(configuration, outside_prerequisites, description, data_unit_name, store_name) ⇒ Object
-
#define_tasks(configuration, outside_prerequisites = []) ⇒ Object
Defines aggregate and individual dump & restore tasks based on the given {Configuration}.
Instance Method Details
#create_runner(configuration) ⇒ Object
42 43 44 45 |
# File 'lib/leda/rake.rb', line 42 def create_runner(configuration) # TODO: externalize configuration ::Leda::Runner.new(Rails.env, configuration) end |
#define_dump_task(configuration, outside_prerequisites, description, data_unit_name, store_name) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/leda/rake.rb', line 47 def define_dump_task(configuration, outside_prerequisites, description, data_unit_name, store_name) task_name = [data_unit_name, store_name, 'dump'].compact.join(':') t = ::Rake::Task.define_task(task_name => outside_prerequisites) do create_runner(configuration).dump(data_unit_name, store_name) end t.add_description description end |
#define_restore_from_task(configuration, outside_prerequisites, description, data_unit_name, store_name) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/leda/rake.rb', line 56 def define_restore_from_task(configuration, outside_prerequisites, description, data_unit_name, store_name) task_name = [data_unit_name, store_name, 'restore_from'].compact.join(':') t = ::Rake::Task.define_task(task_name, [:source_env] => outside_prerequisites) do |t, args| source_env = args[:source_env] or fail "Please specify the source env name" create_runner(configuration).restore_from(source_env, data_unit_name, store_name) end t.add_description description end |
#define_tasks(configuration, outside_prerequisites = []) ⇒ Object
Defines aggregate and individual dump & restore tasks based on the given {Configuration}. In real life, you’ll probably want to call this from inside a ‘namespace` block:
# In Rakefile
namespace 'data' do
Leda::Rake.define_tasks(Leda.configuration, [:environment])
end
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/leda/rake.rb', line 17 def define_tasks(configuration, outside_prerequisites=[]) define_dump_task(configuration, outside_prerequisites, "Dump all Leda-configured data", nil, nil) define_restore_from_task(configuration, outside_prerequisites, "Restore all Leda-configured data from the specified env", nil, nil) configuration.data_units.each do |data_unit| define_dump_task(configuration, outside_prerequisites, "Dump all data for #{data_unit.name} from the current env", data_unit.name, nil) define_restore_from_task(configuration, outside_prerequisites, "Restore all data for #{data_unit.name} from the specified env into the current env", data_unit.name, nil) data_unit.stores.each do |store| define_dump_task(configuration, outside_prerequisites, "Dump all data from #{store.name} for #{data_unit.name} from the current env", data_unit.name, store.name) define_restore_from_task(configuration, outside_prerequisites, "Restore all data into #{store.name} for #{data_unit.name} from the specified env into the current env", data_unit.name, store.name) end end end |