class Adder

Public Class Methods

new(lang = 'de', sipl = 'singular', beginning, ending) click to toggle source

Initialize with a language code and specify singular or plural. Devide the proverb into “beginning” and “ending”, mind the quotes!

# File lib/adder.rb, line 35
def initialize(lang = 'de', sipl = 'singular', beginning, ending)
  @log = @@log

  details = ask_details
  @log.debug('lang ' << @language)
  @log.debug('sipl ' << @sipl)
  @log.debug('beginning ' << @beginning)
  @log.debug('ending ' << @ending)
  listfile = trl('list') << '_' << @language 
  @log.debug('listfile is ' << listfile) 
  confdir = ENV['HOME'].dup << File::Separator << ".proverbs" 
  user_list = confdir.dup << File::Separator << listfile
  listrb = user_list.dup << '.rb'
  if File::exist?(listrb) && File.readable?(listrb)
    require user_list
  else
    require_relative listfile
  end
  new_proverb = [@beginning, @ending]

  case @sipl.downcase
  when trl('s')
    $proverbs1.push new_proverb

  when trl('p')
    $proverbs0.push new_proverb
  else
    puts red(trl("Cannot add the proverb, invalid argument") << ' ' << bold("#{sipl}") )
    exit false
  end

  if !File.exist?(confdir)
    Dir.mkdir(confdir)
  end
  File.rename(listrb, user_list.dup << '_bak.rb') if(File.exist?(listrb) )
  File.open( listrb,'w') do |lfile|
    lfile.puts "$proverbs0=" << $proverbs0.uniq.to_s
    lfile.puts
    lfile.puts "$proverbs1=" << $proverbs1.uniq.to_s
  end
  puts green(trl("List %s has been updated") %listrb )
end

Private Instance Methods

ask_details() click to toggle source
# File lib/adder.rb, line 80
def ask_details
  @language = Readline.readline( trl("Language") << " (de, en): ")
  @sipl = Readline.readline("\n" << trl("Singular or plural (s, p)") << (": ") )
  @beginning = Readline.readline( "\n" << trl("Beginning of the proverb") << ": " )
  @ending = Readline.readline( "\n" << trl("Ending of the proverb") << ": " )
end