Class: Databasion::CronSystem

Inherits:
Object
  • Object
show all
Defined in:
lib/databasion/cron_system.rb

Constant Summary collapse

@@config =
nil

Class Method Summary collapse

Class Method Details

.configObject



18
19
20
21
# File 'lib/databasion/cron_system.rb', line 18

def self.config
  config?
  @@config
end

.config=(data) ⇒ Object



14
15
16
# File 'lib/databasion/cron_system.rb', line 14

def self.config=(data)
  @@config = data
end

.config?Boolean

Returns:

  • (Boolean)

Raises:



9
10
11
12
# File 'lib/databasion/cron_system.rb', line 9

def self.config?
  raise CronSystemError, 'CronSystem cannot load without a config.' unless defined?(@@config)
  true
end

.runObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/databasion/cron_system.rb', line 23

def self.run
  Databasion::GoogleLoader.config = @@config
  version = Databasion::GoogleLoader.run_version
  
  if File.exist?(@@config['cron']['version']['file'])
    old_version = File.open(@@config['cron']['version']['file']).readline.strip
    if version > old_version
      Databasion::LOGGER.info "Version changed, running databasion."
      system "cd %s && databasion %s" % [@@config['cron']['project_base'], @@config['cron']['options']]
      write_version(version)
    elsif version < old_version
      Databasion::LOGGER.info "Version rollback is currently not implemented."
    else
      Databasion::LOGGER.info "Version has not changed."
    end
  else
    Databasion::LOGGER.info "CronSystem running for the first time."
    system "cd %s && databasion %s" % [@@config['cron']['project_base'], @@config['cron']['options']]
    write_version(version)
  end
end

.write_version(version) ⇒ Object



45
46
47
48
49
# File 'lib/databasion/cron_system.rb', line 45

def self.write_version(version)
  File.open(@@config['cron']['version']['file'], 'w') do |file|
    file.write version
  end
end