log_parser 0.1.0 → 1.0.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 +4 -4
- data/Rakefile +4 -3
- data/lib/log_parser/client.rb +4 -2
- data/lib/log_parser/version.rb +1 -1
- data/lib/log_parser.rb +3 -5
- data/test/fixtures/example.log +8 -0
- data/test/log_parser/client_test.rb +59 -3
- data/test/log_parser/line_item_test.rb +0 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36142163ba2daa7fc0c5696d61ace414bf990c53
|
4
|
+
data.tar.gz: 7221c22e2e25cf8f7ecf108e0bf69a546440ab85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0718a695404977a316621a6528859f0ae0359418097bbfa6dd1de2f87a2841961221024efe1dc742aeb064279f492ff10e9744eefeea1be32568c2b0971763b3
|
7
|
+
data.tar.gz: 18017b6591cfcc422d34a3f52a067adbfcb2d0ec636cf2cb5e58dafc91a194a3d2a19ad74e431e65717ab13e49c8d21df5042cab4d9b9ae298a0765cec3722f3
|
data/Rakefile
CHANGED
data/lib/log_parser/client.rb
CHANGED
@@ -28,7 +28,7 @@ module LogParser
|
|
28
28
|
#
|
29
29
|
def initialize(log = '', options = {})
|
30
30
|
@file = log.is_a?(String) ? LogParser.path_for(log) : log
|
31
|
-
@lines = options.fetch :line_items,
|
31
|
+
@lines = options.fetch :line_items, nil
|
32
32
|
@pattern = options.fetch :pattern, LINE_PATTERN
|
33
33
|
end
|
34
34
|
|
@@ -110,6 +110,8 @@ module LogParser
|
|
110
110
|
lines.count
|
111
111
|
end
|
112
112
|
|
113
|
+
alias length count
|
114
|
+
|
113
115
|
def sort
|
114
116
|
lines.sort
|
115
117
|
end
|
@@ -147,7 +149,7 @@ module LogParser
|
|
147
149
|
end
|
148
150
|
|
149
151
|
def lines
|
150
|
-
@lines = scan if @lines.nil?
|
152
|
+
@lines = scan if @lines.nil?
|
151
153
|
@lines
|
152
154
|
end
|
153
155
|
|
data/lib/log_parser/version.rb
CHANGED
data/lib/log_parser.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
require 'log_parser/version'
|
2
4
|
require 'log_parser/line_item'
|
3
5
|
require 'log_parser/client'
|
4
6
|
|
5
7
|
module LogParser
|
6
|
-
def self.root
|
7
|
-
File.expand_path('../..', __FILE__)
|
8
|
-
end
|
9
|
-
|
10
8
|
def self.path_for(file)
|
11
|
-
Pathname.new(File.join(
|
9
|
+
Pathname.new(File.join(Dir.pwd, 'log', file))
|
12
10
|
end
|
13
11
|
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
[2014-11-13T23:12:10-07:00] INFO: [page_id 24323] Updating page and reviews
|
2
|
+
[2014-11-13T23:12:12-07:00] INFO: [page_id 24323] Reviews found
|
3
|
+
¯\_(ツ)_/¯ I don't know h0w I got here
|
4
|
+
[2014-11-13T23:12:14-07:00] INFO: [page_id 24323] Saved 10 reviews
|
5
|
+
[2014-11-13T23:12:15-07:00] WARNING: [page_id 75645] Failed to find page (maybe it doesn't exists?)
|
6
|
+
[2014-11-13T23:12:16-15:00] INFO: [page_id 95239] Updating page and reviews
|
7
|
+
[2014-11-13T23:12:17-07:00] INFO: [page_id 95239] Reviews found
|
8
|
+
[2014-11-13T23:12:18-07:00] ERROR: [page_id 95239] Failed to save reviews! Validation failed: Text can't be blank
|
@@ -4,10 +4,66 @@ require 'log_parser'
|
|
4
4
|
|
5
5
|
class LogParser::ClientTest < MiniTest::Unit::TestCase
|
6
6
|
|
7
|
+
def setup
|
8
|
+
@file = Pathname.new(File.join(Dir.pwd, 'test', 'fixtures', 'example.log'))
|
9
|
+
@log = LogParser::Client.new(@file)
|
10
|
+
end
|
11
|
+
|
7
12
|
def test_initialize_with_string
|
8
|
-
@log = LogParser::Client.new('
|
9
|
-
assert_kind_of Pathname, @log.
|
10
|
-
|
13
|
+
@log = LogParser::Client.new('test.log')
|
14
|
+
assert_kind_of Pathname, @log.file
|
15
|
+
assert_match %r{/log_parser/log/test.log}, @log.file.to_s
|
11
16
|
end
|
12
17
|
|
18
|
+
def test_initialize_with_pathname
|
19
|
+
assert_kind_of Pathname, @log.file
|
20
|
+
assert_equal @log.file.to_s, @file.to_s
|
21
|
+
assert_equal File.exists?(@log.file), true
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_errors
|
25
|
+
errors = @log.errors.to_a
|
26
|
+
assert_equal 1, errors.count
|
27
|
+
assert_equal 'page_id 95239', errors.first.prefix
|
28
|
+
assert_match /failed to save/i, errors.first.message
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_warnings
|
32
|
+
warnings = @log.warnings.to_a
|
33
|
+
assert_equal 1, warnings.count
|
34
|
+
assert_equal 'page_id 75645', warnings.first.prefix
|
35
|
+
assert_match /failed to find page/i, warnings.first.message
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_infos
|
39
|
+
infos = @log.infos.to_a
|
40
|
+
assert_equal 5, infos.count
|
41
|
+
assert_equal 'page_id 24323', infos.first.prefix
|
42
|
+
assert_match /Updating page/i, infos.first.message
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_since
|
46
|
+
lines = @log.since(DateTime.parse('2014-11-13T23:12:15-07:00')).to_a
|
47
|
+
assert_equal 3, lines.count
|
48
|
+
assert_equal '[page_id 95239] Updating page and reviews', lines.first.full_message
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_by_message
|
52
|
+
lines = @log.by_message('validation failed').to_a
|
53
|
+
assert_equal 1, lines.count
|
54
|
+
assert_equal %Q([2014-11-13T23:12:18-07:00] ERROR: [page_id 95239] Failed to save reviews! Validation failed: Text can't be blank),
|
55
|
+
lines.first.to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_prefix
|
59
|
+
lines = @log.by_prefix('page_id 24323').to_a
|
60
|
+
assert_equal 3, lines.count
|
61
|
+
assert_equal ['page_id 24323'], lines.map(&:prefix).uniq
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_prefixes
|
65
|
+
prefixes = @log.prefixes
|
66
|
+
assert_equal 3, prefixes.count
|
67
|
+
assert_equal ['page_id 24323', 'page_id 75645', 'page_id 95239'], prefixes
|
68
|
+
end
|
13
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/log_parser/line_item.rb
|
56
56
|
- lib/log_parser/version.rb
|
57
57
|
- log_parser.gemspec
|
58
|
+
- test/fixtures/example.log
|
58
59
|
- test/log_parser/client_test.rb
|
59
60
|
- test/log_parser/line_item_test.rb
|
60
61
|
homepage: https://github.com/ridiculous
|
@@ -82,5 +83,6 @@ signing_key:
|
|
82
83
|
specification_version: 4
|
83
84
|
summary: Easily search log files
|
84
85
|
test_files:
|
86
|
+
- test/fixtures/example.log
|
85
87
|
- test/log_parser/client_test.rb
|
86
88
|
- test/log_parser/line_item_test.rb
|