uuidtools 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ == UUIDTools 1.0.3
2
+ * imrpoved code for obtaining a MAC address within JRuby
1
3
  == UUIDTools 1.0.2
2
4
  * improved code for obtaining a MAC address for Solaris and OpenBSD
3
5
  * added hash and eql? methods
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2005 Robert Aman
2
+ # Copyright (c) 2005-2008 Robert Aman
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -21,8 +21,6 @@
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
23
 
24
- UUID_TOOLS_VERSION = "1.0.2"
25
-
26
24
  $:.unshift(File.dirname(__FILE__))
27
25
 
28
26
  require 'uri'
@@ -31,6 +29,11 @@ require 'thread'
31
29
  require 'digest/sha1'
32
30
  require 'digest/md5'
33
31
 
32
+ require 'uuidtools/version'
33
+
34
+ # Backwards compatibility with old method of versioning.
35
+ UUID_TOOLS_VERSION = UUID::UUID_TOOLS_VERSION::STRING
36
+
34
37
  # Because it's impossible to hype a UUID generator on its genuine merits,
35
38
  # I give you... Really bad ASCII art in the comments:
36
39
  #
@@ -417,7 +420,7 @@ class UUID
417
420
  for i in 0..5
418
421
  result << sprintf("%2.2x", @nodes[i])
419
422
  end
420
- return result
423
+ return result.downcase
421
424
  end
422
425
 
423
426
  # Returns an integer representation for this UUID.
@@ -473,9 +476,17 @@ class UUID
473
476
  # Returns nil if a MAC address could not be found.
474
477
  def self.mac_address #:nodoc:
475
478
  if @@mac_address.nil?
476
- if RUBY_PLATFORM =~ /solaris/
479
+ require 'rbconfig'
480
+ os_platform = Config::CONFIG['target_os']
481
+ if os_platform =~ /win/ && !(os_platform =~ /darwin/)
482
+ script_in_path = true
483
+ else
484
+ script_in_path = !(`which ifconfig`.strip =~ /no .+ in/)
485
+ end
486
+ if os_platform =~ /solaris/
477
487
  begin
478
- ifconfig_output = `/sbin/ifconfig -a`
488
+ ifconfig_output =
489
+ (script_in_path ? `ifconfig -a` : `/sbin/ifconfig -a`)
479
490
  ip_addresses = ifconfig_output.scan(
480
491
  /inet\s?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/)
481
492
  ip = ip_addresses.find {|addr| addr[0] != '127.0.0.1'}[0]
@@ -484,14 +495,16 @@ class UUID
484
495
  end
485
496
  if @@mac_address == "" || @@mac_address == nil
486
497
  begin
487
- ifconfig_output = `ifconfig -a`.split(' ')
498
+ ifconfig_output =
499
+ (script_in_path ?
500
+ `ifconfig -a` : `/sbin/ifconfig -a`).split(' ')
488
501
  index = ifconfig_output.index("inet") + 1
489
502
  ip = ifconfig_output[index]
490
503
  @@mac_address = `arp #{ip}`.split(' ')[3]
491
504
  rescue Exception
492
505
  end
493
506
  end
494
- elsif RUBY_PLATFORM =~ /win/ && !(RUBY_PLATFORM =~ /darwin/)
507
+ elsif os_platform =~ /win/ && !(os_platform =~ /darwin/)
495
508
  begin
496
509
  ifconfig_output = `ipconfig /all`
