Sha256: 9961064f32dbd3b629cef0b770aa6712fea4502d1c6e6c87a31b2b53d519da61

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

LEXT = ".lt3"

  def stale?(src, dst, force = false)
    log!(enter: __method__, args: [src, dst], level: 3)
    raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
    return true if force
    return true unless File.exist?(dst)
    return true if File.mtime(src) > File.mtime(dst)
    return false
  end

  def xlate(cwd: Dir.pwd, src:, 
            dst: (strip = true; src.sub(/.lt3$/,"")), 
            copy: nil, debug: false, force: false)
    src += LEXT unless src.end_with?(LEXT)
    dst += ".html" unless dst.end_with?(".html") || strip
    indent = " "*12
    Dir.chdir(cwd) do
      if debug
        STDERR.puts "#{indent} -- xlate #{src} >#{dst}"
        STDERR.puts "#{indent}      in:   #{Dir.pwd}"
        STDERR.puts "#{indent}      from: #{caller[0]}"
        STDERR.puts "#{indent}      copy: #{copy}" if copy
      end
      if stale?(src, dst, force)
        # do nothing
      else
        STDERR.puts "#{indent} -- ^ Already up to date!" if debug
        return
      end
      rc = system("livetext #{src} >#{dst}")
      STDERR.puts "...completed (shell returned #{rc})" if debug
      system!("cp #{dst} #{copy}") if copy
    end
  end

  def xlate!(cwd: Dir.pwd, src:, copy: nil, debug: false, force: false)
    output = "/tmp/xlate-#{File.basename(src).sub(/.lt3$/, "")}"
    xlate cwd: cwd, src: src, dst: output, debug: debug, force: force
    File.read(output + ".html")  # return all content as string
  end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
runeblog-0.2.46 lib/xlate.rb
runeblog-0.2.45 lib/xlate.rb
runeblog-0.2.44 lib/xlate.rb