class Seisan::Task

Public Class Methods

install_tasks() click to toggle source
# File lib/seisan/task.rb, line 8
def self.install_tasks
  new.install
end

Public Instance Methods

install() click to toggle source
# File lib/seisan/task.rb, line 12
def install
  desc "Generate seisan report"
  task :seisan do
    src_dir, dest_dir = 'data', 'output'
    config = user_config.merge('target' => ENV['TARGET'])
    report(src_dir, dest_dir, config)
  end
  task :default => :seisan
end

Private Instance Methods

convert_target_to_file_name(target) click to toggle source
# File lib/seisan/task.rb, line 51
def convert_target_to_file_name(target)
  target.gsub('/', '-')
end
load_seisan_requests(src_dir, target) click to toggle source
# File lib/seisan/task.rb, line 44
def load_seisan_requests(src_dir, target)
  source = Gimlet::DataStore.new(File.join(src_dir, target))
  source.to_h.values
rescue Gimlet::DataStore::SourceNotFound
  []
end
report(src_dir, dest_dir, config) click to toggle source
# File lib/seisan/task.rb, line 23
def report(src_dir, dest_dir, config)
  if config['target'].nil?
    Seisan.logger.error "You must specify the 'TARGET'.\nExample:\n  % bundle exec rake TARGET=2013/07"
    exit
  end

  Seisan.logger.info 'Processing %s ...' % config['target']
  requests = load_seisan_requests(src_dir, config['target'])
  Seisan.logger.info 'Loaded %d files' % requests.size
  report = Seisan::Report.new(requests, config)

  dest_path = File.join(dest_dir, '%s.xlsx' % convert_target_to_file_name(config['target']))
  report.export(dest_path)
end
user_config() click to toggle source
# File lib/seisan/task.rb, line 38
def user_config
  Gimlet::DataStore.new('config.yaml').to_h
rescue Gimlet::DataStore::SourceNotFound
  {}
end