yarder 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -72,6 +72,16 @@ class BufferedLoggerTest < ActiveSupport::TestCase
72
72
  assert @output.string.include?(@message)
73
73
  end
74
74
 
75
+ def test_env_should_have_data
76
+ assert_present @logger.env[:ruby]
77
+ assert_present @logger.env[:program]
78
+ assert_present @logger.env[:user]
79
+
80
+ assert_equal Dir.pwd, @logger.env[:pwd]
81
+ assert_equal 'test', @logger.env[:env].to_s
82
+ assert_equal Socket.gethostname, @logger.env[:host]
83
+ end
84
+
75
85
  def test_should_add_message_passed_as_block_when_using_shortcut
76
86
  @logger.level = Logger::INFO
77
87
  @logger.info {@message}
@@ -12,6 +12,7 @@ class LoggerTest < ActiveSupport::IntegrationCase
12
12
  setup do
13
13
  @output = StringIO.new
14
14
  Rails.logger = Yarder::TaggedLogging.new(MyLogger.new(@output))
15
+ Rails.logger.log_namespace = :app
15
16
  visit('/widgets')
16
17
  end
17
18
 
@@ -20,49 +21,73 @@ class LoggerTest < ActiveSupport::IntegrationCase
20
21
  end
21
22
 
22
23
  test 'fills in the client_ip' do
23
- assert_equal "127.0.0.1", entry['@fields']['client_ip']
24
+ assert_equal "127.0.0.1", entry['app']['rack']['client_ip']
24
25
  end
25
26
 
26
27
  test 'fills in the method' do
27
- assert_equal "GET", entry['@fields']['method']
28
+ assert_equal "GET", entry['app']['rack']['method']
28
29
  end
29
30
 
30
31
  test 'fills in the path' do
31
- assert_equal "/widgets", entry['@fields']['path']
32
+ assert_equal "/widgets", entry['app']['rack']['path']
33
+ end
34
+
35
+ test 'fills in the url' do
36
+ assert_equal "http://www.example.com/widgets", entry['app']['rack']['url']
32
37
  end
33
38
 
34
39
  test 'fills in the status' do
35
- assert_equal "/widgets", entry['@fields']['path']
40
+ assert_equal "/widgets", entry['app']['rack']['path']
36
41
  end
37
42
 
38
43
  test 'fills in the total_duration' do
39
- assert entry['@fields']['total_duration'].to_f >= 0, "total_duration was not a positive number"
44
+ assert entry['app']['duration']['total'].to_f > 0, "total duration was not a positive number"
40
45
  end
41
46
 
42
- test 'fills in the rendering_duration' do
43
- assert entry['@fields']['rendering_duration'].to_f >= 0, "rendering_duration was not a positive number"
47
+ test 'total_duration is greater than sql_duration' do
48
+ duration = entry['app']['duration']
49
+ assert duration['total'].to_f >= duration['sql'].to_f, "total duration is less than sql duration"
50
+ end
51
+
52
+ test 'total_duration is greater than controller_duration' do
53
+ duration = entry['app']['duration']
54
+ assert entry['app']['duration']['total'].to_f >= duration['controller'].to_f, "total_duration is less than controller_duration"
44
55
  end
45
56
 
46
57
  test 'fills in the sql_duration' do
47
- assert entry['@fields']['rendering_duration'].to_f >= 0, "sql_duration was not a positive number"
58
+ duration = entry['app']['duration']
59
+ assert duration['sql'].to_f >= 0, "sql_duration was not a positive number"
48
60
  end
49
61
 
50
62
  test 'fills in the method name tag' do
51
- assert_equal 32, entry['@fields']['uuid'].size
63
+ assert_equal 32, entry['app']['uuid'].size
52
64
  end
53
65
 
54
66
  test 'fills in the string tag' do
55
- assert_match "Hello", entry['@tags'].first
67
+ assert_match "Hello", entry['tags'].first
56
68
  end
57
69
 
58
70
  test 'fills in the proc tag' do
59
- assert_match "Proc", entry['@tags'].last
71
+ assert_match "Proc", entry['tags'].last
60
72
  end
61
73
 
62
- #TODO Add tests for view and SQL rendering summaries
74
+ test 'fills in the sql query' do
75
+ assert entry['app']['sql'].last['sql'], '"SELECT "widgets".* FROM "widgets"'
76
+ end
77
+
78
+ =begin TODO Add tests for view rendering
79
+ test 'fills in the rendering' do
80
+ assert_present entry['app']['rack']['rendering'] , "rendering is blank"
81
+ end
82
+
83
+ test 'fills in the rendering_duration' do
84
+ assert_present entry['app']['rack']['rendering_duration'] , "rendering_duration is blank"
85
+ assert Float(entry['app']['rack']['rendering_duration']) >= 0, "rendering_duration was not a positive number"
86
+ end
87
+ =end
63
88
 
