louis 2.0.2 → 2.0.3

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