Module: Seedbank::DSL
- Defined in:
- lib/seedbank/dsl.rb
Instance Method Summary collapse
-
#define_seed_task(seed_file) ⇒ Object
Creates a task namespaced in @seeds_path.
- #override_task(*args, &block) ⇒ Object
- #seeds_root ⇒ Object
Instance Method Details
#define_seed_task(seed_file) ⇒ Object
Creates a task namespaced in @seeds_path
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/seedbank/dsl.rb', line 13 def define_seed_task(seed_file) relative_root = seed_file.sub(seeds_root + '/', '') scopes = File.dirname(relative_root).gsub(/^\./, '').split('/').unshift('seed') fq_name = scopes.push(File.basename(seed_file, '.seeds.rb')).join(':') args = { fq_name => 'db:abort_if_pending_migrations' } task = Rake::Task.define_task(args) { load(seed_file) if File.exist?(seed_file) } task.add_description "Load the seed data from #{seed_file}" fq_name end |
#override_task(*args, &block) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/seedbank/dsl.rb', line 4 def override_task(*args, &block) name, params, deps = Rake.application.resolve_args(args.dup) fq_name = Rake.application.instance_variable_get(:@scope).dup.push(name).join(':') new_name = "#{fq_name}:original" Rake::Task.rename_task(fq_name, new_name) Rake::Task.define_task(*args, &block) end |
#seeds_root ⇒ Object
24 25 26 |
# File 'lib/seedbank/dsl.rb', line 24 def seeds_root Seedbank.seeds_root end |