uuidtools 1.0.1 → 1.0.2
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.
- data/CHANGELOG +3 -0
- data/lib/uuidtools.rb +33 -4
- data/rakefile +40 -11
- metadata +3 -3
data/CHANGELOG
CHANGED
data/lib/uuidtools.rb
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
UUID_TOOLS_VERSION = "1.0.
|
24
|
+
UUID_TOOLS_VERSION = "1.0.2"
|
25
25
|
|
26
26
|
$:.unshift(File.dirname(__FILE__))
|
27
27
|
|
@@ -233,7 +233,13 @@ class UUID
|
|
233
233
|
# Convert to 100 nanosecond blocks
|
234
234
|
gmt_timestamp_100_nanoseconds = (gmt_timestamp.tv_sec * 10000000) +
|
235
235
|
(gmt_timestamp.tv_usec * 10) + 0x01B21DD213814000
|
236
|
-
|
236
|
+
mac_address = self.get_mac_address
|
237
|
+
if mac_address == nil || mac_address == ""
|
238
|
+
raise StandardError,
|
239
|
+
"MAC address could not be autodetected. " +
|
240
|
+
"Set the MAC address manually."
|
241
|
+
end
|
242
|
+
nodes = mac_address.split(":").collect do |octet|
|
237
243
|
octet.to_i(16)
|
238
244
|
end
|
239
245
|
node_id = 0
|
@@ -429,6 +435,16 @@ class UUID
|
|
429
435
|
def to_uri
|
430
436
|
return "urn:uuid:#{self.to_s}"
|
431
437
|
end
|
438
|
+
|
439
|
+
# Returns an integer hash value.
|
440
|
+
def hash
|
441
|
+
return self.to_i
|
442
|
+
end
|
443
|
+
|
444
|
+
# Returns true if this UUID is exactly equal to the other UUID.
|
445
|
+
def eql?(other)
|
446
|
+
return (self <=> other) == 0
|
447
|
+
end
|
432
448
|
|
433
449
|
def self.create_from_hash(hash_class, namespace, name) #:nodoc:
|
434
450
|
if hash_class == Digest::MD5
|
@@ -455,7 +471,7 @@ class UUID
|
|
455
471
|
|
456
472
|
# Returns the MAC address of the current computer's network card.
|
457
473
|
# Returns nil if a MAC address could not be found.
|
458
|
-
def self.
|
474
|
+
def self.mac_address #:nodoc:
|
459
475
|
if @@mac_address.nil?
|
460
476
|
if RUBY_PLATFORM =~ /solaris/
|
461
477
|
begin
|
@@ -466,6 +482,15 @@ class UUID
|
|
466
482
|
@@mac_address = `/usr/sbin/arp #{ip}`.split(' ')[3]
|
467
483
|
rescue Exception
|
468
484
|
end
|
485
|
+
if @@mac_address == "" || @@mac_address == nil
|
486
|
+
begin
|
487
|
+
ifconfig_output = `ifconfig -a`.split(' ')
|
488
|
+
index = ifconfig_output.index("inet") + 1
|
489
|
+
ip = ifconfig_output[index]
|
490
|
+
@@mac_address = `arp #{ip}`.split(' ')[3]
|
491
|
+
rescue Exception
|
492
|
+
end
|
493
|
+
end
|
469
494
|
elsif RUBY_PLATFORM =~ /win/ && !(RUBY_PLATFORM =~ /darwin/)
|
470
495
|
begin
|
471
496
|
ifconfig_output = `ipconfig /all`
|
@@ -483,6 +508,10 @@ class UUID
|
|
483
508
|
ifconfig_output = `/sbin/ifconfig -a 2>&1`
|
484
509
|
mac_addresses = ifconfig_output.scan(
|
485
510
|
Regexp.new("address\: (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
|
511
|
+
elsif RUBY_PLATFORM =~ /openbsd/
|
512
|
+
ifconfig_output = `/sbin/ifconfig -a 2>&1`
|
513
|
+
mac_addresses = ifconfig_output.scan(
|
514
|
+
Regexp.new("addr (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
|
486
515
|
elsif File.exists?('/sbin/ifconfig')
|
487
516
|
ifconfig_output = `/sbin/ifconfig 2>&1`
|
488
517
|
mac_addresses = ifconfig_output.scan(
|
@@ -534,7 +563,7 @@ class UUID
|
|
534
563
|
return @@mac_address
|
535
564
|
end
|
536
565
|
class <<self
|
537
|
-
alias_method :
|
566
|
+
alias_method :get_mac_address, :mac_address
|
538
567
|
end
|
539
568
|
|
540
569
|
# Allows users to set the MAC address manually in cases where the MAC
|
data/rakefile
CHANGED
@@ -7,13 +7,14 @@ require 'rake/gempackagetask'
|
|
7
7
|
require 'rake/contrib/rubyforgepublisher'
|
8
8
|
|
9
9
|
PKG_NAME = 'uuidtools'
|
10
|
-
PKG_VERSION = '1.0.
|
10
|
+
PKG_VERSION = '1.0.2'
|
11
11
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
12
12
|
|
13
13
|
RELEASE_NAME = "REL #{PKG_VERSION}"
|
14
14
|
|
15
|
-
RUBY_FORGE_PROJECT =
|
16
|
-
RUBY_FORGE_USER = "
|
15
|
+
RUBY_FORGE_PROJECT = PKG_NAME
|
16
|
+
RUBY_FORGE_USER = "sporkmonger"
|
17
|
+
RUBY_FORGE_PATH = "/var/www/gforge-projects/#{RUBY_FORGE_PROJECT}"
|
17
18
|
|
18
19
|
PKG_FILES = FileList[
|
19
20
|
"lib/**/*", "test/**/*", "examples/**/*", "doc/**/*", "[A-Z]*", "rakefile"
|
@@ -142,12 +143,40 @@ task :benchmark do
|
|
142
143
|
end
|
143
144
|
|
144
145
|
|
145
|
-
|
146
|
+
namespace :publish do
|
147
|
+
desc "Publish the API documentation"
|
148
|
+
task :api => [ "rdoc" ] do
|
149
|
+
Rake::SshDirPublisher.new(
|
150
|
+
"#{RUBY_FORGE_USER}@rubyforge.org",
|
151
|
+
"#{RUBY_FORGE_PATH}/",
|
152
|
+
"doc"
|
153
|
+
).upload
|
154
|
+
end
|
155
|
+
|
156
|
+
desc "Runs all of the publishing tasks"
|
157
|
+
task :all => ["publish:api"] do
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
task :lines do
|
162
|
+
lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
|
163
|
+
|
164
|
+
for file_name in FileList["lib/**/*.rb"]
|
165
|
+
f = File.open(file_name)
|
166
|
+
|
167
|
+
while line = f.gets
|
168
|
+
lines += 1
|
169
|
+
next if line =~ /^\s*$/
|
170
|
+
next if line =~ /^\s*#/
|
171
|
+
codelines += 1
|
172
|
+
end
|
173
|
+
puts "L: #{sprintf("%4d", lines)}, LOC #{sprintf("%4d", codelines)} | #{file_name}"
|
174
|
+
|
175
|
+
total_lines += lines
|
176
|
+
total_codelines += codelines
|
177
|
+
|
178
|
+
lines, codelines = 0, 0
|
179
|
+
end
|
146
180
|
|
147
|
-
|
148
|
-
|
149
|
-
Rake::SshDirPublisher.new(
|
150
|
-
"vacindak@sporkmonger.com",
|
151
|
-
"public_html/projects/uuidtools/api",
|
152
|
-
"doc").upload
|
153
|
-
end
|
181
|
+
puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
|
182
|
+
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: uuidtools
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.0.2
|
7
|
+
date: 2007-11-07 00:00:00 -05:00
|
8
8
|
summary: Generation of UUIDs.
|
9
9
|
require_paths:
|
10
10
|
- lib
|