Sha256: ec975ef43ba264793996d63d8693859dfce6f522614d4ef3de78ec2fee9b1d89

Contents?: true

Size: 866 Bytes

Versions: 5

Compression:

Stored size: 866 Bytes

Contents

require 'tmpdir'
require 'fileutils'

class TraceTree
  class TmpFile

    DefaultName = 'trace_tree.html'

    def initialize path
      path = recognize_dir path
      @tmp = custom path
    end

    def puts *content
      File.open @tmp, 'a' do |f|
        f.puts *content
      end
    end

    def path
      @tmp
    end

    private

    def recognize_dir path
      case path
      when true
        DefaultName
      when String
        path.split '/'
      else
        path
      end
    end

    def custom path
      path = Array(path).map(&:to_s)
      path[-1] = time + path[-1]
      path = [Dir.tmpdir] + path
      ensure_parent path
      File.join *path
    end

    def time
      Time.now.strftime '%Y%m%d_%H%M%S_%L_'
    end

    def ensure_parent path_arr
      dir = path_arr[0..-2]
      FileUtils.mkdir_p File.join *dir
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
trace_tree-0.2.12 lib/trace_tree/tmp_file.rb
trace_tree-0.2.11 lib/trace_tree/tmp_file.rb
trace_tree-0.2.10 lib/trace_tree/tmp_file.rb
trace_tree-0.2.9 lib/trace_tree/tmp_file.rb
trace_tree-0.2.8 lib/trace_tree/tmp_file.rb