identifier 1.0.9 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'mkmf'
3
+ gemspec
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = Identifier
2
2
 
3
- Identifier is a Ruby unique identifier generator that wraps the UNIX, Linux and Macintosh library 'uuid'.
3
+ Identifier is a Ruby universally unique identifier generator that attempts to use the UNIX, Linux and Macintosh library 'uuid'.
4
4
 
5
5
  == Installation
6
6
 
@@ -8,11 +8,23 @@ Identifier is a Ruby unique identifier generator that wraps the UNIX, Linux and
8
8
 
9
9
  == Requirements
10
10
 
11
- A UNIX, Linux, or Macintosh system with 'uuid' library installed.
11
+ The gem is tested with:
12
+
13
+ * Ruby (MRI) 1.9.2 (p180)
14
+ * Ruby (MRI) 1.8.7 (p334)
15
+ * Ruby (REE) 1.8.7 (2011.03)
16
+ * JRuby 1.6.2
17
+ * Rubinius 1.2.4
12
18
 
13
19
  == Examples
14
20
 
15
21
  Identifier.generate # "CFAA3C87-38C1-4357-8FA2-D862780736AE"
22
+
23
+ == Performance
24
+
25
+ Identifier 2.628164 seconds for 100,000 generations
26
+ GUID 15.755870 seconds for 100,000 generations
27
+ UUID 10.987766 seconds for 100,000 generations
16
28
 
17
29
  == Copyright
18
30
 
data/lib/identifier.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'identifier/identifier'
2
-
3
1
  begin
4
2
  require 'securerandom'
5
3
  rescue LoadError
@@ -7,10 +5,16 @@ end
7
5
 
8
6
  module Identifier
9
7
 
10
- def generate
11
- SecureRandom.uuid if defined? SecureRandom
8
+ def self.generate
9
+ if defined? SecureRandom
10
+ return SecureRandom.uuid if SecureRandom.respond_to? :uuid
11
+
12
+ bytes = SecureRandom.random_bytes(16)
13
+ bytes = bytes.unpack("NnnnnN")
14
+ end
12
15
 
13
- bytes = [
16
+ bytes ||=
17
+ [
14
18
  rand(0xFFFFFFFF),
15
19
  rand(0x0000FFFF),
16
20
  rand(0x0000FFFF),
@@ -1,3 +1,3 @@
1
1
  module Identifier
2
- VERSION = "1.0.9"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,62 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: identifier
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
4
5
  prerelease:
5
- version: 1.0.9
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Kevin Sylvestre
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-25 00:00:00 Z
14
- dependencies: []
15
-
16
- description: Identifier is a Ruby unique identifier generator that wraps the UNIX, Linux and Macintosh 'uuid' library.
17
- email:
12
+ date: 2011-07-24 00:00:00.000000000 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: &70108861606260 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *70108861606260
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &70108861605840 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *70108861605840
37
+ - !ruby/object:Gem::Dependency
38
+ name: bundler
39
+ requirement: &70108861605420 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *70108861605420
48
+ description: Identifier is a Ruby unique identifier generator that wraps the UNIX,
49
+ Linux and Macintosh 'uuid' library.
50
+ email:
18
51
  - kevin@ksylvest.com
19
52
  executables: []
20
-
21
- extensions:
22
- - ext/identifier/extconf.rb
53
+ extensions: []
23
54
  extra_rdoc_files: []
24
-
25
- files:
26
- - ext/identifier/extconf.rb
27
- - ext/identifier/identifier.c
28
- - lib/identifier/identifier.bundle
55
+ files:
29
56
  - lib/identifier/version.rb
30
57
  - lib/identifier.rb
31
58
  - README.rdoc
32
59
  - LICENSE
33
60
  - Gemfile
61
+ has_rdoc: true
34
62
  homepage: http://github.com/ksylvest/identifier
35
63
  licenses: []
36
-
37
64
  post_install_message:
38
65
  rdoc_options: []
39
-
40
- require_paths:
66
+ require_paths:
41
67
  - lib
42
- required_ruby_version: !ruby/object:Gem::Requirement
68
+ required_ruby_version: !ruby/object:Gem::Requirement
43
69
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: "0"
48
- required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
75
  none: false
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
54
80
  requirements: []
55
-
56
81
  rubyforge_project:
57
- rubygems_version: 1.8.5
82
+ rubygems_version: 1.6.2
58
83
  signing_key:
59
84
  specification_version: 3
60
85
  summary: A very basic unique identifier
61
86
  test_files: []
62
-
@@ -1,5 +0,0 @@
1
- require 'mkmf'
2
-
3
- have_library("uuid")
4
-
5
- create_makefile("identifier")
@@ -1,21 +0,0 @@
1
- #include <ruby.h>
2
- #include <uuid/uuid.h>
3
-
4
- VALUE Identifier;
5
-
6
- VALUE method_generate(VALUE self)
7
- {
8
- char result[] = "00000000-0000-0000-0000-000000000000";
9
-
10
- uuid_t uuid;
11
- uuid_generate(uuid);
12
- uuid_unparse(uuid, result);
13
-
14
- return rb_str_new(result, strlen(result));
15
- }
16
-
17
- void Init_identifier()
18
- {
19
- Identifier = rb_define_module("Identifier");
20
- rb_define_singleton_method(Identifier, "generate", method_generate, 0);
21
- }
Binary file