louis 2.0.2 → 2.0.3

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: adaad7bd50934cb9c07640c6337cd7ee05d3482f
4
- data.tar.gz: 28014330bbdde67d3aae4fabd5eff3580ee21d6b
3
+ metadata.gz: 599752611cd04820508d6abd1882363d761fd72b
4
+ data.tar.gz: 821d6e0521c95e8d78642c6706b3380755785b42
5
5
  SHA512:
6
- metadata.gz: 941bd810af19878ceb73521ba89592f4089b11832675a48aeac97cbd95f3c3aa0350ad8c8022754eb8856c71a39ccef114d596d66fb9a4b8f2c56822a8dacfe4
7
- data.tar.gz: de5e80da9bea9b268ead29368866ca43fbcba49b4df353d146629f1538068d14b35eb3fe581755217d88ae21799f5a0af70c64202ba878f75881bfd5b77510f9
6
+ metadata.gz: 8b08cf751a853525381aa1cf6ed285b871ecf37ba180ef49310ba83640def6561bc9f244fe15e852520dc4363d2be1f7a1695206846411cbda733d8574a18602
7
+ data.tar.gz: 82ea902ffabc8047ee7f73a469dc86858cdecbcf84a812e109f2493d9d366aff6a25456f9e946bbb550e87c0ee08632b49f5674533fd78da20c169abe05d14da
data/lib/louis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Louis
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
data/lib/louis.rb CHANGED
@@ -32,19 +32,16 @@ module Louis
32
32
  # @param [String] mac
33
33
  # @return [String]
34
34
  def self.lookup(mac)
35
- match = nil
36
-
37
- mask_keys.each do |mask|
38
- prefix = mac_to_num(mac) & IGNORED_BITS_MASK & calculate_mask(nil, mask)
39
- match = lookup_table[mask.to_s][prefix.to_s]
40
-
41
- break if match
42
- end
43
-
44
- if match
45
- {'long_vendor' => match['l'], 'short_vendor' => match['s']}
46
- else
47
- {'long_vendor' => 'Unknown', 'short_vendor' => 'Unknown'}
35
+ encoded_mac = mac_to_num(mac) & IGNORED_BITS_MASK
36
+
37
+ lookup_table.each do |mask, table|
38
+ prefix = (encoded_mac & calculate_mask(nil, mask)).to_s
39
+ if table.include?(prefix)
40
+ vendor = table[prefix]
41
+ return {'long_vendor' => vendor['l'], 'short_vendor' => vendor['s']}
42
+ end
48
43
  end
44
+
45
+ {'long_vendor' => 'Unknown', 'short_vendor' => 'Unknown'}
49
46
  end
50
47
  end
data/spec/louis_spec.rb CHANGED
@@ -5,11 +5,11 @@ RSpec.describe Louis do
5
5
  expect(Louis::VERSION).not_to be nil
6
6
  end
7
7
 
8
- it "it should have it's source data file" do
8
+ it "it should have its source data file" do
9
9
  expect(File.readable?(Louis::ORIGINAL_OUI_FILE)).to be(true)
10
10
  end
11
11
 
12
- it "it should have it's parsed data file" do
12
+ it "it should have its parsed data file" do
13
13
  expect(File.readable?(Louis::PARSED_DATA_FILE)).to be(true)
14
14
  end
15
15
 
@@ -74,4 +74,10 @@ RSpec.describe Louis do
74
74
  expect(Louis.lookup(unknown_mac)['long_vendor']).to eq('Unknown')
75
75
  end
76
76
  end
77
+
78
+ describe '#mask_keys' do
79
+ it 'should return a list of integers: [48, 45, 44, 40, 36, 32, 28, 25, 24, 16]' do
80
+ expect(Louis.mask_keys).to eq([48, 45, 44, 40, 36, 32, 28, 25, 24, 16])
81
+ end
82
+ end
77
83
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: louis
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Stelfox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-07 00:00:00.000000000 Z
11
+ date: 2016-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  requirements: []
171
171
  rubyforge_project:
172
- rubygems_version: 2.4.3
172
+ rubygems_version: 2.5.1
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: Library for looking up the the vendor associated with a MAC address.