class DynarexDaily

Public Class Methods

new(stringx=nil, dir_archive: :days, xslt: '', filename: 'dynarexdaily.xml', debug: false) click to toggle source
Calls superclass method
# File lib/dynarex-daily.rb, line 10
def initialize(stringx=nil, dir_archive: :days, xslt: '', 
               filename: 'dynarexdaily.xml', debug: false)
  
  @dir_archive = dir_archive

  @filename = filename
  @schema = 'entries[date]/entry(time, desc)'
  @default_key = 'uid'
  @debug = debug

  puts 'DynarexDaily::initialize stringx: ' + stringx.inspect  if @debug
  
  if stringx then
    s, type = RXFHelper.read(stringx)       
    @filename = stringx if type == :file or type == :dfs
  end
  
  puts 'DynarexDaily::initialize @filename: ' + @filename.inspect  if @debug
  
  if FileX.exists?(@filename) then
    
    super @filename
    
    if !summary[:date].empty? and \
        Date.parse(summary[:date]) != Date.today then
      
      archive_file Date.parse(summary[:date])
      create_file
    end  
    
  else
    puts 'before super: stringx: ' + stringx.inspect if @debug
    super( stringx || @schema , debug: debug)
    puts 'after super' if @debug
    @delimiter = ' # '      
    create_file
  end

  self.xslt = xslt if xslt
end

Public Instance Methods

create(h) click to toggle source
Calls superclass method
# File lib/dynarex-daily.rb, line 51
def create(h)
  
  if !summary[:date].empty? and \
      Date.parse(summary[:date]) != Date.today then
    
    archive_file Date.parse(summary[:date])
    create_file
  end      
  
  super(h)
end
save(filename=@filename, options={}) click to toggle source
Calls superclass method
# File lib/dynarex-daily.rb, line 64
def save(filename=@filename, options={})

  puts 'inside DynarexDaily::save() filename: ' + filename.inspect if @debug
  super(filename, options)

end
schema=(s) click to toggle source
Calls superclass method
# File lib/dynarex-daily.rb, line 71
def schema=(s)
  super(s.sub(/^\w+(?=\/)/,'\0[date]'))
  summary[:date] = Date.today.to_s
  summary[:order] = 'descending'    
end

Private Instance Methods

archive_file(t) click to toggle source
# File lib/dynarex-daily.rb, line 90
def archive_file(t)

  dir, file = if @dir_archive == :days then
    ['days', t.strftime("d%d%m%y.xml")]
  else
    [t.strftime("%Y/%b/%d").downcase, 'index.xml']
  end

  FileX.mkdir_p dir unless FileX.exist? dir
  FileX.mv(@filename, "%s/%s" % [dir, file])

end
create_file() click to toggle source
# File lib/dynarex-daily.rb, line 79
def create_file()
  
  puts 'inside DynarexDaily::create_file' if @debug   
  
  openx(@schema)
  summary[:date] = Date.today.to_s
  summary[:order] = 'descending'

  save
end