Class: LogMagic

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

Defined Under Namespace

Modules: JSONUtils, TemplatingUtils Classes: LogListener, PersistanceLayer, SearchkickExplainer, SearchkickPrinter, SearchkickRefiner

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(log_file_name) ⇒ LogMagic

Returns a new instance of LogMagic.



6
7
8
9
10
11
# File 'lib/log_magic.rb', line 6

def initialize(log_file_name)
  @log_file_name = log_file_name
  @refiners = []
  @persistance_layer = PersistanceLayer.new
  add_searchkick_refiner
end

Instance Attribute Details

#persistance_layerObject (readonly)

Returns the value of attribute persistance_layer.



4
5
6
# File 'lib/log_magic.rb', line 4

def persistance_layer
  @persistance_layer
end

Instance Method Details

#add_line_to_refiners(line) ⇒ Object



30
31
32
33
34
# File 'lib/log_magic.rb', line 30

def add_line_to_refiners(line)
  @refiners.each do |refiner|
    refiner.lines << line
  end
end

#add_searchkick_refinerObject



44
45
46
# File 'lib/log_magic.rb', line 44

def add_searchkick_refiner
  @refiners << SearchkickRefiner.new
end

#check_for_refiner_matchObject



36
37
38
39
40
41
42
# File 'lib/log_magic.rb', line 36

def check_for_refiner_match
  @refiners.any? do |refiner|
    if refiner.matches?
      yield refiner
    end
  end
end

#database_nameObject



13
14
15
# File 'lib/log_magic.rb', line 13

def database_name
  @persistance_layer.database_name
end

#initialize_listenerObject



17
18
19
# File 'lib/log_magic.rb', line 17

def initialize_listener
  @log_listener = LogListener.new(@log_file_name)
end

#startObject



21
22
23
24
25
26
27
28
# File 'lib/log_magic.rb', line 21

def start
  @log_listener.listen do |line|
    add_line_to_refiners(line)
    check_for_refiner_match do |refiner|
      puts refiner.compute(persistance_layer)
    end
  end
end