uuidtools 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ == UUIDTools 2.1.2
2
+ * fixed issue with frozen objects
3
+ * fixed issue with running specs in Ruby 1.9.2
1
4
  == UUIDTools 2.1.1
2
5
  * fixed issue with Ruby 1.9 compatibility
3
6
  == UUIDTools 2.1.0
data/lib/uuidtools.rb CHANGED
@@ -376,28 +376,76 @@ module UUIDTools
376
376
 
377
377
  # Returns the hex digest of the UUID object.
378
378
  def hexdigest
379
- return self.to_i.to_s(16).rjust(32, "0")
379
+ return @hexdigest unless @hexdigest.nil?
380
+ if self.frozen?
381
+ return generate_hexdigest
382
+ else
383
+ return (@hexdigest = generate_hexdigest)
384
+ end
380
385
  end
381
386
 
382
387
  # Returns the raw bytes that represent this UUID.
383
388
  def raw
384
- return self.class.convert_int_to_byte_string(self.to_i, 16)
389
+ return @raw unless @raw.nil?
390
+ if self.frozen?
391
+ return generate_raw
392
+ else
393
+ return (@raw = generate_raw)
394
+ end
385
395
  end
386
396
 
387
397
  # Returns a string representation for this UUID.
388
398
  def to_s
389
- result = sprintf("%8.8x-%4.4x-%4.4x-%2.2x%2.2x-", @time_low, @time_mid,
390
- @time_hi_and_version, @clock_seq_hi_and_reserved, @clock_seq_low);
391
- for i in 0..5
392
- result << sprintf("%2.2x", @nodes[i])
399
+ return @string unless @string.nil?
400
+ if self.frozen?
401
+ return generate_s
402
+ else
403
+ return (@string = generate_s)
393
404
  end
394
- return result.downcase
395
405
  end
396
406
  alias_method :to_str, :to_s
397
407
 
398
408
  # Returns an integer representation for this UUID.
399
409
  def to_i
400
- @integer ||= (begin
410
+ return @integer unless @integer.nil?
411
+ if self.frozen?
412
+ return generate_i
413
+ else
414
+ return (@integer = generate_i)
415
+ end
416
+ end
417
+
418
+ # Returns a URI string for this UUID.
419
+ def to_uri
420
+ return "urn:uuid:#{self.to_s}"
421
+ end
422
+
423
+ # Returns an integer hash value.
424
+ def hash
425
+ return @hash unless @hash.nil?
426
+ if self.frozen?
427
+ return generate_hash
428
+ else
429
+ return (@hash = generate_hash)
430
+ end
431
+ end
432
+
433
+ #These methods generate the appropriate representations the above methods cache
434
+ protected
435
+
436
+ # Generates the hex digest of the UUID object.
437
+ def generate_hexdigest
438
+ return self.to_i.to_s(16).rjust(32, "0")
439
+ end
440
+
441
+ # Generates an integer hash value.
442
+ def generate_hash
443
+ return self.to_i % 0x3fffffff
444
+ end
445
+
446
+ # Generates an integer representation for this UUID.
447
+ def generate_i
448
+ return (begin
401
449
  bytes = (time_low << 96) + (time_mid << 80) +
402
450
  (time_hi_and_version << 64) + (clock_seq_hi_and_reserved << 56) +
403
451
  (clock_seq_low << 48)
@@ -407,16 +455,23 @@ module UUIDTools
407
455
  bytes
408
456
  end)
409
457
  end
410
-
411
- # Returns a URI string for this UUID.
412
- def to_uri
413
- return "urn:uuid:#{self.to_s}"
458
+
459
+ # Generates a string representation for this UUID.
460
+ def generate_s
461
+ result = sprintf("%8.8x-%4.4x-%4.4x-%2.2x%2.2x-", @time_low, @time_mid,
462
+ @time_hi_and_version, @clock_seq_hi_and_reserved, @clock_seq_low);
463
+ for i in 0..5
464
+ result << sprintf("%2.2x", @nodes[i])
465
+ end
466
+ return result.downcase
414
467
  end
415
-
416
- # Returns an integer hash value.
417
- def hash
418
- @hash ||= self.to_i % 0x3fffffff
468
+
469
+ # Generates the raw bytes that represent this UUID.
470
+ def generate_raw
471
+ return self.class.convert_int_to_byte_string(self.to_i, 16)
419
472
  end
473
+
474
+ public
420
475
 
421
476
  # Returns true if this UUID is exactly equal to the other UUID.
422
477
  def eql?(other)
@@ -27,7 +27,7 @@ unless defined? UUID::VERSION
27
27
  module VERSION #:nodoc:
28
28
  MAJOR = 2
29
29
  MINOR = 1
30
- TINY = 1
30
+ TINY = 2
31
31
 
32
32
  STRING = [MAJOR, MINOR, TINY].join('.')
33
33
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "../spec_helper.rb")
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
2
 
3
3
  describe UUIDTools::UUID, "when obtaining a MAC address" do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "../spec_helper.rb")
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
2
 
3
3
  describe SecureRandom do
4
4
  it "should correctly obtain random bits" do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "../spec_helper.rb")
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
2
 
3
3
  describe UUIDTools::UUID, "when generating" do
4
4
  it "should correctly generate SHA1 variant UUIDs" do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "../spec_helper.rb")
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
2
 
3
3
  describe UUIDTools::UUID, "when parsing" do
4
4
  it "should correctly parse the MAC address from a timestamp version UUID" do
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uuidtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ hash: 15
5
+ prerelease:
6
+ segments:
7
+ - 2
8
+ - 1
9
+ - 2
10
+ version: 2.1.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Bob Aman
@@ -9,39 +15,57 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-10-13 00:00:00 -04:00
18
+ date: 2011-02-02 00:00:00 -08:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: rake
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 57
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 3
23
34
  version: 0.8.3
24
- version:
35
+ type: :development
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: rspec
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ">="
32
44
  - !ruby/object:Gem::Version
45
+ hash: 5
46
+ segments:
47
+ - 1
48
+ - 1
49
+ - 11
33
50
  version: 1.1.11
34
- version:
51
+ type: :development
52
+ version_requirements: *id002
35
53
  - !ruby/object:Gem::Dependency
36
54
  name: launchy
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
40
58
  requirements:
41
59
  - - ">="
42
60
  - !ruby/object:Gem::Version
61
+ hash: 23
62
+ segments:
63
+ - 0
64
+ - 3
65
+ - 2
43
66
  version: 0.3.2
44
- version:
67
+ type: :development
68
+ version_requirements: *id003
45
69
  description: |
46
70
  A simple universally unique ID generation library.
47
71
 
@@ -86,21 +110,27 @@ rdoc_options:
86
110
  require_paths:
87
111
  - lib
88
112
  required_ruby_version: !ruby/object:Gem::Requirement
113
+ none: false
89
114
  requirements:
90
115
  - - ">="
91
116
  - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
92
120
  version: "0"
93
- version:
94
121
  required_rubygems_version: !ruby/object:Gem::Requirement
122
+ none: false
95
123
  requirements:
96
124
  - - ">="
97
125
  - !ruby/object:Gem::Version
126
+ hash: 3
127
+ segments:
128
+ - 0
98
129
  version: "0"
99
- version:
100
130
  requirements: []
101
131
 
102
132
  rubyforge_project: uuidtools
103
- rubygems_version: 1.3.4
133
+ rubygems_version: 1.4.1
104
134
  signing_key:
105
135
  specification_version: 3
106
136
  summary: UUID generator