universal-access-log-parser 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -9,5 +9,6 @@ group :development do
9
9
  gem "bundler", "~> 1.0.0"
10
10
  gem "jeweler", "~> 1.6.4"
11
11
  gem "rcov", ">= 0"
12
+ gem "ruby-prof", "~> 0.10.8"
12
13
  end
13
14
 
@@ -18,6 +18,7 @@ GEM
18
18
  diff-lcs (~> 1.1.2)
19
19
  rspec-mocks (2.3.0)
20
20
  ruby-ip (0.9.0)
21
+ ruby-prof (0.10.8)
21
22
 
22
23
  PLATFORMS
23
24
  ruby
@@ -28,3 +29,4 @@ DEPENDENCIES
28
29
  rcov
29
30
  rspec (~> 2.3.0)
30
31
  ruby-ip
32
+ ruby-prof (~> 0.10.8)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.1
@@ -392,7 +392,11 @@ class UniversalAccessLogParser
392
392
  end
393
393
 
394
394
  def parse(line)
395
- matched, *strings = @regexp.match(line).to_a
395
+ begin
396
+ matched, *strings = @regexp.match(line).to_a
397
+ rescue ArgumentError => e
398
+ raise ParsingError.new("parser regexp error: #{e}", self, line)
399
+ end
396
400
 
397
401
  raise ParsingError.new('parser regexp did not match log line', self, line) if strings.empty?
398
402
 
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/ruby
2
+ require 'unprof'
3
+
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
5
+ require 'universal-access-log-parser'
6
+
7
+ $lines = 0
8
+
9
+ def progress
10
+ puts $lines
11
+ end
12
+
13
+ UniversalAccessLogParser.new do
14
+ apache_combined
15
+ string :handling, :process => lambda{|s| s.to_sym}
16
+ string :current_status, :nil_on => '-'
17
+ string :initial_status, :nil_on => '-'
18
+ integer :cache_hits
19
+ float :cache_ttl, :nil_on => '-'
20
+ integer :cache_age
21
+ float :response_time
22
+ end.parse_file(File.join(File.dirname(__FILE__), '..', 'data', 'varnishncsa-short.log')).each! do
23
+ $lines += 1
24
+ progress if $lines % 10 == 0
25
+ end
26
+
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "universal-access-log-parser"
8
- s.version = "1.0.0"
8
+ s.version = "1.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jakub Pastuszek"]
12
- s.date = "2011-10-05"
12
+ s.date = "2011-10-18"
13
13
  s.description = "Meta parser that allows you to define new parser with ruby DSL to match access log file format you are willing to parse or use one of the predefined parsers like Apache common, IIS and more"
14
14
  s.email = "jpastuszek@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  "VERSION",
28
28
  "lib/common_parsers.rb",
29
29
  "lib/universal-access-log-parser.rb",
30
+ "spec/bin/benchmark",
30
31
  "spec/common_parsers_spec.rb",
31
32
  "spec/data/apache_access.log",
32
33
  "spec/data/bad1.log",
@@ -53,12 +54,14 @@ Gem::Specification.new do |s|
53
54
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
54
55
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
55
56
  s.add_development_dependency(%q<rcov>, [">= 0"])
57
+ s.add_development_dependency(%q<ruby-prof>, ["~> 0.10.8"])
56
58
  else
57
59
  s.add_dependency(%q<ruby-ip>, [">= 0"])
58
60
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
59
61
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
62
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
61
63
  s.add_dependency(%q<rcov>, [">= 0"])
64
+ s.add_dependency(%q<ruby-prof>, ["~> 0.10.8"])
62
65
  end
63
66
  else
64
67
  s.add_dependency(%q<ruby-ip>, [">= 0"])
@@ -66,6 +69,7 @@ Gem::Specification.new do |s|
66
69
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
70
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
68
71
  s.add_dependency(%q<rcov>, [">= 0"])
72
+ s.add_dependency(%q<ruby-prof>, ["~> 0.10.8"])
69
73
  end
70
74
  end
71
75
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universal-access-log-parser
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jakub Pastuszek
@@ -15,10 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-05 00:00:00 Z
18
+ date: 2011-10-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ prerelease: false
22
+ name: ruby-ip
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
22
24
  none: false
23
25
  requirements:
24
26
  - - ">="
@@ -27,12 +29,12 @@ dependencies:
27
29
  segments:
28
30
  - 0
29
31
  version: "0"
30
- version_requirements: *id001
31
- name: ruby-ip
32
- prerelease: false
33
32
  type: :runtime
33
+ requirement: *id001
34
34
  - !ruby/object:Gem::Dependency
35
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ name: rspec
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
36
38
  none: false
37
39
  requirements:
38
40
  - - ~>
@@ -43,12 +45,12 @@ dependencies:
43
45
  - 3
44
46
  - 0
45
47
  version: 2.3.0
46
- version_requirements: *id002
47
- name: rspec
48
- prerelease: false
49
48
  type: :development
49
+ requirement: *id002
50
50
  - !ruby/object:Gem::Dependency
51
- requirement: &id003 !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ name: bundler
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
52
54
  none: false
53
55
  requirements:
54
56
  - - ~>
@@ -59,12 +61,12 @@ dependencies:
59
61
  - 0
60
62
  - 0
61
63
  version: 1.0.0
62
- version_requirements: *id003
63
- name: bundler
64
- prerelease: false
65
64
  type: :development
65
+ requirement: *id003
66
66
  - !ruby/object:Gem::Dependency
67
- requirement: &id004 !ruby/object:Gem::Requirement
67
+ prerelease: false
68
+ name: jeweler
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
70
  none: false
69
71
  requirements:
70
72
  - - ~>
@@ -75,12 +77,12 @@ dependencies:
75
77
  - 6
76
78
  - 4
77
79
  version: 1.6.4
78
- version_requirements: *id004
79
- name: jeweler
80
- prerelease: false
81
80
  type: :development
81
+ requirement: *id004
82
82
  - !ruby/object:Gem::Dependency
83
- requirement: &id005 !ruby/object:Gem::Requirement
83
+ prerelease: false
84
+ name: rcov
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
86
  none: false
85
87
  requirements:
86
88
  - - ">="
@@ -89,10 +91,24 @@ dependencies:
89
91
  segments:
90
92
  - 0
91
93
  version: "0"
92
- version_requirements: *id005
93
- name: rcov
94
+ type: :development
95
+ requirement: *id005
96
+ - !ruby/object:Gem::Dependency
94
97
  prerelease: false
98
+ name: ruby-prof
99
+ version_requirements: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ hash: 39
105
+ segments:
106
+ - 0
107
+ - 10
108
+ - 8
109
+ version: 0.10.8
95
110
  type: :development
111
+ requirement: *id006
96
112
  description: Meta parser that allows you to define new parser with ruby DSL to match access log file format you are willing to parse or use one of the predefined parsers like Apache common, IIS and more
97
113
  email: jpastuszek@gmail.com
98
114
  executables: []
@@ -113,6 +129,7 @@ files:
113
129
  - VERSION
114
130
  - lib/common_parsers.rb
115
131
  - lib/universal-access-log-parser.rb
132
+ - spec/bin/benchmark
116
133
  - spec/common_parsers_spec.rb
117
134
  - spec/data/apache_access.log
118
135
  - spec/data/bad1.log