logfmt 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12311fc6d8f64e7c703b4d5ef3494ef51df9ad56
4
- data.tar.gz: 8a3aa8fe3253121859df2c19eda8281e6dd2b599
3
+ metadata.gz: 2327cc4b6b81e1f8697b774dd0100e94465d9f13
4
+ data.tar.gz: 81758010bbe3acd78c67f01aa5947a27b165c70e
5
5
  SHA512:
6
- metadata.gz: 845a530e2620fcf4eccabe54f715be1742cbe62996fbdb0ea020634fa9f21533620d44fd726921bc631980b89d28a615d604f647b45c1a770cf440520cea9939
7
- data.tar.gz: 44c635fb1d2f7649821ebc15777acfca429246b9fe99c97ae686e3216f77132759e0baba61f9baf7b28d6d42a47ed647d18c5b65680595ccc23c271a1a56a259
6
+ metadata.gz: 726f73839a6139edf96a8632cd5c8bb978eb884ccb4c1ddad021ba9dc5e623b6275182340ffe6a6546321e19c082fb79e1e6346878fe3f972214c32a0f833694
7
+ data.tar.gz: bf601bd78782b3fa6d52421b7a101a1c17f399c113ba033da34a535daaed62797e80e46668be3513d7483dc09115662fd900b665cdcc18a7125d4ed79e836f37
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/bench.rb CHANGED
@@ -1,4 +1,4 @@
1
- $:.unshift File.expand_path('../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
2
 
3
3
  require 'benchmark'
4
4
  require 'logfmt'
@@ -12,4 +12,4 @@ Benchmark.bm(20) do |x|
12
12
  Logfmt.parse(line)
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -1,2 +1,2 @@
1
- require "logfmt/version"
2
- require "logfmt/parser"
1
+ require 'logfmt/version'
2
+ require 'logfmt/parser'
@@ -6,16 +6,16 @@ module Logfmt
6
6
  QVALUE = 4
7
7
 
8
8
  def self.numeric?(s)
9
- return s.match(/\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\Z/)
9
+ s.match(/\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\Z/)
10
10
  end
11
11
 
12
12
  def self.integer?(s)
13
- return s.match(/\A[-+]?[0-9]+\Z/)
13
+ s.match(/\A[-+]?[0-9]+\Z/)
14
14
  end
15
15
 
16
16
  def self.parse(line)
17
17
  output = {}
18
- key, value = "", ""
18
+ key, value = '', ''
19
19
  escaped = false
20
20
  state = GARBAGE
21
21
  i = 0
@@ -33,15 +33,13 @@ module Logfmt
33
33
  state = KEY
34
34
  key << c
35
35
  elsif c == '='
36
- output[key.strip()] = true
36
+ output[key.strip] = true
37
37
  state = EQUAL
38
38
  else
39
- output[key.strip()] = true
39
+ output[key.strip] = true
40
40
  state = GARBAGE
41
41
  end
42
- if i >= line.length
43
- output[key.strip()] = true
44
- end
42
+ output[key.strip] = true if i >= line.length
45
43
  next
46
44
  end
47
45
  if state == EQUAL
@@ -49,7 +47,7 @@ module Logfmt
49
47
  value = c
50
48
  state = IVALUE
51
49
  elsif c == '"'
52
- value = ""
50
+ value = ''
53
51
  escaped = false
54
52
  state = QVALUE
55
53
  else
@@ -61,18 +59,18 @@ module Logfmt
61
59
  elsif numeric?(value)
62
60
  value = Float(value)
63
61
  end
64
- output[key.strip()] = value || true
62
+ output[key.strip] = value || true
65
63
  end
66
64
  next
67
65
  end
68
66
  if state == IVALUE
69
- if not (c > ' ' && c != '"' && c != '=')
67
+ if !(c > ' ' && c != '"' && c != '=')
70
68
  if integer?(value)
71
69
  value = Integer(value)
72
70
  elsif numeric?(value)
73
71
  value = Float(value)
74
72
  end
75
- output[key.strip()] = value
73
+ output[key.strip] = value
76
74
  state = GARBAGE
77
75
  else
78
76
  value << c
@@ -83,21 +81,21 @@ module Logfmt
83
81
  elsif numeric?(value)
84
82
  value = Float(value)
85
83
  end
86
- output[key.strip()] = value
84
+ output[key.strip] = value
87
85
  end
88
86
  next
89
87
  end
90
88
  if state == QVALUE
91
89
  if c == '\\'
92
90
  escaped = true
93
- value << "\\"
91
+ value << '\\'
94
92
  elsif c == '"'
95
93
  if escaped
96
94
  escaped = false
97
95
  value << c
98
96
  next
99
97
  end
100
- output[key.strip()] = value
98
+ output[key.strip] = value
101
99
  state = GARBAGE
102
100
  else
103
101
  escaped = false
@@ -1,3 +1,3 @@
1
1
  module Logfmt
2
- VERSION = "0.0.6"
2
+ VERSION = '0.0.7'
3
3
  end
@@ -4,19 +4,19 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'logfmt/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.name = "logfmt"
7
+ gem.name = 'logfmt'
8
8
  gem.version = Logfmt::VERSION
9
- gem.authors = ["Timothée Peignier"]
10
- gem.email = ["timothee.peignier@tryphon.org"]
9
+ gem.authors = ['Timothée Peignier']
10
+ gem.email = ['timothee.peignier@tryphon.org']
11
11
  gem.description = %q{Parse log lines in the logfmt style.}
12
12
  gem.summary = %q{Parse logfmt messages.}
13
- gem.homepage = "https://github.com/cyberdelia/logfmt-ruby"
13
+ gem.homepage = 'https://github.com/cyberdelia/logfmt-ruby'
14
14
  gem.license = 'MIT'
15
15
 
16
16
  gem.files = `git ls-files`.split($/)
17
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
- gem.require_paths = ["lib"]
20
- gem.add_development_dependency "rspec", "~> 3.0"
21
- gem.add_development_dependency "rake", "~> 10.3"
19
+ gem.require_paths = ['lib']
20
+ gem.add_development_dependency 'rspec', '~> 3.0'
21
+ gem.add_development_dependency 'rake', '~> 10.3'
22
22
  end
@@ -4,7 +4,7 @@ require 'logfmt/parser'
4
4
 
5
5
  describe Logfmt do
6
6
  it 'parse empty log line' do
7
- data = Logfmt.parse("")
7
+ data = Logfmt.parse('')
8
8
  expect(data).to eq({})
9
9
  end
10
10
 
@@ -14,121 +14,121 @@ describe Logfmt do
14
14
  end
15
15
 
16
16
  it 'parse key without value' do
17
- data = Logfmt.parse("key")
18
- expect(data).to eq({"key" => true})
17
+ data = Logfmt.parse('key')
18
+ expect(data).to eq('key' => true)
19
19
  end
20
20
 
21
21
  it 'parse key without value and whitespace' do
22
- data = Logfmt.parse(" key ")
23
- expect(data).to eq({"key" => true})
22
+ data = Logfmt.parse(' key ')
23
+ expect(data).to eq('key' => true)
24
24
  end
25
25
 
26
26
  it 'parse multiple single keys' do
27
- data = Logfmt.parse("key1 key2")
28
- expect(data).to eq({"key1" => true, "key2" => true})
27
+ data = Logfmt.parse('key1 key2')
28
+ expect(data).to eq('key1' => true, 'key2' => true)
29
29
  end
30
30
 
31
31
  it 'parse unquoted value' do
32
- data = Logfmt.parse("key=value")
33
- expect(data).to eq({"key" => "value"})
32
+ data = Logfmt.parse('key=value')
33
+ expect(data).to eq('key' => 'value')
34
34
  end
35
35
 
36
36
  it 'parse pairs' do
37
- data = Logfmt.parse("key1=value1 key2=value2")
38
- expect(data).to eq({"key1" => "value1", "key2" => "value2"})
37
+ data = Logfmt.parse('key1=value1 key2=value2')
38
+ expect(data).to eq('key1' => 'value1', 'key2' => 'value2')
39
39
  end
40
40
 
41
41
  it 'parse mixed single/non-single pairs' do
42
- data = Logfmt.parse("key1=value1 key2")
43
- expect(data).to eq({"key1" => "value1", "key2" => true})
42
+ data = Logfmt.parse('key1=value1 key2')
43
+ expect(data).to eq('key1' => 'value1', 'key2' => true)
44
44
  end
45
45
 
46
46
  it 'parse mixed pairs whatever the order' do
47
- data = Logfmt.parse("key1 key2=value2")
48
- expect(data).to eq({"key1" => true, "key2" => "value2"})
47
+ data = Logfmt.parse('key1 key2=value2')
48
+ expect(data).to eq('key1' => true, 'key2' => 'value2')
49
49
  end
50
50
 
51
51
  it 'parse quoted value' do
52
52
  data = Logfmt.parse('key="quoted value"')
53
- expect(data).to eq({"key" => "quoted value"})
53
+ expect(data).to eq('key' => 'quoted value')
54
54
  end
55
55
 
56
56
  it 'parse escaped quote value ' do
57
57
  data = Logfmt.parse('key="quoted \" value" r="esc\t"')
58
- expect(data).to eq({"key" => 'quoted \" value', "r" => "esc\\t"})
58
+ expect(data).to eq('key' => 'quoted \" value', 'r' => 'esc\\t')
59
59
  end
60
60
 
61
61
  it 'parse mixed pairs' do
62
62
  data = Logfmt.parse('key1="quoted \" value" key2 key3=value3')
63
- expect(data).to eq({"key1" => 'quoted \" value', "key2" => true, "key3" => "value3"})
63
+ expect(data).to eq('key1' => 'quoted \" value', 'key2' => true, 'key3' => 'value3')
64
64
  end
65
65
 
66
66
  it 'parse mixed characters pairs' do
67
67
  data = Logfmt.parse('foo=bar a=14 baz="hello kitty" ƒ=2h3s cool%story=bro f %^asdf')
68
- expect(data).to eq({"foo" => "bar", "a" => 14, "baz" => "hello kitty", "ƒ" => "2h3s", "cool%story" => "bro", "f" => true, "%^asdf" => true})
68
+ expect(data).to eq('foo' => 'bar', 'a' => 14, 'baz' => 'hello kitty',
69
+ 'ƒ' => '2h3s', 'cool%story' => 'bro', 'f' => true, '%^asdf' => true)
69
70
  end
70
71
 
71
72
  it 'parse pair with empty quote' do
72
73
  data = Logfmt.parse('key=""')
73
- expect(data).to eq({"key" => ""})
74
+ expect(data).to eq('key' => '')
74
75
  end
75
76
 
76
77
  # Currently, the value comes back as "true", which could mess up stats
77
78
  # Really, only "true" should come back as "true"
78
79
  # it 'parse 1 as integer type' do
79
80
  # data = Logfmt.parse('key=1')
80
- # expect(data["key"].class).to eq(Fixnum)
81
+ # expect(data['key'].class).to eq(Fixnum)
81
82
  # end
82
83
 
83
84
  it 'parse positive integer as integer type' do
84
85
  data = Logfmt.parse('key=234')
85
- expect(data["key"]).to eq(234)
86
- expect(data["key"].class).to eq(Fixnum)
86
+ expect(data['key']).to eq(234)
87
+ expect(data['key'].class).to eq(Fixnum)
87
88
  end
88
89
 
89
90
  it 'parse negative integer as integer type' do
90
91
  data = Logfmt.parse('key=-3428')
91
- expect(data["key"]).to eq(-3428)
92
- expect(data["key"].class).to eq(Fixnum)
92
+ expect(data['key']).to eq(-3428)
93
+ expect(data['key'].class).to eq(Fixnum)
93
94
  end
94
95
 
95
-
96
96
  it 'parse positive float as float type' do
97
97
  data = Logfmt.parse('key=3.342')
98
- expect(data["key"]).to eq(3.342)
99
- expect(data["key"].class).to eq(Float)
98
+ expect(data['key']).to eq(3.342)
99
+ expect(data['key'].class).to eq(Float)
100
100
  end
101
101
 
102
102
  it 'parse negative float as float type' do
103
103
  data = Logfmt.parse('key=-0.9934')
104
- expect(data["key"]).to eq(-0.9934)
105
- expect(data["key"].class).to eq(Float)
104
+ expect(data['key']).to eq(-0.9934)
105
+ expect(data['key'].class).to eq(Float)
106
106
  end
107
107
 
108
108
  it 'parse exponential float as float type' do
109
109
  data = Logfmt.parse('key=2.342342342342344e+18')
110
- expect(data["key"]).to eq(2.342342342342344e+18)
111
- expect(data["key"].class).to eq(Float)
110
+ expect(data['key']).to eq(2.342342342342344e+18)
111
+ expect(data['key'].class).to eq(Float)
112
112
  end
113
113
 
114
114
  it 'parse quoted integer as string type' do
115
115
  data = Logfmt.parse('key="234"')
116
- expect(data["key"].class).to eq(String)
116
+ expect(data['key'].class).to eq(String)
117
117
  end
118
118
 
119
119
  it 'parse quoted float as string type' do
120
120
  data = Logfmt.parse('key="3.14"')
121
- expect(data["key"].class).to eq(String)
121
+ expect(data['key'].class).to eq(String)
122
122
  end
123
123
 
124
124
  it 'parse IP address as string type' do
125
125
  data = Logfmt.parse('key=10.10.10.1')
126
- expect(data["key"].class).to eq(String)
126
+ expect(data['key'].class).to eq(String)
127
127
  end
128
128
 
129
129
  it 'parse last as integer type' do
130
130
  data = Logfmt.parse('key1=4 key2=9')
131
- expect(data["key1"]).to eq(4)
132
- expect(data["key2"]).to eq(9)
131
+ expect(data['key1']).to eq(4)
132
+ expect(data['key2']).to eq(9)
133
133
  end
134
134
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logfmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timothée Peignier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-28 00:00:00.000000000 Z
11
+ date: 2014-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -85,4 +85,3 @@ summary: Parse logfmt messages.
85
85
  test_files:
86
86
  - spec/logfmt/parser_spec.rb
87
87
  - spec/spec_helper.rb
88
- has_rdoc: