cef 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a5c18c726620c28b573ae7eb85cc84052f4039a7
4
+ data.tar.gz: 23f318734a39e5f1e4638efaba8b6baa36d755cf
5
+ SHA512:
6
+ metadata.gz: 0ff31a6a533775eba16570a6637154e3a584152bcb46ff67004f1b0d408faa26648351b8597b0dd47972f66c7b62e8787c745094f5fc037357db05d24305f7ec
7
+ data.tar.gz: b06eaa392dc7ed43dd9b2849ac7bd1de151665c225ba69e568f50e291709ffd41532eaa4203699918b43c73b165dcfd467efbf6bf6d2004fb016ed9a3e4bc509
@@ -0,0 +1,18 @@
1
+ .env
2
+ *.gem
3
+ *.rbc
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color
1
+ --color --format documentation --backtrace --warnings -I lib -r ./lib/cef.rb
data/Gemfile CHANGED
@@ -1,13 +1,2 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
-
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "rspec", "~> 2.3.0"
10
- gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
12
- gem "rcov", ">= 0"
13
- end
1
+ source "https://rubygems.org"
2
+ gemspec
@@ -0,0 +1,15 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :bundler do
5
+ watch('Gemfile')
6
+ # Uncomment next line if your Gemfile contains the `gemspec' command.
7
+ watch(/^.+\.gemspec/)
8
+ end
9
+
10
+ guard :rspec do
11
+ watch(%r{^spec/.+_spec\.rb$})
12
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
13
+ watch('spec/spec_helper.rb') { "spec" }
14
+ end
15
+
data/Rakefile CHANGED
@@ -1,54 +1 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "cef"
16
- gem.homepage = "http://github.com/ryanbreed/cef"
17
- gem.license = "MIT"
18
- gem.summary = %Q{ CEF Generation Library and Client }
19
- gem.description = %Q{ format/send CEF logs via API+syslog or client program }
20
- gem.email = "opensource@breed.org"
21
- gem.authors = ["Ryan Breed"]
22
- gem.add_development_dependency 'rspec', '~> 2.3.0'
23
- gem.files.include('VERSION')
24
- end
25
- Jeweler::RubygemsDotOrgTasks.new
26
-
27
- require 'rspec/core'
28
- require 'rspec/core/rake_task'
29
- RSpec::Core::RakeTask.new(:spec) do |spec|
30
- spec.pattern = FileList['spec/**/*_spec.rb']
31
- end
32
-
33
- RSpec::Core::RakeTask.new(:rcov) do |spec|
34
- spec.pattern = 'spec/**/*_spec.rb'
35
- spec.rcov = true
36
- end
37
-
38
- task :default => :spec
39
-
40
- require 'rake/rdoctask'
41
- Rake::RDocTask.new do |rdoc|
42
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
43
-
44
- rdoc.rdoc_dir = 'rdoc'
45
- rdoc.title = "cef #{version}"
46
- rdoc.rdoc_files.include('README*')
47
- rdoc.rdoc_files.include('lib/**/*.rb')
48
- end
49
-
50
- task 'clean' do |t|
51
- FileUtils.rm_f(Dir.glob(('{coverage,pkg}/*')))
52
- FileUtils.rm_f(Dir.glob(('Gemfile.lock')))
53
- %w{ coverage pkg }.each {|d| Dir.rmdir(d) if File.exists?(d)}
54
- end
1
+ require 'bundler/gem_tasks'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.1
@@ -1,74 +1,37 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
5
2
 
