alephant-logger-json 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c033444e5c7be5a97534bce107a08c279301e01
4
- data.tar.gz: 191119fd3d53a7be15706a68a45e141da55c5202
3
+ metadata.gz: 771869cbd5bcad995127e6ef602ec4ae3c1c6177
4
+ data.tar.gz: 4cd2f63c8aba00076408f9f42ecd33c6dc1a3b48
5
5
  SHA512:
6
- metadata.gz: 10d7ec2d6692efa3eae4f2800a13d1efa699fc6193fe7a86dfc25f1b91f43560671f197f013c098a5bff983da7f3d80916eaaac44029c3ea787747e4135bdf56
7
- data.tar.gz: 3a78b33b93b986511427c1dccec853af56c6939fbf0373c71681389c075dd84e29a535b5dccc63520333a6ef9bf0d76d0fafa88564339872390a92033022c3ea
6
+ metadata.gz: bb3f8e8dfaf453a946aff808903601b49881d199740b248db192bf4837a05b8fc47be1e290983baf7a01b91e896f2135b75416ccfd08c5c1cf0182cdc44957f0
7
+ data.tar.gz: 4c5853cde0064536adb6c03c080acd884470e2b9885c81ec293efd6939453d5ba04fcc58236afa149f2c9f726f43485caadd96f6f286df2abe5dda8f833afba5
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec", "~> 3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
24
  spec.add_development_dependency "rspec-nc"
25
25
  spec.add_development_dependency "rake-rspec"
26
+ spec.add_development_dependency "pry"
26
27
  end
@@ -1,7 +1,7 @@
1
1
  module Alephant
2
2
  module Logger
3
3
  class JSON
4
- VERSION = "0.2.1"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  end
7
7
  end
@@ -12,8 +12,10 @@ module Alephant
12
12
  [:debug, :info, :warn, :error].each do |level|
13
13
  define_method(level) do |hash|
14
14
  return if hash.is_a? String
15
+ @@session = -> { "n/a" } unless defined? @@session
15
16
  h = {
16
17
  :timestamp => Time.now.to_s,
18
+ :uuid => @@session.(),
17
19
  :level => level.to_s
18
20
  }.merge hash
19
21
  hash = flatten_values_to_s h unless @nesting
@@ -21,6 +23,14 @@ module Alephant
21
23
  end
22
24
  end
23
25
 
26
+ def self.session(fn)
27
+ @@session = fn
28
+ end
29
+
30
+ def self.session?
31
+ defined?(@@session)
32
+ end
33
+
24
34
  private
25
35
 
26
36
  def flatten_values_to_s(hash)
@@ -7,6 +7,7 @@ describe Alephant::Logger::JSON do
7
7
  described_class.new log_path
8
8
  end
9
9
 
10
+ let(:fn) { -> { "foo" } }
10
11
  let(:log_path) { "/log/path.log" }
11
12
  let(:log_file) { instance_double File }
12
13
 
@@ -24,7 +25,7 @@ describe Alephant::Logger::JSON do
24
25
  allow(Time).to receive(:now).and_return("foobar")
25
26
 
26
27
  expect(log_file).to receive(:write) do |json_dump|
27
- h = { "timestamp" => "foobar", "level" => level }
28
+ h = { "timestamp" => "foobar", "uuid" => "n/a", "level" => level }
28
29
  expect(JSON.parse json_dump).to eq h.merge log_hash
29
30
  end
30
31
 
@@ -48,6 +49,34 @@ describe Alephant::Logger::JSON do
48
49
 
49
50
  subject.send(level, log_hash)
50
51
  end
52
+
53
+ it "displays a default session value if a custom function is not provided" do
54
+ expect(log_file).to receive(:write) do |json_dump|
55
+ h = JSON.parse(json_dump)
56
+ expect(h["uuid"]).to eq "n/a"
57
+ end
58
+
59
+ subject.send(level, log_hash)
60
+ end
61
+
62
+ it "displays a custom session value when provided a user defined function" do
63
+ expect(log_file).to receive(:write) do |json_dump|
64
+ h = JSON.parse(json_dump)
65
+ expect(h["uuid"]).to eq "foo"
66
+ end
67
+
68
+ ::Alephant::Logger::JSON.session fn
69
+ subject.send(level, log_hash)
70
+ ::Alephant::Logger::JSON.session -> { "n/a" }
71
+ end
72
+
73
+ it "provides a static method for checking if a session has been set" do
74
+ ::Alephant::Logger::JSON.session fn
75
+ expect(::Alephant::Logger::JSON.session?).to eq "class variable"
76
+
77
+ ::Alephant::Logger::JSON.remove_class_variable :@@session
78
+ expect(::Alephant::Logger::JSON.session?).to eq nil
79
+ end
51
80
  end
52
81
 
53
82
  shared_context "nested log hash" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-logger-json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Arnould
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-15 00:00:00.000000000 Z
11
+ date: 2016-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,30 +28,30 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-nc
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: alephant-logger driver enabling structured logging in JSON
84
98
  email:
85
99
  - dan@arnould.co.uk