class Adder
Public Class Methods
add(options)
click to toggle source
# File lib/adder.rb, line 36 def self::add(options) @log.debug('options are ' << options.to_s) if options.file @@events_file = options.file @@events_backup = File.dirname(@@events_file) << File::Separator << 'bak_' << File.basename(@@events_file) else @log.error('To add events, you must name a file on the command-line. Aborting') exit false end if(!options.event || !options.year) @log.error("To add events, you must provide them on the command-line.\n\tPSE start the program with option -h or --help to see an option-overview.") exit false end @@log.level = $LOG_LEVEL if $LOG_LEVEL fields = [:event, :year, :background] @log.debug('options are ' << options.to_s) if options[:event] && options[:year] if !options[:background] @log.warn('Optional background information is missing') bg = '' else bg = options.background end ev_def = "$events << [\"" << options.event << "\", " << options.year << ", \"" << bg << "\"]" @log.debug('writing events-backup to ' << @@events_backup) File.open(@@events_backup, 'w+') {|bak| bak.write( File.read(@@events_file))} @log.debug('adding new event to the list: ' << ev_def) File.open(@@events_file, 'a') {|evf| evf.puts(ev_def)} @log.info('A new event has been added to ' << @@events_file << '.') else opts = options.to_h.keys @log.error('Option missing: ' << fields.each {|f| opts.delete(f) }.join(', ')) exit false end end