rf_logger 0.0.4 → 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.
Files changed (38) hide show
  1. checksums.yaml +5 -13
  2. data/.rspec +1 -1
  3. data/.travis.yml +3 -0
  4. data/README.md +99 -2
  5. data/lib/rf_logger/active_record/logger.rb +35 -0
  6. data/lib/rf_logger/active_record.rb +1 -0
  7. data/lib/rf_logger/configuration.rb +1 -1
  8. data/lib/rf_logger/notifications/error_notification_environment_constraints.rb +2 -1
  9. data/lib/rf_logger/rails/initialize_request_middleware.rb +9 -0
  10. data/lib/rf_logger/rails/key_value_tagged_logging.rb +58 -0
  11. data/lib/rf_logger/rails/rails_compatibility.rb +33 -0
  12. data/lib/rf_logger/rails.rb +5 -0
  13. data/lib/rf_logger/request/request_headers.rb +34 -0
  14. data/lib/rf_logger/request/request_middleware.rb +30 -0
  15. data/lib/rf_logger/request/request_tags.rb +9 -0
  16. data/lib/rf_logger/rory/initialize_request_middleware.rb +7 -0
  17. data/lib/rf_logger/rory.rb +2 -0
  18. data/lib/rf_logger/sequel/base.rb +46 -0
  19. data/lib/rf_logger/sequel/logger.rb +53 -0
  20. data/lib/rf_logger/sequel.rb +2 -0
  21. data/lib/rf_logger/version.rb +1 -1
  22. data/lib/rf_logger.rb +13 -42
  23. data/rf_logger.gemspec +5 -5
  24. data/spec/lib/rf_logger/active_record/logger_spec.rb +49 -0
  25. data/spec/lib/rf_logger/configuration_spec.rb +19 -14
  26. data/spec/lib/rf_logger/log_for_notification_spec.rb +3 -3
  27. data/spec/lib/rf_logger/notifications/error_notification_environment_constraints_spec.rb +26 -12
  28. data/spec/lib/rf_logger/notifications/error_notification_spec.rb +9 -9
  29. data/spec/lib/rf_logger/rails/rails_compatibility_spec.rb +42 -0
  30. data/spec/lib/rf_logger/request/request_headers_spec.rb +83 -0
  31. data/spec/lib/rf_logger/request/request_middleware_spec.rb +35 -0
  32. data/spec/lib/rf_logger/{sequel_logger_spec.rb → sequel/logger_spec.rb} +46 -16
  33. data/spec/lib/rf_logger/simple_logger_spec.rb +8 -8
  34. data/spec/lib/rf_logger_spec.rb +8 -6
  35. data/spec/spec_helper.rb +2 -1
  36. data/spec/support/request_id_shared_examples.rb +21 -0
  37. metadata +63 -37
  38. data/lib/rf_logger/sequel_logger.rb +0 -41
@@ -0,0 +1,21 @@
1
+ RSpec.shared_context "RfLogger::RequestId" do |subject:|
2
+ describe "#rf_logger_request_tags" do
3
+ before {allow(subject).to receive(:rf_logger_request_tags).and_call_original}
4
+ context "When thread var inheritable_attributes is nil" do
5
+ before { Thread.current[:inheritable_attributes] = nil }
6
+ it { expect(subject.rf_logger_request_tags).to eq(nil) }
7
+ end
8
+
9
+ context "when thread var inheritable_attributes is empty hash" do
10
+ before { Thread.current[:inheritable_attributes] = {} }
11
+ it { expect(subject.rf_logger_request_tags).to eq(nil) }
12
+ end
13
+
14
+ context "when thread var inheritable_attributes has key rf_logger_request_tags" do
15
+ before { Thread.current[:inheritable_attributes] = { rf_logger_request_tags: { hello: "goodbye" } } }
16
+ it { expect(subject.rf_logger_request_tags).to eq({ hello: "goodbye" }) }
17
+ end
18
+
19
+ before { Thread.current[:inheritable_attributes] = nil }
20
+ end
21
+ end
metadata CHANGED
@@ -1,9 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rf_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Dustin Zeisler
7
8
  - Dave Miller
8
9
  - Laurie Kemmerer
9
10
  - Maher Hawash
@@ -14,101 +15,101 @@ cert_chain: []
14
15
  date: 2014-02-20 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
- name: bundler
18
+ name: thread-inheritable_attributes
18
19
  requirement: !ruby/object:Gem::Requirement
19
20
  requirements:
20
- - - ~>
21
+ - - "~>"
21
22
  - !ruby/object:Gem::Version
22
- version: '1.3'
23
- type: :development
23
+ version: '0.1'
24
+ type: :runtime
24
25
  prerelease: false
25
26
  version_requirements: !ruby/object:Gem::Requirement
26
27
  requirements:
27
- - - ~>
28
+ - - "~>"
28
29
  - !ruby/object:Gem::Version
29
- version: '1.3'
30
+ version: '0.1'
30
31
  - !ruby/object:Gem::Dependency