497
510
  mac_addresses = ifconfig_output.scan(
@@ -504,43 +517,54 @@ class UUID
504
517
  else
505
518
  begin
506
519
  mac_addresses = []
507
- if RUBY_PLATFORM =~ /netbsd/
508
- ifconfig_output = `/sbin/ifconfig -a 2>&1`
520
+ if os_platform =~ /netbsd/
521
+ ifconfig_output =
522
+ (script_in_path ? `ifconfig -a 2>&1` : `/sbin/ifconfig -a 2>&1`)
509
523
  mac_addresses = ifconfig_output.scan(
510
524
  Regexp.new("address\: (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
511
- elsif RUBY_PLATFORM =~ /openbsd/
525
+ elsif os_platform =~ /openbsd/
512
526
  ifconfig_output = `/sbin/ifconfig -a 2>&1`
527
+ ifconfig_output =
528
+ (script_in_path ? `ifconfig -a 2>&1` : `/sbin/ifconfig -a 2>&1`)
513
529
  mac_addresses = ifconfig_output.scan(
514
530
  Regexp.new("addr (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
515
531
  elsif File.exists?('/sbin/ifconfig')
516
- ifconfig_output = `/sbin/ifconfig 2>&1`
532
+ ifconfig_output =
533
+ (script_in_path ? `ifconfig 2>&1` : `/sbin/ifconfig 2>&1`)
517
534
  mac_addresses = ifconfig_output.scan(
518
535
  Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
519
536
  if mac_addresses.size == 0
520
- ifconfig_output = `/sbin/ifconfig -a 2>&1`
537
+ ifconfig_output =
538
+ (script_in_path ?
539
+ `ifconfig -a 2>&1` : `/sbin/ifconfig -a 2>&1`)
521
540
  mac_addresses = ifconfig_output.scan(
522
541
  Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
523
542
  end
524
543
  if mac_addresses.size == 0
525
544
  ifconfig_output =
526
- `/sbin/ifconfig | grep HWaddr | cut -c39- 2>&1`
545
+ (script_in_path ?
546
+ `ifconfig | grep HWaddr | cut -c39- 2>&1` :
547
+ `/sbin/ifconfig | grep HWaddr | cut -c39- 2>&1`)
527
548
  mac_addresses = ifconfig_output.scan(
528
549
  Regexp.new("(#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
529
550
  end
530
551
  else
531
552
  ifconfig_output =
532
- `ifconfig 2>&1`
553
+ (script_in_path ? `ifconfig 2>&1` : `/sbin/ifconfig 2>&1`)
533
554
  mac_addresses = ifconfig_output.scan(
534
555
  Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
535
556
  if mac_addresses.size == 0
536
557
  ifconfig_output =
537
- `ifconfig -a 2>&1`
558
+ (script_in_path ?
559
+ `ifconfig -a 2>&1` : `/sbin/ifconfig -a 2>&1`)
538
560
  mac_addresses = ifconfig_output.scan(
539
561
  Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
540
562
  end
541
563
  if mac_addresses.size == 0
542
564
  ifconfig_output =
543
- `ifconfig | grep HWaddr | cut -c39- 2>&1`
565
+ (script_in_path ?
566
+ `ifconfig | grep HWaddr | cut -c39- 2>&1` :
567
+ `/sbin/ifconfig | grep HWaddr | cut -c39- 2>&1`)
544
568
  mac_addresses = ifconfig_output.scan(
545
569
  Regexp.new("(#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
546
570
  end
@@ -551,8 +575,16 @@ class UUID
551
575
  rescue
552
576
  end
553
577
  end
554
- @@mac_address.downcase! if @@mac_address.respond_to?(:downcase!)
555
- @@mac_address.strip! if @@mac_address.respond_to?(:strip!)
578
+ if @@mac_address != nil
579
+ if @@mac_address.respond_to?(:to_str)
580
+ @@mac_address = @@mac_address.to_str
581
+ else
582
+ @@mac_address = @@mac_address.to_s
583
+ end
584
+ @@mac_address.downcase!
585
+ @@mac_address.strip!
586
+ end
587
+
556
588
  # Verify that the MAC address is in the right format.
557
589
  # Nil it out if it isn't.
558
590
  unless @@mac_address.respond_to?(:scan) &&
@@ -0,0 +1,32 @@
1
+ #--
2
+ # Copyright (c) 2005-2008 Robert Aman
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+
24
+ class UUID
25
+ module UUID_TOOLS_VERSION #:nodoc:
26
+ MAJOR = 1
27
+ MINOR = 0
28
+ TINY = 3
29
+
30
+ STRING = [MAJOR, MINOR, TINY].join('.')
31
+ end
32
+ end
data/rakefile CHANGED
@@ -6,8 +6,10 @@ require 'rake/packagetask'
6
6
  require 'rake/gempackagetask'
7
7
  require 'rake/contrib/rubyforgepublisher'
8
8
 
9
+ require File.join(File.dirname(__FILE__), 'lib/uuidtools', 'version')
10
+
9
11
  PKG_NAME = 'uuidtools'
10
- PKG_VERSION = '1.0.2'
12
+ PKG_VERSION = UUID::UUID_TOOLS_VERSION::STRING
11
13
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12
14
 
13
15
  RELEASE_NAME = "REL #{PKG_VERSION}"
@@ -59,13 +61,14 @@ spec = Gem::Specification.new do |s|
59
61
  item.include?( "\.svn" ) || item.include?( "database\.yml" )
60
62
  end
61
63
  end
64
+ s.test_files = Dir.glob('test/**/*_test.rb')
62
65
 
63
66
  s.require_path = 'lib'
64
67
  s.autorequire = 'uuidtools'
65
68
 
66
69
  s.has_rdoc = true
67
70
  s.extra_rdoc_files = %w( README )
68
- s.rdoc_options.concat ['--main', 'README']
71
+ s.rdoc_options.concat ['--main', 'README']
69
72
 
70
73
  s.author = "Bob Aman"
71
74
  s.email = "bob@sporkmonger.com"
metadata CHANGED
@@ -1,53 +1,64 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: uuidtools
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.0.2
7
- date: 2007-11-07 00:00:00 -05:00
8
- summary: Generation of UUIDs.
9
- require_paths:
10
- - lib
11
- email: bob@sporkmonger.com
12
- homepage: http://sporkmonger.com/projects/uuidtools
13
- rubyforge_project: uuidtools
14
- description: Implements a simple system for generating UUIDs.
15
- autorequire: uuidtools
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 1.0.3
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Bob Aman
8
+ autorequire: uuidtools
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-01-04 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Implements a simple system for generating UUIDs.
17
+ email: bob@sporkmonger.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
31
24
  files:
32
25
  - rakefile
33
26
  - README
34
27
  - CHANGELOG
28
+ - lib/uuidtools
29
+ - lib/uuidtools/version.rb
35
30
  - lib/uuidtools.rb
36
31
  - test/create_test.rb
37
32
  - test/mac_address_test.rb
38
33
  - test/parse_test.rb
39
- test_files: []
40
-
34
+ has_rdoc: true
35
+ homepage: http://sporkmonger.com/projects/uuidtools
36
+ post_install_message:
41
37
  rdoc_options:
42
38
  - --main
43
39
  - README
44
- extra_rdoc_files:
45
- - README
46
- executables: []
47
-
48
- extensions: []
49
-
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
50
54
  requirements: []
51
55
 
52
- dependencies: []
53
-
56
+ rubyforge_project: uuidtools
57
+ rubygems_version: 1.0.0
58
+ signing_key:
59
+ specification_version: 2
60
+ summary: Generation of UUIDs.
61
+ test_files:
62
+ - test/create_test.rb
63
+ - test/mac_address_test.rb
64
+ - test/parse_test.rb