64
89
  def entry
65
90
  JSON.parse(@output.string)
66
91
  end
67
92
 
68
- end
93
+ end
@@ -20,33 +20,33 @@ class TaggedLoggingTest < ActiveSupport::TestCase
20
20
 
21
21
  test 'fills in the severity' do
22
22
  @logger.info "Severity Test"
23
- assert_equal "INFO", JSON.parse(@output.string)['@fields']['severity']
23
+ assert_equal "INFO", JSON.parse(@output.string)['severity']
24
24
  end
25
25
 
26
26
  test "tagged once" do
27
27
  @logger.tagged("BCX") { @logger.info "Funky time" }
28
- assert_equal "BCX", JSON.parse(@output.string)['@tags'][0]
29
- assert_equal "Funky time", JSON.parse(@output.string)['@message']
28
+ assert_equal "BCX", JSON.parse(@output.string)['tags'][0]
29
+ assert_equal "Funky time", JSON.parse(@output.string)['message']
30
30
  end
31
31
 
32
32
  test "tagged twice" do
33
33
  @logger.tagged("BCX") { @logger.tagged("Jason") { @logger.info "Funky time" } }
34
- assert_equal "BCX", JSON.parse(@output.string)['@tags'][0]
35
- assert_equal "Jason", JSON.parse(@output.string)['@tags'][1]
34
+ assert_equal "BCX", JSON.parse(@output.string)['tags'][0]
35
+ assert_equal "Jason", JSON.parse(@output.string)['tags'][1]
36
36
  end
37
37
 
38
38
  test "tagged thrice at once" do
39
39
  @logger.tagged("BCX", "Jason", "New") { @logger.info "Funky time" }
40
- assert_equal "BCX", JSON.parse(@output.string)['@tags'][0]
41
- assert_equal "Jason", JSON.parse(@output.string)['@tags'][1]
42
- assert_equal "New", JSON.parse(@output.string)['@tags'][2]
40
+ assert_equal "BCX", JSON.parse(@output.string)['tags'][0]
41
+ assert_equal "Jason", JSON.parse(@output.string)['tags'][1]
42
+ assert_equal "New", JSON.parse(@output.string)['tags'][2]
43
43
  end
44
44
 
45
45
  test "tagged are flattened" do
46
46
  @logger.tagged("BCX", %w(Jason New)) { @logger.info "Funky time" }
47
- assert_equal "BCX", JSON.parse(@output.string)['@tags'][0]
48
- assert_equal "Jason", JSON.parse(@output.string)['@tags'][1]
49
- assert_equal "New", JSON.parse(@output.string)['@tags'][2]
47
+ assert_equal "BCX", JSON.parse(@output.string)['tags'][0]
48
+ assert_equal "Jason", JSON.parse(@output.string)['tags'][1]
49
+ assert_equal "New", JSON.parse(@output.string)['tags'][2]
50
50
  end
51
51
 
52
52
 
@@ -59,44 +59,44 @@ class TaggedLoggingTest < ActiveSupport::TestCase
59
59
  @logger.info 'c'
60
60
  assert_equal [], @logger.clear_tags!
61
61
  @logger.info 'd'
62
- # assert_equal "[A] [B] [C] a\n[A] [B] b\n[A] c\nd\n", JSON.parse(@output.string)['@tags']
62
+ # assert_equal "[A] [B] [C] a\n[A] [B] b\n[A] c\nd\n", JSON.parse(@output.string)['tags']
63
63
 
64
64
  first_log = JSON.parse(@output.string.split("\n")[0])
65
- assert_equal "A", first_log['@tags'][0]
66
- assert_equal "B", first_log['@tags'][1]
67
- assert_equal "C", first_log['@tags'][2]
68
- assert_equal "a", first_log['@message']
65
+ assert_equal "A", first_log['tags'][0]
66
+ assert_equal "B", first_log['tags'][1]
67
+ assert_equal "C", first_log['tags'][2]
68
+ assert_equal "a", first_log['message']
69
69
 
70
70
  second_log = JSON.parse(@output.string.split("\n")[1])
