AutoNic 1.0.0

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZWRkNTgxZmYwMWIzOWJmMmViMzNkY2QwZjJkYzNhM2M5YzkxNDg5Mg==
5
+ data.tar.gz: !binary |-
6
+ YzlkYTRhOTAxMzU3MDYwMzBhMTYxYzI4M2RiMzUwNzMxODUxNTg5Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NjU0ZmY0Mjk5NTc2MzRiNGVjYjg4ZDBhYjI0MjBjODY3YjhhZjYwZTZjZTBj
10
+ MGYxNjdjNGQyODI1ODk1OTdkZTNlZDllODU2M2Q2ZjYxMjk0MTg5ZGQzMjJi
11
+ MTZlMDA3OTdjODY3MGIyMjVjNTQ3M2IyN2VkMzRlNGFlN2M2OTY=
12
+ data.tar.gz: !binary |-
13
+ MzQ4YzY3MTUzYzFhNzk5ZTA3NmNiOGViNDA5ZTJkN2JiMjgzYjJkZjU0ZTkw
14
+ ZWNjMDZkZTA5OTNhY2UyM2JlNWM3OWIwYTMwZDI0NTk3OWZiMmM5YWI5NzUw
15
+ YTNkODQ4MWU4NmUwMmMzMThhZjgwZGQ3MTcwYzJkNTA3ZTE5YWM=
@@ -0,0 +1,2 @@
1
+ tmp/
2
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'macaddr'
4
+
5
+ group :test do
6
+ gem 'rspec'
7
+ gem 'guard-rspec'
8
+ end
@@ -0,0 +1,52 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ coderay (1.0.9)
5
+ diff-lcs (1.2.4)
6
+ ffi (1.8.1)
7
+ formatador (0.2.4)
8
+ guard (1.8.0)
9
+ formatador (>= 0.2.4)
10
+ listen (>= 1.0.0)
11
+ lumberjack (>= 1.0.2)
12
+ pry (>= 0.9.10)
13
+ thor (>= 0.14.6)
14
+ guard-rspec (3.0.0)
15
+ guard (>= 1.8)
16
+ rspec (~> 2.13)
17
+ listen (1.0.3)
18
+ rb-fsevent (>= 0.9.3)
19
+ rb-inotify (>= 0.9)
20
+ rb-kqueue (>= 0.2)
21
+ lumberjack (1.0.3)
22
+ macaddr (1.6.1)
23
+ systemu (~> 2.5.0)
24
+ method_source (0.8.1)
25
+ pry (0.9.12.2)
26
+ coderay (~> 1.0.5)
27
+ method_source (~> 0.8)
28
+ slop (~> 3.4)
29
+ rb-fsevent (0.9.3)
30
+ rb-inotify (0.9.0)
31
+ ffi (>= 0.5.0)
32
+ rb-kqueue (0.2.0)
33
+ ffi (>= 0.5.0)
34
+ rspec (2.13.0)
35
+ rspec-core (~> 2.13.0)
36
+ rspec-expectations (~> 2.13.0)
37
+ rspec-mocks (~> 2.13.0)
38
+ rspec-core (2.13.1)
39
+ rspec-expectations (2.13.0)
40
+ diff-lcs (>= 1.1.3, < 2.0)
41
+ rspec-mocks (2.13.1)
42
+ slop (3.4.5)
43
+ systemu (2.5.2)
44
+ thor (0.18.1)
45
+
46
+ PLATFORMS
47
+ ruby
48
+
49
+ DEPENDENCIES
50
+ guard-rspec
51
+ macaddr
52
+ rspec
@@ -0,0 +1,5 @@
1
+ guard 'rspec', :cli => "--color --format=documentation" do
2
+ watch(%r{^spec/.+spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}\.spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "AutoNic"
7
+ gem.version = '1.0.0'
8
+ gem.authors = ["whoojemaflip"]
9
+ gem.email = ["whoojemaflip@gmail.com"]
10
+ gem.description = %q{Create a silly name for your server automatically from it's Mac address}
11
+ gem.summary = %q{Create a silly name for your server automatically from it's Mac address}
12
+ gem.homepage = "http://github.com/whoojemaflip/autonic"
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+ gem.require_paths = ["lib"]
18
+
19
+ gem.add_runtime_dependency "macaddr", "~> 1.6.1"
20
+ gem.add_development_dependency "rspec"
21
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require_relative 'lib/autonic'
@@ -0,0 +1,68 @@
1
+ # init.rb
2
+
3
+ require 'macaddr'
4
+
5
+ class AutoNic
6
+ attr_accessor :macaddr
7
+
8
+ def initialize
9
+ @consonants = "bcdfghjklmnpqrstvwxyz"
10
+ @vowels = "aeiou"
11
+
12
+ @combos = []
13
+ @consonants.each_char do |con|
14
+ @vowels.each_char do |vow|
15
+ @combos << con+vow
16
+ end
17
+ end
18
+ @macaddr = Mac.addr
19
+ end
20
+
21
+ def name
22
+ macAddrToName
23
+ end
24
+
25
+ def popHexPair(s)
26
+ if s.length < 3
27
+ num = s.to_i(16)
28
+ rest = ""
29
+ else
30
+ num = s[0..1].to_i(16)
31
+ rest = s[2..s.length]
32
+ end
33
+ return :num => num, :rest => rest
34
+ end
35
+
36
+
37
+ def cleanName(n)
38
+ return n.gsub("- ", '-').gsub(" -", ' ').gsub("--", '-').strip().gsub(/-$/, '')
39
+ end
40
+
41
+ def macAddrToName
42
+ name = " "
43
+ x = @macaddr.gsub(/[-: ]/, '')
44
+ while x.length > 0 do
45
+ tup = popHexPair(x)
46
+ n = tup[:num]
47
+ syllable = ''
48
+ if(n < @combos.length)
49
+ syllable = @combos[n]
50
+ else
51
+ if (n/2 < @combos.length)
52
+ if (n%3 == 0)
53
+ syllable = @combos[n/2] + ' '
54
+ elsif (n%2 == 0)
55
+ syllable = @combos[n/2]
56
+ end
57
+ else
58
+ syllable = ' '
59
+ end
60
+ end
61
+ name = name + syllable
62
+ x = tup[:rest]
63
+ end
64
+ sname = name.upcase.split /\s+/
65
+ capname = sname.join(' ')
66
+ return cleanName(capname)
67
+ end
68
+ end
@@ -0,0 +1,32 @@
1
+ require 'rspec'
2
+ require 'spec_helper.rb'
3
+
4
+ describe 'AutoNic' do
5
+ before :each do
6
+ @macr = AutoNic.new
7
+ end
8
+
9
+ it 'gives your server a cute name' do
10
+ @macr.macaddr = "00:B0:D0:86:BB:F7"
11
+ @macr.name.should eq "BAWOZURI"
12
+ end
13
+
14
+ it 'makes no promises that it will be prouncable' do
15
+ @macr.macaddr = "00:1b:63:84:45:e6"
16
+ @macr.name.should eq "BAHIYURE RU"
17
+ end
18
+
19
+ it 'probably sounds like baby noises' do
20
+ @macr.macaddr = "00:A0:C9:14:C8:29"
21
+ @macr.name.should eq "BAVAZA GAZALE"
22
+ end
23
+
24
+ it 'does not create unique names' do
25
+ @macr.macaddr = "14:10:9f:d8:6e:f7"
26
+ @macr.name.should eq "GAFETU PA"
27
+ end
28
+
29
+ end
30
+
31
+
32
+
@@ -0,0 +1 @@
1
+ require_relative '../init.rb'
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: AutoNic
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - whoojemaflip
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: macaddr
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 1.6.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 1.6.1
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'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Create a silly name for your server automatically from it's Mac address
42
+ email:
43
+ - whoojemaflip@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - Gemfile.lock
51
+ - Guardfile
52
+ - autonic.gemspec
53
+ - init.rb
54
+ - lib/autonic.rb
55
+ - spec/autonic.spec.rb
56
+ - spec/spec_helper.rb
57
+ homepage: http://github.com/whoojemaflip/autonic
58
+ licenses: []
59
+ metadata: {}
60
+ post_install_message:
61
+ rdoc_options: []
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 2.0.3
77
+ signing_key:
78
+ specification_version: 4
79
+ summary: Create a silly name for your server automatically from it's Mac address
80
+ test_files:
81
+ - spec/autonic.spec.rb
82
+ - spec/spec_helper.rb