31
- name: rake
32
+ name: bundler
32
33
  requirement: !ruby/object:Gem::Requirement
33
34
  requirements:
34
- - - ! '>='
35
+ - - "~>"
35
36
  - !ruby/object:Gem::Version
36
- version: '0'
37
+ version: '1.3'
37
38
  type: :development
38
39
  prerelease: false
39
40
  version_requirements: !ruby/object:Gem::Requirement
40
41
  requirements:
41
- - - ! '>='
42
+ - - "~>"
42
43
  - !ruby/object:Gem::Version
43
- version: '0'
44
+ version: '1.3'
44
45
  - !ruby/object:Gem::Dependency
45
- name: rspec
46
+ name: rake
46
47
  requirement: !ruby/object:Gem::Requirement
47
48
  requirements:
48
- - - ! '>='
49
+ - - ">="
49
50
  - !ruby/object:Gem::Version
50
51
  version: '0'
51
52
  type: :development
52
53
  prerelease: false
53
54
  version_requirements: !ruby/object:Gem::Requirement
54
55
  requirements:
55
- - - ! '>='
56
+ - - ">="
56
57
  - !ruby/object:Gem::Version
57
58
  version: '0'
58
59
  - !ruby/object:Gem::Dependency
59
- name: watchr
60
+ name: rspec
60
61
  requirement: !ruby/object:Gem::Requirement
61
62
  requirements:
62
- - - ! '>='
63
+ - - "~>"
63
64
  - !ruby/object:Gem::Version
64
- version: '0'
65
+ version: '3.4'
65
66
  type: :development
66
67
  prerelease: false
67
68
  version_requirements: !ruby/object:Gem::Requirement
68
69
  requirements:
69
- - - ! '>='
70
+ - - "~>"
70
71
  - !ruby/object:Gem::Version
71
- version: '0'
72
+ version: '3.4'
72
73
  - !ruby/object:Gem::Dependency
73
- name: debugger
74
+ name: simplecov
74
75
  requirement: !ruby/object:Gem::Requirement
75
76
  requirements:
76
- - - ! '>='
77
+ - - ">="
77
78
  - !ruby/object:Gem::Version
78
79
  version: '0'
79
80
  type: :development
80
81
  prerelease: false
81
82
  version_requirements: !ruby/object:Gem::Requirement
82
83
  requirements:
83
- - - ! '>='
84
+ - - ">="
84
85
  - !ruby/object:Gem::Version
85
86
  version: '0'
86
87
  - !ruby/object:Gem::Dependency
87
- name: simplecov
88
+ name: sequel
88
89
  requirement: !ruby/object:Gem::Requirement
89
90
  requirements:
90
- - - ! '>='
91
+ - - ">="
91
92
  - !ruby/object:Gem::Version
92
93
  version: '0'
93
94
  type: :development
94
95
  prerelease: false
95
96
  version_requirements: !ruby/object:Gem::Requirement
96
97
  requirements:
97
- - - ! '>='
98
+ - - ">="
98
99
  - !ruby/object:Gem::Version
99
100
  version: '0'
100
101
  - !ruby/object:Gem::Dependency
101
- name: sequel
102
+ name: activerecord
102
103
  requirement: !ruby/object:Gem::Requirement
103
104
  requirements:
104
- - - ! '>='
105
+ - - ">="
105
106
  - !ruby/object:Gem::Version
106
107
  version: '0'
107
108
  type: :development
108
109
  prerelease: false
109
110
  version_requirements: !ruby/object:Gem::Requirement
110
111
  requirements:
111
- - - ! '>='
112
+ - - ">="
112
113
  - !ruby/object:Gem::Version
113
114
  version: '0'
114
115
  description: A logger that allows specification of severity, applicable entity/records,
@@ -118,29 +119,48 @@ executables: []
118
119
  extensions: []
119
120
  extra_rdoc_files: []
120
121
  files:
121
- - .gitignore
122
- - .rspec
122
+ - ".gitignore"
123
+ - ".rspec"
124
+ - ".travis.yml"
123
125
  - Gemfile
124
126
  - README.md
125
127
  - Rakefile
126
128
  - lib/rf_logger.rb
129
+ - lib/rf_logger/active_record.rb
130
+ - lib/rf_logger/active_record/logger.rb
127
131
  - lib/rf_logger/configuration.rb
128
132
  - lib/rf_logger/levels.rb
129
133
  - lib/rf_logger/log_for_notification.rb
130
134
  - lib/rf_logger/notifications/error_notification.rb
131
135
  - lib/rf_logger/notifications/error_notification_environment_constraints.rb
