Module: Treefell

Defined in:
lib/treefell.rb,
lib/treefell/color.rb,
lib/treefell/version.rb,
lib/treefell/debug_logger.rb,
lib/treefell/filters/env_filter.rb

Defined Under Namespace

Modules: Filters Classes: Color, DebugLogger

Constant Summary collapse

NAMESPACE_ENV_VAR_LOOKUP =
-> { ENV[Treefell.namespace_env_var] }
VERSION =
"0.3.1"

Class Method Summary collapse

Class Method Details

.[](namespace) ⇒ Object



47
48
49
# File 'lib/treefell.rb', line 47

def self.[](namespace)
  debug(namespace)
end

.debug(namespace = nil, io: nil, filter: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/treefell.rb', line 18

def self.debug(namespace=nil, io: nil, filter: nil)
  io ||= begin
    treefell_out = ENV['TREEFELL_OUT']
    if treefell_out
      @treefell_out_io ||= File.open(treefell_out, 'w+').tap do |io|
        io.sync = true
      end
    else
      $stdout
    end
  end
  filter ||= Filters::EnvFilter.new(value: NAMESPACE_ENV_VAR_LOOKUP)
  @debug_loggers ||= {}
  @debug_loggers[namespace] ||= DebugLogger.new(
    namespace: namespace,
    io: io,
    filter: filter
  )
end

.namespace_env_varObject



14
15
16
# File 'lib/treefell.rb', line 14

def self.namespace_env_var
  @namespace_env_var || Filters::EnvFilter::NAMESPACE_ENV_VAR_KEY
end

.namespace_env_var=(namespace_env_var) ⇒ Object



10
11
12
# File 'lib/treefell.rb', line 10

def self.namespace_env_var=(namespace_env_var)
  @namespace_env_var = namespace_env_var
end

.resetObject



38
39
40
41
42
43
44
45
# File 'lib/treefell.rb', line 38

def self.reset
  if @treefell_out_io
    @treefell_out_io.close unless @treefell_out_io.closed?
    @treefell_out_io = nil
  end
  @debug_loggers.clear if @debug_loggers
  @namespace_env_var = nil
end