6
- Gem::Specification.new do |s|
7
- s.name = %q{cef}
8
- s.version = "0.8.0"
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'cef/version'
9
6
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ryan Breed"]
12
- s.date = %q{2011-03-30}
13
- s.default_executable = %q{cef_sender}
14
- s.description = %q{ format/send CEF logs via API+syslog or client program }
15
- s.email = %q{opensource@breed.org}
16
- s.executables = ["cef_sender"]
17
- s.extra_rdoc_files = [
18
- "LICENSE.txt",
19
- "README.rdoc"
20
- ]
21
- s.files = [
22
- ".document",
23
- ".rspec",
24
- "Gemfile",
25
- "LICENSE.txt",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "bin/cef_sender",
30
- "cef.gemspec",
31
- "lib/cef.rb",
32
- "lib/cef/constants.rb",
33
- "lib/cef/event.rb",
34
- "lib/cef/file_logger.rb",
35
- "lib/cef/parser.rb",
36
- "lib/cef/sender.rb",
37
- "spec/cef_spec.rb",
38
- "spec/spec_helper.rb"
39
- ]
40
- s.homepage = %q{http://github.com/ryanbreed/cef}
41
- s.licenses = ["MIT"]
42
- s.require_paths = ["lib"]
43
- s.rubygems_version = %q{1.5.2}
44
- s.summary = %q{CEF Generation Library and Client}
45
- s.test_files = [
46
- "spec/cef_spec.rb",
47
- "spec/spec_helper.rb"
48
- ]
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "cef"
9
+ spec.version = CEF::VERSION
49
10
 
50
- if s.respond_to? :specification_version then
51
- s.specification_version = 3
11
+ spec.authors = ["Ryan Breed"]
12
+ spec.date = "2011-03-30"
13
+ spec.description = %q{ format/send CEF logs via API+syslog or client program }
14
+ spec.summary = %q{ CEF Generation Library and Client }
15
+ spec.email = %q{ opensource@breed.org }
52
16
 
53
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
56
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
57
- s.add_development_dependency(%q<rcov>, [">= 0"])
58
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
59
- else
60
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
61
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
63
- s.add_dependency(%q<rcov>, [">= 0"])
64
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
65
- end
66
- else
67
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
68
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
69
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
70
- s.add_dependency(%q<rcov>, [">= 0"])
71
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
72
- end
17
+ spec.extra_rdoc_files = [ "LICENSE.txt", "README.rdoc" ]
18
+ spec.homepage = "http://github.com/ryanbreed/cef"
19
+ spec.licenses = ["MIT"]
20
+
21
+ spec.files = `git ls-files`.split($/)
22
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
+ spec.require_paths = ["lib"]
25
+
26
+ spec.require_paths = ["lib"]
27
+
28
+ spec.add_dependency "chronic"
29
+ spec.add_development_dependency "rspec"
30
+ spec.add_development_dependency "bundler"
31
+ spec.add_development_dependency "simplecov"
32
+ spec.add_development_dependency "pry"
33
+ spec.add_development_dependency "guard"
34
+ spec.add_development_dependency "guard-rspec"
35
+ spec.add_development_dependency "guard-bundler"
73
36
  end
74
37
 
data/lib/cef.rb CHANGED
@@ -1,10 +1,11 @@
1
+ require 'chronic'
2
+ require 'socket'
3
+ require 'cef/version'
4
+ require 'cef/constants'
5
+ require 'cef/constants'
6
+ require 'cef/event'
7
+ require 'cef/sender'
8
+ require 'cef/file_logger'
9
+
1
10
  module CEF
2
- require 'socket'
3
- require 'parsedate'
4
- require 'cef/constants'
5
- require 'cef/event'
6
- require 'cef/sender'
7
- require 'cef/file_logger'
8
11
  end
9
-
10
-
@@ -1,17 +1,18 @@
1
1
  module CEF
2
- PREFIX_FORMAT="<%d>%s %s CEF:0|%s|%s"
3
- VERSION=File.read(File.join(File.expand_path(File.dirname(__FILE__)),'..','..','VERSION'))
2
+ SEVERITY_LOW="1"
3
+
4
+ LOG_FORMAT="<%d>%s %s CEF:0|%s|%s"
4
5
  LOG_TIME_FORMAT="%b %d %Y %H:%M:%S"
5
6
 
6
7
  # CEF Dictionary
7
8
  # CEF Prefix attributes
8
9
  PREFIX_ATTRIBUTES = {
9
10
  :deviceVendor => "deviceVendor",
10
- :deviceVersion => "deviceVersion",
11
11
  :deviceProduct => "deviceProduct",
12
+ :deviceVersion => "deviceVersion",
13
+ :deviceEventClassId => "deviceEventClassId",
12
14
  :name => "name",
13
- :deviceSeverity => "deviceSeverity",
14
- :deviceEventClassId => "deviceEventClassId"
15
+ :deviceSeverity => "deviceSeverity"
15
16
  }
16
17
 
17
18
  # these are the basic extension attributes. implementing others is as
@@ -1,6 +1,6 @@
1
1
  module CEF
2
2
  class Event
3
- attr_accessor :my_hostname, :syslog_pri, :event_time
3
+ attr_accessor :syslog_pri, :event_time, :my_hostname
4
4
  # set up accessors for all of the CEF event attributes. ruby meta magic.
5
5
  CEF::ATTRIBUTES.each do |k,v|
6
6
  self.instance_eval do
@@ -14,33 +14,36 @@ module CEF
14
14
 
15
15
  # so we can CEF::Event.new(:foo=>"bar")
16
16
  def initialize( *params )
17
- Hash[*params].each { |k,v| self.send("%s="%k,v) }
18
-
19
- @my_hostname ||= Socket::gethostname
17
+ @event_time = Time.new
18
+ @deviceVendor = "breed.org"
19
+ @deviceProduct = "CEF"
20
+ @deviceVersion = CEF::VERSION
21
+ @deviceEventClassId = "0:event"
22
+ @deviceSeverity = CEF::SEVERITY_LOW
23
+ @name = "unnamed event"
20
24
  # used to avoid requiring syslog.h on windoze
21
25
  #syslog_pri= Syslog::LOG_LOCAL0 | Syslog::LOG_NOTICE
22
- @syslog_pri ||= 131
26
+ @syslog_pri = 131
27
+ @my_hostname = Socket::gethostname
23
28
  @other_attrs={}
24
29
  @additional={}
30
+ Hash[*params].each { |k,v| self.send("%s="%k,v) }
31
+ yield self if block_given?
32
+ self
25
33
  end
26
34
 
27
35
  # returns a cef formatted string
28
- def format_cef
29
- log_time=nil
30
- if event_time.nil?
31
- log_time=Time.new.strftime(CEF::LOG_TIME_FORMAT)
32
- else
33
- log_time=event_time.strftime(CEF::LOG_TIME_FORMAT)
34
- end
35
-
36
- cef_message=CEF::PREFIX_FORMAT % [
36
+ def to_s
37
+ log_time=event_time.strftime(CEF::LOG_TIME_FORMAT)
38
+
39
+ cef_message=sprintf(
40
+ CEF::LOG_FORMAT,
37
41
  syslog_pri.to_s,
38
- my_hostname,
39
42
  log_time,
43
+ my_hostname,
40
44
  format_prefix,
41
45
  format_extension
42
- ]
43
- cef_message
46
+ )
44
47
  end
45
48
 
46
49
  # used for non-schema fields
@@ -51,83 +54,101 @@ module CEF
51
54
  @additional[k]
52
55
  end
53
56
 
54
- private
57
+ #private
55
58
  # make a guess as to how the time was set. parse strings and convert
56
59
  # them to epoch milliseconds, or leave it alone if it looks like a number
57
60
  # bigger than epoch milliseconds when i wrote this.
58
61
  def time_convert(val)
59
- converted=nil
60
- #puts "converting time for #{val.class.to_s}/#{val}"
61
- case val.class.to_s
62
- when "String"
63
- begin
62
+
63
+ converted=case val
64
+ when String
65
+ if val.match(%r{\A[0-9]+\Z})
64
66
  converted=val.to_i
65
- rescue
66
- res=ParseDate.parsedate(val)
67
- converted=Time.local(*res).to_i * 1000
67
+ else
68
+ res=Chronic.parse(val)
69
+ converted=Time.at(res).to_i * 1000
68
70
  end
69
- when "Integer","Bignum"
71
+ when Integer,Bignum
70
72
  if val < 1232589621000 #Wed Jan 21 20:00:21 -0600 2009
71
- converted=val * 1000
73
+ val * 1000
72
74
  else
73
- converted=val
75
+ val
74
76
  end
75
77
  end
76
- converted
78
+
77
79
  end
78
80
 
79
81
  # escape only pipes and backslashes in the prefix. you bet your sweet
80
82
  # ass there's a lot of backslashes in the substitution. you can thank
81
83
  # the three levels of lexical analysis/substitution in the ruby interpreter
82
84
  # for that.
83
- def prefix_escape(val)
84
- val.gsub(/(\||\\)/,'\\\\\&')
85
+
86
+ def escape_prefix_value(val)
87
+ escapes={
88
+ %r{(\||\\)} => '\\\\\&'
89
+ }
90
+ escapes.reduce(val) do|memo,replace|
91
+ memo=memo.gsub(*replace)
92
+ end
85
93
  end
86
94
 
87
95
  # only equals signs need to be escaped in the extension. i think.
88
96
  # TODO: something in the spec about \n and some others.
89
- def extension_escape(val)
90
- val.gsub(/=/,'\=').gsub(/\n/,' ').gsub(/\\/,'\\')
97
+ def escape_extension_value(val)
98
+ escapes = {
99
+ %r{=} => '\=',
100
+ %r{\n} => ' ',
101
+ %r{\\} => '\\'
102
+ }
103
+ escapes.reduce(val) do |memo,replace|
104
+ memo=memo.gsub(*replace)
105
+ end
91
106
  end
92
107
 
93
108
  # returns a pipe-delimeted list of prefix attributes
94
109
  def format_prefix
95
- vendor= self.deviceVendor || "Breed"
96
- product= self.deviceProduct || "CEF Sender"
97
- version= self.deviceVersion || CEF::VERSION
98
- declid= self.deviceEventClassId || "generic:0"
99
- name= self.name || "Generic Event"
100
- sev= self.deviceSeverity || "1"
101
- cef_prefix="%s|%s|%s|%s|%s|%s" % [
102
- prefix_escape(vendor),
103
- prefix_escape(product),
104
- prefix_escape(version),
105
- prefix_escape(declid),
106
- prefix_escape(name),
107
- prefix_escape(sev),
108
- ]
110
+ values = CEF::PREFIX_ATTRIBUTES.keys.map {|k| self.send(k) }
111
+ escaped = values.map do |value|
112
+ escape_prefix_value(value)
113
+ end
114
+ escaped.join('|')
115
+
109
116
  end
110
117
 
111
118
  # returns a space-delimeted list of attribute=value pairs for all optionals
112
119
  def format_extension
113
- avpairs=[]
114
- CEF::EXTENSION_ATTRIBUTES.each do |attribute,shortname|
115
- unless self.send(attribute).nil?
116
- avpairs.push(
117
- "%s=%s" % [ shortname, extension_escape(self.send(attribute)) ]
118
- )
119
- end
120
+
121
+ extensions=CEF::EXTENSION_ATTRIBUTES.keys.map do |meth|
122
+ value=self.send(meth)
123
+ next if value.nil?
124
+ shortname=CEF::EXTENSION_ATTRIBUTES[meth]
125
+ [shortname,value].join("=")
120
126
  end
121
127
 
122
128
  # make sure time comes out as milliseconds since epoch
123
- CEF::TIME_ATTRIBUTES.each do |attribute,shortname|
124
- unless self.send(attribute).nil?
125
- avpairs.push(
126
- "%s=%s" % [ shortname, time_convert(self.send(attribute)) ]
127
- )
128
- end
129
+ times=CEF::TIME_ATTRIBUTES.keys.map do |meth|
130
+ value=self.send(meth)
131
+ next if value.nil?
132
+ shortname = CEF::TIME_ATTRIBUTES[meth]
133
+ [shortname,value].join("=")
129
134
  end
130
- avpairs.join(" ")
135
+ (extensions + times).compact.join(" ")
131
136
  end
132
137
  end
133
- end
138
+ end
139
+
140
+ # vendor= self.deviceVendor || "Breed"
141
+ # product= self.deviceProduct || "CEF Sender"
142
+ # version= self.deviceVersion || CEF::VERSION
143
+ # declid= self.deviceEventClassId || "generic:0"
144
+ # name= self.name || "Generic Event"
145
+ # sev= self.deviceSeverity || "1"
146
+ # %w{ deviceVendor deviceProduct deviceVersion deviceEvent}
147
+ # cef_prefix="%s|%s|%s|%s|%s|%s" % [
148
+ # prefix_escape(vendor),
149
+ # prefix_escape(product),
150
+ # prefix_escape(version),
151
+ # prefix_escape(declid),
152
+ # prefix_escape(name),
153
+ # prefix_escape(sev),
154
+ # ]
@@ -0,0 +1,3 @@
1
+ module CEF
2
+ VERSION = "0.9.0"
3
+ end
@@ -0,0 +1,32 @@
1
+ #event_spec.rb
2
+ require 'spec_helper'
3
+ describe CEF::Event do
4
+ let(:formatted_time) { "Apr 25 1975 12:00:00" }
5
+ let(:time) { Chronic.parse(formatted_time) }
6
+
7
+ context "formatting the syslog message" do
8
+ let(:formatted) { "<131>Apr 25 1975 12:00:00 cefspec CEF:0|breed.org|CEF|#{CEF::VERSION}|0:event|unnamed event|1|" }
9
+ let(:escaped) { "<131>Apr 25 1975 12:00:00 cefspec CEF:0|bre\\|ed|CEF|#{CEF::VERSION}|0:event|unnamed event|1|" }
10
+ end
11
+ context "formatting the CEF prefix" do
12
+ let(:formatted) {"breed.org|CEF|#{CEF::VERSION}|0:event|unnamed event|1"}
13
+ let(:escaped) {"bre\\|ed|CEF|#{CEF::VERSION}|0:event|unnamed event|1"}
14
+ describe "#format_cef" do
15
+ it "formats prefix values" do
16
+ event=CEF::Event.new(
17
+ event_time: time,
18
+ my_hostname: "cefspec"
19
+ )
20
+ expect(event.format_prefix).to eq(formatted)
21
+ end
22
+ it "escapes pipes in the prefix" do
23
+ event=CEF::Event.new(
24
+ event_time: time,
25
+ my_hostname: "cefspec",
26
+ deviceVendor: "bre|ed"
27
+ )
28
+ expect(event.format_prefix).to eq(escaped)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe "CEF Event Formatter" do
4
+ describe "Cef Extension" do
5
+ it "should output an extension"
6
+ it "should escape newlines"
7
+ it "should escape equal signs"
8
+ it "should format time attributes"
9
+ end
10
+ end
11
+
12
+ describe "UDPSender" do
13
+
14
+ end
@@ -1,48 +1,8 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
1
  require 'cef'
5
2
 
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
-
10
3
  RSpec.configure do |config|
11
-
12
- end
13
-
14
- def test_prefix_vals
15
- test_prefix_vals={
16
- :deviceVendor => "breed",
17
- :deviceProduct => "CEF Sender",
18
- :deviceVersion => "0.1",
19
- :deviceEventClassId => "0:debug",
20
- :name => "test",
21
- :deviceSeverity => "1"
22
- }
23
- end
24
-
25
- def test_prefix_escape_vals
26
- test_prefix_escape_vals={
27
- :deviceVendor => "bre|ed",
28
- :deviceProduct => "CEF Sender",
29
- :deviceVersion => "0.1",
30
- :deviceEventClassId => "0:debug",
31
- :name => "test",
32
- :deviceSeverity => "1"
33
- }
34
- end
35
-
36
- def test_extension_vals
37
- test_extension_vals={
38
- :sourceAddress => "192.168.1.1",
39
- :destinationAddress => "192.168.1.2"
40
- }
41
- end
42
-
43
- def test_prefix_string
44
- "breed|CEF Sender|0.1|0:debug|test|1"
45
- end
46
- def test_prefix_escape_string
47
- "bre\\|ed|CEF Sender|0.1|0:debug|test|1"
4
+ config.treat_symbols_as_metadata_keys_with_true_values = true
5
+ config.run_all_when_everything_filtered = true
6
+ config.filter_run :focus
7
+ config.order = 'random'
48
8
  end
metadata CHANGED
@@ -1,114 +1,141 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cef
3
- version: !ruby/object:Gem::Version
4
- hash: 63
5
- prerelease:
6
- segments:
7
- - 0
8
- - 8
9
- - 0
10
- version: 0.8.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Ryan Breed
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2011-03-30 00:00:00 -05:00
19
- default_executable: cef_sender
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: rspec
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 2
31
- - 3
32
- - 0
33
- version: 2.3.0
11
+ date: 2011-03-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: chronic
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
34
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
35
34
  type: :development
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
38
42
  name: bundler
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 23
45
- segments:
46
- - 1
47
- - 0
48
- - 0
49
- version: 1.0.0
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
50
49
  prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
51
62
  type: :development
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: jeweler
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 7
61
- segments:
62
- - 1
63
- - 5
64
- - 2
65
- version: 1.5.2
66
63
  prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
67
76
  type: :development
68
- requirement: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rcov
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- version: "0"
80
77
  prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
81
104
  type: :development
82
- requirement: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
85
- version_requirements: &id005 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- hash: 3
91
- segments:
92
- - 2
93
- - 3
94
- - 0
95
- version: 2.3.0
96
105
  prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
97
118
  type: :development
98
- requirement: *id005
99
- description: " format/send CEF logs via API+syslog or client program "
100
- email: opensource@breed.org
101
- executables:
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: ' format/send CEF logs via API+syslog or client program '
126
+ email: ' opensource@breed.org '
127
+ executables:
102
128
  - cef_sender
103
129
  extensions: []
104
-
105
- extra_rdoc_files:
130
+ extra_rdoc_files:
106
131
  - LICENSE.txt
107
132
  - README.rdoc
108
- files:
133
+ files:
109
134
  - .document
135
+ - .gitignore
110
136
  - .rspec
111
137
  - Gemfile
138
+ - Guardfile
112
139
  - LICENSE.txt
113
140
  - README.rdoc
114
141
  - Rakefile
@@ -121,42 +148,35 @@ files:
121
148
  - lib/cef/file_logger.rb
122
149
  - lib/cef/parser.rb
123
150
  - lib/cef/sender.rb
124
- - spec/cef_spec.rb
151
+ - lib/cef/version.rb
152
+ - spec/lib/cef/event_spec.rb
153
+ - spec/lib/cef_spec.rb
125
154
  - spec/spec_helper.rb
126
- has_rdoc: true
127
155
  homepage: http://github.com/ryanbreed/cef
128
- licenses:
156
+ licenses:
129
157
  - MIT
158
+ metadata: {}
130
159
  post_install_message:
131
160
  rdoc_options: []
132
-
133
- require_paths:
161
+ require_paths:
134
162
  - lib
135
- required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- hash: 3
141
- segments:
142
- - 0
143
- version: "0"
144
- required_rubygems_version: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- hash: 3
150
- segments:
151
- - 0
152
- version: "0"
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
153
173
  requirements: []
154
-
155
174
  rubyforge_project:
156
- rubygems_version: 1.5.2
175
+ rubygems_version: 2.0.14
157
176
  signing_key:
158
- specification_version: 3
177
+ specification_version: 4
159
178
  summary: CEF Generation Library and Client
160
- test_files:
161
- - spec/cef_spec.rb
179
+ test_files:
180
+ - spec/lib/cef/event_spec.rb
181
+ - spec/lib/cef_spec.rb
162
182
  - spec/spec_helper.rb
@@ -1,36 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "CEF Event Formatter" do
4
- describe "CEF Preamble" do
5
- it "should output a preamble" do
6
- prefix_vals=test_prefix_vals
7
- t=Time.new
8
- e=CEF::Event.new
9
- e.event_time=t
10
- prefix_vals.each {|k,v| e.send("%s="%k,v) }
11
- preformatted=CEF::PREFIX_FORMAT % [ 131, Socket.gethostname, t.strftime(CEF::LOG_TIME_FORMAT), test_prefix_string, ""]
12
- formatted=e.format_cef
13
- preformatted.should == formatted
14
- end
15
- it "should escape pipes in the prefix" do
16
- prefix_vals=test_prefix_escape_vals
17
- t=Time.new
18
- e=CEF::Event.new
19
- e.event_time=t
20
- prefix_vals.each {|k,v| e.send("%s="%k,v) }
21
- preformatted=CEF::PREFIX_FORMAT % [ 131, Socket.gethostname, t.strftime(CEF::LOG_TIME_FORMAT), test_prefix_escape_string, ""]
22
- formatted=e.format_cef
23
- preformatted.should == formatted
24
- end
25
- end
26
- describe "Cef Extension" do
27
- it "should output an extension"
28
- it "should escape newlines"
29
- it "should escape equal signs"
30
- it "should format time attributes"
31
- end
32
- end
33
-
34
- describe "UDPSender" do
35
-
36
- end