ridler 0.1.1.alpha → 0.1.1.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YzJhZDczNDY2ZTcxNjQxOTJkNTIyMTJjY2IyZGUyMTJhZmUyOWI4Ng==
5
+ data.tar.gz: !binary |-
6
+ NDBmODU4ZjlkYmFjOWMzY2ZiMTljNjkzY2FkMGM1NTI4YWE1YTM4OQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NTU0ZTQ3ZGRmNThlNmUyMjMyNjRhMGZiMzYwNTU2ZjlmNmFkMGMzZWYzYjU1
10
+ N2Y0ZTYyOGNkMWI4NjBlYTkxNTg1OTkxMjFmNDgzM2UwOGY4ZGFlMTU1Y2Ux
11
+ NWE1NGM2NDkwY2I3NzExOThhZTVjOTA2ZTU0YzQ4MDQ3ZWExZGE=
12
+ data.tar.gz: !binary |-
13
+ OWFiZDQ0ZWZkZThhZGIyMGNjYjAwNmE1YjFiM2Y4YjJkNGViNWMyNzIxZDVj
14
+ ODYwMDJiZmY3OGE3MDBhN2FjMjNkYTdiNTc0YWM2NjYwNmE1MDQyZTI0NDU2
15
+ MWNlNTdlMmE3MjYzNGZiY2YwNmE3Nzc3ZjMyMDM4YTBkOGE3ZjE=
data/lib/ridler/reader.rb CHANGED
@@ -6,12 +6,18 @@ class Ridler::Reader
6
6
  @redis = Redis.new(:host => host, :port => port)
7
7
  end
8
8
 
9
- def search( key )
10
- result = nil
9
+ def search( *keys )
10
+ result = []
11
11
 
12
- store = @redis.get(key)
12
+ keys.each do |key|
13
+ if @redis.exists(key)
14
+ data = JSON.parse(@redis.get(key))
13
15
 
14
- result = JSON.parse(store)["log"].values.sort if store
16
+ data.each do |item|
17
+ result.push(item[1])
18
+ end
19
+ end
20
+ end
15
21
 
16
22
  result
17
23
  end
data/lib/ridler/writer.rb CHANGED
@@ -1,6 +1,7 @@
1
+ require 'date'
1
2
  require 'ridler'
2
3
 
3
- Struct.new("Entry",:store_key, :sort_key, :param_name, :param_value)
4
+ Struct.new("Entry",:store_key, :timestamp, :param_name, :param_value)
4
5
 
5
6
  class Ridler::Writer
6
7
  @@redis = nil
@@ -24,7 +25,8 @@ class Ridler::Writer
24
25
  rip = /^(.+)\s[-a-z]+\sdhcpd:\s(([A-Z]+)\sfrom\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+)$/
25
26
  data = rip.match( line ) unless data
26
27
 
27
- result = Struct::Entry.new(data[4], data[1], data[3], data[2]) if data
28
+ timestamp = DateTime.parse(data[1]).to_time.to_i
29
+ result = Struct::Entry.new(data[4], timestamp, data[3], data[2]) if data
28
30
 
29
31
  result
30
32
  end
@@ -38,14 +40,11 @@ class Ridler::Writer
38
40
 
39
41
  if store
40
42
  store = JSON.parse(store)
41
- store["count"] += 1
42
43
  else
43
44
  store = Hash.new
44
- store["log"] = Hash.new
45
- store["count"] = 0
46
45
  end
47
46
 
48
- store["log"][data[:param_name]] = "%s %s" % [data[:sort_key], data[:param_value]]
47
+ store[data[:param_name]] = {timestamp: data[:timestamp], log: data[:param_value]}
49
48
 
50
49
  @@redis.set(store_key,store.to_json)
51
50
  end
data/lib/ridler.rb CHANGED
@@ -2,5 +2,5 @@ require 'redis'
2
2
  require 'json'
3
3
 
4
4
  module Ridler
5
- VERSION = '0.1.1.alpha'
5
+ VERSION = '0.1.1.beta'
6
6
  end
data/test/test_ridler.rb CHANGED
@@ -20,11 +20,15 @@ class RidlerTest < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  def test_search_mac
23
- assert_not_nil @reader.search("14:da:e9:96:26:3b")
23
+ assert_equal 2, @reader.search("14:da:e9:96:26:3b").count
24
24
  end
25
25
 
26
26
  def test_search_ip
27
- assert_not_nil @reader.search("10.1.114.210")
27
+ assert_equal 1, @reader.search("10.1.114.210").count
28
+ end
29
+
30
+ def test_search_mac_ip
31
+ assert_equal 3, @reader.search("14:da:e9:96:26:3b","10.1.114.210").count
28
32
  end
29
33
 
30
34
  def teardown
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.alpha
5
- prerelease: 6
4
+ version: 0.1.1.beta
6
5
  platform: ruby
7
6
  authors:
8
7
  - Adam Kubica
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-06 00:00:00.000000000 Z
11
+ date: 2015-04-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: redis
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -51,38 +46,37 @@ executables:
51
46
  extensions: []
52
47
  extra_rdoc_files: []
53
48
  files:
54
- - Rakefile
55
49
  - LICENSE
50
+ - Rakefile
56
51
  - bin/ridler
52
+ - lib/ridler.rb
57
53
  - lib/ridler/reader.rb
58
54
  - lib/ridler/writer.rb
59
- - lib/ridler.rb
60
55
  - test/data/rsyslog_isc-dhcpd.log
61
56
  - test/test_ridler.rb
62
57
  homepage: http://github.org/caffecoder/ridler
63
58
  licenses:
64
59
  - MIT
60
+ metadata: {}
65
61
  post_install_message:
66
62
  rdoc_options: []
67
63
  require_paths:
68
64
  - lib
69
65
  required_ruby_version: !ruby/object:Gem::Requirement
70
- none: false
71
66
  requirements:
72
67
  - - ! '>='
73
68
  - !ruby/object:Gem::Version
74
69
  version: 1.9.2
75
70
  required_rubygems_version: !ruby/object:Gem::Requirement
76
- none: false
77
71
  requirements:
78
72
  - - ! '>'
79
73
  - !ruby/object:Gem::Version
80
74
  version: 1.3.1
81
75
  requirements: []
82
76
  rubyforge_project:
83
- rubygems_version: 1.8.25
77
+ rubygems_version: 2.4.6
84
78
  signing_key:
85
- specification_version: 3
79
+ specification_version: 4
86
80
  summary: Redis ISC DHCP Log Entry Resolver
87
81
  test_files:
88
82
  - test/data/rsyslog_isc-dhcpd.log