ridler 0.1.1.alpha → 0.1.1.beta

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 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