71
- assert_equal "A", second_log['@tags'][0]
72
- assert_equal "B", second_log['@tags'][1]
73
- assert_equal "b", second_log['@message']
71
+ assert_equal "A", second_log['tags'][0]
72
+ assert_equal "B", second_log['tags'][1]
73
+ assert_equal "b", second_log['message']
74
74
 
75
75
  third_log = JSON.parse(@output.string.split("\n")[2])
76
- assert_equal "A", third_log['@tags'][0]
77
- assert_equal "c", third_log['@message']
76
+ assert_equal "A", third_log['tags'][0]
77
+ assert_equal "c", third_log['message']
78
78
 
79
79
  fourth_log = JSON.parse(@output.string.split("\n")[3])
80
- assert fourth_log['@tags'].empty?
81
- assert_equal "d", fourth_log['@message']
80
+ assert fourth_log['tags'].empty?
81
+ assert_equal "d", fourth_log['message']
82
82
  end
83
83
 
84
84
 
85
85
 
86
86
  test "does not strip message content" do
87
87
  @logger.info " Hello"
88
- assert_equal " Hello", JSON.parse(@output.string)['@message']
88
+ assert_equal " Hello", JSON.parse(@output.string)['message']
89
89
  end
90
90
 
91
91
  test "provides access to the logger instance" do
92
92
  @logger.tagged("BCX") { |logger| logger.info "Funky time" }
93
- assert_equal "BCX", JSON.parse(@output.string)['@tags'][0]
94
- assert_equal "Funky time", JSON.parse(@output.string)['@message']
93
+ assert_equal "BCX", JSON.parse(@output.string)['tags'][0]
94
+ assert_equal "Funky time", JSON.parse(@output.string)['message']
95
95
  end
96
96
 
97
97
  test "tagged once with blank and nil" do
98
98
  @logger.tagged(nil, "", "New") { @logger.info "Funky time" }
99
- assert_equal "New", JSON.parse(@output.string)['@tags'].last
99
+ assert_equal "New", JSON.parse(@output.string)['tags'].first
100
100
  end
101
101
 
102
102
  test "keeps each tag in their own thread" do
@@ -109,13 +109,13 @@ class TaggedLoggingTest < ActiveSupport::TestCase
109
109
 
110
110
  # Sub-thread
111
111
  main_thread = JSON.parse(@output.string.split("\n").first)
112
- assert_equal "OMG", main_thread['@tags'][0]
113
- assert_equal "Cool story bro", main_thread['@message']
112
+ assert_equal "OMG", main_thread['tags'][0]
113
+ assert_equal "Cool story bro", main_thread['message']
114
114
 
115
115
  # Main thread
116
116
  main_thread = JSON.parse(@output.string.split("\n").last)
117
- assert_equal "BCX", main_thread['@tags'][0]
118
- assert_equal "Funky time", main_thread['@message']
117
+ assert_equal "BCX", main_thread['tags'][0]
118
+ assert_equal "Funky time", main_thread['message']
119
119
  end
120
120
 
121
121
  test "cleans up the taggings on flush" do
@@ -129,8 +129,8 @@ class TaggedLoggingTest < ActiveSupport::TestCase
129
129
  end
130
130
 
131
131
  first_log = JSON.parse(@output.string.split("\n").first)
132
- assert first_log['@tags'].empty?
133
- assert_equal "Cool story bro", first_log['@message']
132
+ assert first_log['tags'].empty?
133
+ assert_equal "Cool story bro", first_log['message']
134
134
  end
135
135
 
136
136
 
@@ -141,15 +141,13 @@ class TaggedLoggingTest < ActiveSupport::TestCase
141
141
  end
142
142
 
143
143
  first_log = JSON.parse(@output.string.split("\n").first)
144
- assert_equal "BCX", first_log['@tags'][0]
145
- assert_equal "Jason", first_log['@tags'][1]
146
- assert_equal "Funky time", first_log['@message']
144
+ assert_equal "BCX", first_log['tags'][0]
145
+ assert_equal "Jason", first_log['tags'][1]
146
+ assert_equal "Funky time", first_log['message']
147
147
 
148
148
  second_log = JSON.parse(@output.string.split("\n").last)
149
- assert_equal "BCX", second_log['@tags'][0]
150
- assert_equal "Junky time!", second_log['@message']
149
+ assert_equal "BCX", second_log['tags'][0]
150
+ assert_equal "Junky time!", second_log['message']
151
151
  end
152
152
 
153
153
  end