132
- - lib/rf_logger/sequel_logger.rb
136
+ - lib/rf_logger/rails.rb
137
+ - lib/rf_logger/rails/initialize_request_middleware.rb
138
+ - lib/rf_logger/rails/key_value_tagged_logging.rb
139
+ - lib/rf_logger/rails/rails_compatibility.rb
140
+ - lib/rf_logger/request/request_headers.rb
141
+ - lib/rf_logger/request/request_middleware.rb
142
+ - lib/rf_logger/request/request_tags.rb
143
+ - lib/rf_logger/rory.rb
144
+ - lib/rf_logger/rory/initialize_request_middleware.rb
145
+ - lib/rf_logger/sequel.rb
146
+ - lib/rf_logger/sequel/base.rb
147
+ - lib/rf_logger/sequel/logger.rb
133
148
  - lib/rf_logger/simple_logger.rb
134
149
  - lib/rf_logger/version.rb
135
150
  - rf_logger.gemspec
151
+ - spec/lib/rf_logger/active_record/logger_spec.rb
136
152
  - spec/lib/rf_logger/configuration_spec.rb
137
153
  - spec/lib/rf_logger/log_for_notification_spec.rb
138
154
  - spec/lib/rf_logger/notifications/error_notification_environment_constraints_spec.rb
139
155
  - spec/lib/rf_logger/notifications/error_notification_spec.rb
140
- - spec/lib/rf_logger/sequel_logger_spec.rb
156
+ - spec/lib/rf_logger/rails/rails_compatibility_spec.rb
157
+ - spec/lib/rf_logger/request/request_headers_spec.rb
158
+ - spec/lib/rf_logger/request/request_middleware_spec.rb
159
+ - spec/lib/rf_logger/sequel/logger_spec.rb
141
160
  - spec/lib/rf_logger/simple_logger_spec.rb
142
161
  - spec/lib/rf_logger_spec.rb
143
162
  - spec/spec_helper.rb
163
+ - spec/support/request_id_shared_examples.rb
144
164
  homepage: ''
145
165
  licenses:
146
166
  - MIT
@@ -151,26 +171,32 @@ require_paths:
151
171
  - lib
152
172
  required_ruby_version: !ruby/object:Gem::Requirement
153
173
  requirements:
154
- - - ! '>='
174
+ - - ">="
155
175
  - !ruby/object:Gem::Version
156
176
  version: '0'
157
177
  required_rubygems_version: !ruby/object:Gem::Requirement
158
178
  requirements:
159
- - - ! '>='
179
+ - - ">="
160
180
  - !ruby/object:Gem::Version
161
181
  version: '0'
162
182
  requirements: []
163
183
  rubyforge_project:
164
- rubygems_version: 2.1.11
184
+ rubygems_version: 2.2.5
165
185
  signing_key:
166
186
  specification_version: 4
167
187
  summary: A logger that adheres to Renewable Funding logging conventions
168
188
  test_files:
189
+ - spec/lib/rf_logger/active_record/logger_spec.rb
169
190
  - spec/lib/rf_logger/configuration_spec.rb
170
191
  - spec/lib/rf_logger/log_for_notification_spec.rb
171
192
  - spec/lib/rf_logger/notifications/error_notification_environment_constraints_spec.rb
172
193
  - spec/lib/rf_logger/notifications/error_notification_spec.rb
173
- - spec/lib/rf_logger/sequel_logger_spec.rb
194
+ - spec/lib/rf_logger/rails/rails_compatibility_spec.rb
195
+ - spec/lib/rf_logger/request/request_headers_spec.rb
196
+ - spec/lib/rf_logger/request/request_middleware_spec.rb
197
+ - spec/lib/rf_logger/sequel/logger_spec.rb
174
198
  - spec/lib/rf_logger/simple_logger_spec.rb
175
199
  - spec/lib/rf_logger_spec.rb
176
200
  - spec/spec_helper.rb
201
+ - spec/support/request_id_shared_examples.rb
202
+ has_rdoc:
@@ -1,41 +0,0 @@
1
- require 'json'
2
- module RfLogger
3
- class SequelLogger < Sequel::Model(DB.fetch('select 1'))
4
- class << self
5
- def inherited(subclass)
6
- super
7
- subclass.set_dataset underscore(demodulize(subclass.name.pluralize)).to_sym
8
- end
9
-
10
- RfLogger::LEVELS.each do |level|
11
- define_method level.to_sym do |entry|
12
- log = add level, entry
13
-
14
- notification_log = LogForNotification.new(entry.merge(:level => level))
15
- ErrorNotification.dispatch_error(notification_log)
16
- log
17
- end
18
- end
19
-
20
- def add(level, entry)
21
- entry[:level] = RfLogger::LEVELS.index(level.to_sym)
22
- entry[:actor] = entry[:actor] || ''
23
- entry[:metadata] = entry[:metadata] || {}
24
- entry[:created_at] = Time.now
25
- create(entry)
26
- end
27
- end
28
-
29
- def metadata
30
- JSON.parse(self[:metadata])
31
- end
32
-
33
- def metadata=(metadata_hash)
34
- self[:metadata] = metadata_hash.to_json
35
- end
36
-
37
- def display_level
38
- RfLogger::LEVELS[level]
39
- end
40
- end
41
- end