Module: Seedbank::DSL

Defined in:
lib/seedbank/dsl.rb

Instance Method Summary collapse

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_rootObject



24
25
26
# File 'lib/seedbank/dsl.rb', line 24

def seeds_root
  Seedbank.seeds_root
end