154
-
155
-
metadata CHANGED
@@ -1,86 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jeffrey Jones
8
- autorequire:
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-11-07 00:00:00.000000000 Z
12
+ date: 2013-12-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
+ version_requirements: !ruby/object:Gem::Requirement
16
17
  requirements:
17
18
  - - ~>
18
19
  - !ruby/object:Gem::Version
19
20
  version: 3.2.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
21
+ none: false
22
+ requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
+ none: false
28
+ prerelease: false
29
+ type: :runtime
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: logstash-event
29
- requirement: !ruby/object:Gem::Requirement
32
+ version_requirements: !ruby/object:Gem::Requirement
30
33
  requirements:
31
34
  - - ~>
32
35
  - !ruby/object:Gem::Version
33
- version: 1.1.5
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
36
+ version: 1.2.02
37
+ none: false
38
+ requirement: !ruby/object:Gem::Requirement
37
39
  requirements:
38
40
  - - ~>
39
41
  - !ruby/object:Gem::Version
40
- version: 1.1.5
42
+ version: 1.2.02
43
+ none: false
44
+ prerelease: false
45
+ type: :runtime
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: capybara
43
- requirement: !ruby/object:Gem::Requirement
48
+ version_requirements: !ruby/object:Gem::Requirement
44
49
  requirements:
45
50
  - - ~>
46
51
  - !ruby/object:Gem::Version
47
52
  version: 1.1.2
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirement: !ruby/object:Gem::Requirement
51
55
  requirements:
52
56
  - - ~>
53
57
  - !ruby/object:Gem::Version
54
58
  version: 1.1.2
55
- description: Replaces the default string based Ruby on Rails logging system with a
56
- JSON based one
59
+ none: false
60
+ prerelease: false
61
+ type: :development
62
+ description: Replaces the default string based Ruby on Rails logging system with a JSON based one
57
63
  email:
58
64
  - jjones@toppan-f.co.jp
59
65
  executables: []
60
66
  extensions: []
61
67
  extra_rdoc_files: []
62
68
  files:
69
+ - lib/yarder.rb
63
70
  - lib/tasks/yarder_tasks.rake
71
+ - lib/yarder/event.rb
72
+ - lib/yarder/logger.rb
73
+ - lib/yarder/railtie.rb
74
+ - lib/yarder/tagged_logging.rb
75
+ - lib/yarder/version.rb
64
76
  - lib/yarder/action_controller/log_subscriber.rb
65
77
  - lib/yarder/action_view/log_subscriber.rb
66
78
  - lib/yarder/active_record/log_subscriber.rb
67
79
  - lib/yarder/active_resource/log_subscriber.rb
68
80
  - lib/yarder/core_ext/object/blank.rb
69
- - lib/yarder/event.rb
70
- - lib/yarder/logger.rb
71
81
  - lib/yarder/rack/logger.rb
72
- - lib/yarder/railtie.rb
73
- - lib/yarder/tagged_logging.rb
74
- - lib/yarder/version.rb
75
- - lib/yarder.rb
76
82
  - MIT-LICENSE
77
83
  - Rakefile
78
84
  - README.md
85
+ - test/logger_test.rb
86
+ - test/tagged_logging_test.rb
87
+ - test/test_helper.rb
88
+ - test/yarder_test.rb
79
89
  - test/action_controller/log_subscriber_test.rb
80
90
  - test/action_view/log_subscriber_test.rb
81
91
  - test/active_record/log_subscriber_test.rb
82
92
  - test/active_resource/log_subscriber_test.rb
83
93
  - test/core_ext/blank_test.rb
94
+ - test/dummy/config.ru
95
+ - test/dummy/Rakefile
96
+ - test/dummy/README.rdoc
84
97
  - test/dummy/app/assets/javascripts/application.js
85
98
  - test/dummy/app/assets/javascripts/widgets.js
86
99
  - test/dummy/app/assets/stylesheets/application.css
@@ -106,6 +119,7 @@ files:
106
119
  - test/dummy/config/boot.rb
107
120
  - test/dummy/config/database.yml
108
121
  - test/dummy/config/environment.rb
122
+ - test/dummy/config/routes.rb
109
123
  - test/dummy/config/environments/development.rb
110
124
  - test/dummy/config/environments/production.rb
111
125
  - test/dummy/config/environments/test.rb
@@ -116,30 +130,21 @@ files:
116
130
  - test/dummy/config/initializers/session_store.rb
117
131
  - test/dummy/config/initializers/wrap_parameters.rb
118
132
  - test/dummy/config/locales/en.yml
