Class: Repla::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/repla/logger.rb

Overview

Logger

Constant Summary collapse

MESSAGE_PREFIX =
'MESSAGE '.freeze
ERROR_PREFIX =
'ERROR '.freeze
LOG_PLUGIN_NAME =
'Log'.freeze
SHOW_LOG_SCRIPT =

Toggle

File.join(APPLESCRIPT_DIRECTORY, 'show_log.scpt')
HIDE_LOG_SCRIPT =
File.join(APPLESCRIPT_DIRECTORY, 'hide_log.scpt')
TOGGLE_LOG_SCRIPT =
File.join(APPLESCRIPT_DIRECTORY, 'toggle_log.scpt')

Instance Method Summary collapse

Constructor Details

#initializeLogger

Returns a new instance of Logger.



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

def initialize
  @mutex = Mutex.new
end

Instance Method Details

#error(message) ⇒ Object



40
41
42
43
44
# File 'lib/repla/logger.rb', line 40

def error(message)
  message = message.dup
  message.gsub!(/^/, ERROR_PREFIX)
  log_message(message)
end

#hideObject



21
22
23
# File 'lib/repla/logger.rb', line 21

def hide
  Repla.run_applescript(HIDE_LOG_SCRIPT, [window_id])
end

#info(message) ⇒ Object

Messages



32
33
34
35
36
37
38
# File 'lib/repla/logger.rb', line 32

def info(message)
  message = message.dup
  message.gsub!(/^/, MESSAGE_PREFIX) # Prefix all lines
  # Strip trailing white space
  # Add a line break
  log_message(message)
end

#showObject



16
17
18
# File 'lib/repla/logger.rb', line 16

def show
  Repla.run_applescript(SHOW_LOG_SCRIPT, [window_id])
end

#toggleObject



26
27
28
# File 'lib/repla/logger.rb', line 26

def toggle
  Repla.run_applescript(TOGGLE_LOG_SCRIPT, [window_id])
end

#view_idObject



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/repla/logger.rb', line 53

def view_id
  view_id = nil
  @mutex.synchronize do
    @view_id ||= Repla.split_id_in_window(window_id, LOG_PLUGIN_NAME)
    return @view_id unless @view_id.nil?

    @view_id = Repla.split_id_in_window_last(window_id)
    Repla.run_plugin_in_split(LOG_PLUGIN_NAME, window_id, @view_id)
    view_id = @view_id
  end
  view_id
end

#window_idObject

Properties



48
49
50
51
# File 'lib/repla/logger.rb', line 48

def window_id
  key = WINDOW_ID_KEY
  @window_id ||= ENV.key?(key) ? ENV[key] : Repla.create_window
end