lib/Stub/Logger.js   A
last analyzed

Complexity

Total Complexity 5
Complexity/F 1.67

Size

Lines of Code 31
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
c 1
b 0
f 0
nc 1
dl 0
loc 31
rs 10
wmc 5
mnd 1
bc 4
fnc 3
bpm 1.3333
cpm 1.6666
noi 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A settings.handlers.write 0 3 1
A settings.onFlush 0 11 3
1
var Factory = require('./Factory').Factory
2
3
var settings = {
4
  defaults: {
5
    allure: {
6
      filename: 'voxengine.log',
7
      mimeType: 'text/plain'
8
    }
9
  },
10
  state: {messages: []},
11
  handlers: {
12
    write: function (self, message) {
13
      self._state.messages.push({timestamp: new Date(), message: message})
14
    }
15
  },
16
  onFlush: function (self) {
17
    var allure = self._settings.allure
18
    if (!allure.enabled || !global.allure) {
19
      return
20
    }
21
    var lines = self._state.messages.map(function (entry) {
22
      return entry.timestamp.toISOString() + ': ' + entry.message
23
    })
24
    var content = lines.join('\r\n')
25
    global.allure.createAttachment(allure.filename, content, allure.mimeType)
26
  }
27
}
28
29
module.exports = {
30
  Logger: Factory.create('Logger', settings)
31
}
32