Class: Earth::Tasks

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/earth/tasks.rb

Instance Method Summary collapse

Constructor Details

#initializeTasks

Returns a new instance of Tasks.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/earth/tasks.rb', line 9

def initialize
  init_earth_tasks
  init_bare unless rails?

  namespace :db do
    unless rails?
      task :create => 'earth:db:create'
      task :drop => 'earth:db:drop'
    end
    task :migrate do
      Rake::Task['earth:db:migrate'].invoke
    end
    task :seed do
      Rake::Task['earth:db:seed'].invoke
    end
  end
end

Instance Method Details

#configObject



50
51
52
53
54
# File 'lib/earth/tasks.rb', line 50

def config
  spec = ENV['DATABASE_URL']
  resolver = ActiveRecord::Base::ConnectionSpecification::Resolver.new spec, {}
  resolver.spec.config.stringify_keys
end

#init_bareObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/earth/tasks.rb', line 32

def init_bare
  Object.const_set 'Rails', Earth
  Earth.module_eval do
    def self.logger
      @logger ||= Logger.new(STDOUT)
    end
  end

  require 'active_record'
  load 'active_record/railties/databases.rake'

  Rake::Task['db:load_config'].clear
  Rake::Task['db:create'].clear
  Rake::Task['db:drop'].clear
  Rake::Task['db:migrate'].clear
  Rake::Task['db:seed'].clear
end

#init_earth_tasksObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/earth/tasks.rb', line 56

def init_earth_tasks
  namespace :earth do
    namespace :db do
      task :create do
        create_database(config)
      end
      task :drop do
        drop_database_and_rescue(config)
      end
      task :load_config do
        if rails?
          Rake::Task['db:load_config'].invoke
        else
          Earth.connect
        end
      end
      task :migrate => :load_config do
        DataMiner::Run.auto_upgrade!
        Earth.reset_schemas!
      end
      task :seed => :load_config do
        require 'falls_back_on'

        FallsBackOn.clear if CacheMethod.config.generational?
        Earth.run_data_miner!
      end
    end
  end
end

#rails?Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/earth/tasks.rb', line 27

def rails?
  return @rails unless @rails.nil?
  @rails = Object.const_defined?('Rails')
end