119
- - test/dummy/config/routes.rb
120
- - test/dummy/config.ru
121
- - test/dummy/db/migrate/20120927084605_create_widgets.rb
122
133
  - test/dummy/db/schema.rb
134
+ - test/dummy/db/migrate/20120927084605_create_widgets.rb
123
135
  - test/dummy/log/test.log
124
136
  - test/dummy/public/404.html
125
137
  - test/dummy/public/422.html
126
138
  - test/dummy/public/500.html
127
139
  - test/dummy/public/favicon.ico
128
- - test/dummy/Rakefile
129
- - test/dummy/README.rdoc
130
140
  - test/dummy/script/rails
131
- - test/logger_test.rb
132
141
  - test/rack/logger_test.rb
133
142
  - test/support/fake_models.rb
134
143
  - test/support/integration_case.rb
135
144
  - test/support/multibyte_test_helpers.rb
136
- - test/tagged_logging_test.rb
137
- - test/test_helper.rb
138
- - test/yarder_test.rb
139
145
  homepage: https://github.com/rurounijones/yarder
140
146
  licenses: []
141
- metadata: {}
142
- post_install_message:
147
+ post_install_message:
143
148
  rdoc_options: []
144
149
  require_paths:
145
150
  - lib
@@ -147,24 +152,39 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
152
  requirements:
148
153
  - - '>='
149
154
  - !ruby/object:Gem::Version
155
+ segments:
156
+ - 0
150
157
  version: '0'
158
+ hash: 2
159
+ none: false
151
160
  required_rubygems_version: !ruby/object:Gem::Requirement
152
161
  requirements:
153
162
  - - '>='
154
163
  - !ruby/object:Gem::Version
164
+ segments:
165
+ - 0
155
166
  version: '0'
167
+ hash: 2
168
+ none: false
156
169
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 2.0.3
159
- signing_key:
160
- specification_version: 4
170
+ rubyforge_project:
171
+ rubygems_version: 1.8.24
172
+ signing_key:
173
+ specification_version: 3
161
174
  summary: JSON format based replacement for Ruby on Rails logging system
162
175
  test_files:
176
+ - test/logger_test.rb
177
+ - test/tagged_logging_test.rb
178
+ - test/test_helper.rb
179
+ - test/yarder_test.rb
163
180
  - test/action_controller/log_subscriber_test.rb
164
181
  - test/action_view/log_subscriber_test.rb
165
182
  - test/active_record/log_subscriber_test.rb
166
183
  - test/active_resource/log_subscriber_test.rb
167
184
  - test/core_ext/blank_test.rb
185
+ - test/dummy/config.ru
186
+ - test/dummy/Rakefile
187
+ - test/dummy/README.rdoc
168
188
  - test/dummy/app/assets/javascripts/application.js
169
189
  - test/dummy/app/assets/javascripts/widgets.js
170
190
  - test/dummy/app/assets/stylesheets/application.css
@@ -190,6 +210,7 @@ test_files:
190
210
  - test/dummy/config/boot.rb
191
211
  - test/dummy/config/database.yml
192
212
  - test/dummy/config/environment.rb
213
+ - test/dummy/config/routes.rb
193
214
  - test/dummy/config/environments/development.rb
194
215
  - test/dummy/config/environments/production.rb
195
216
  - test/dummy/config/environments/test.rb
@@ -200,23 +221,15 @@ test_files:
200
221
  - test/dummy/config/initializers/session_store.rb
201
222
  - test/dummy/config/initializers/wrap_parameters.rb
202
223
  - test/dummy/config/locales/en.yml
203
- - test/dummy/config/routes.rb
204
- - test/dummy/config.ru
205
- - test/dummy/db/migrate/20120927084605_create_widgets.rb
206
224
  - test/dummy/db/schema.rb
225
+ - test/dummy/db/migrate/20120927084605_create_widgets.rb
207
226
  - test/dummy/log/test.log
208
227
  - test/dummy/public/404.html
209
228
  - test/dummy/public/422.html
210
229
  - test/dummy/public/500.html
211
230
  - test/dummy/public/favicon.ico
212
- - test/dummy/Rakefile
213
- - test/dummy/README.rdoc
214
231
  - test/dummy/script/rails
215
- - test/logger_test.rb
216
232
  - test/rack/logger_test.rb
217
233
  - test/support/fake_models.rb
218
234
  - test/support/integration_case.rb
219
235
  - test/support/multibyte_test_helpers.rb
220
- - test/tagged_logging_test.rb
221
- - test/test_helper.rb
222
- - test/yarder_test.rb