usesguid 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ *.gem
2
+ *.swp
3
+ .DS_Store
4
+ .bundle
5
+ Gemfile.lock
6
+ pkg/*
7
+ tmp/*
8
+ db/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in usesguid.gemspec
4
+ gemspec
@@ -1,5 +1,6 @@
1
- Copyright (c) 2005 Assembla, Inc.
2
- Portions Copyright (c) 2008 Intuit
1
+ Copyright (c) 2013 Jason Harrelson
2
+
3
+ MIT License
3
4
 
4
5
  Permission is hereby granted, free of charge, to any person obtaining
5
6
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -23,13 +23,7 @@ This library is free software; you can redistribute it and/or modify it
23
23
  under the terms of the MIT license.
24
24
 
25
25
 
26
- == TO USE
27
-
28
- sudo gem install usesguid
29
-
30
- In Rails environment file:
31
-
32
- config.gem "usesguid"
26
+ == USAGE
33
27
 
34
28
  define ID as char(22)
35
29
  call "usesguid" in ActiveRecord class declaration, like:
@@ -38,13 +32,34 @@ call "usesguid" in ActiveRecord class declaration, like:
38
32
  usesguid
39
33
  end
40
34
 
41
- if your ID field is not called "ID", call "usesguid :column =>'IdColumnName' "
35
+ If your ID field is not called "ID", call "usesguid :column =>'IdColumnName'"
36
+
37
+ In order to use a GUID in another field that is not your primary key, id call usesguid like:
38
+
39
+ class Mymodel < ActiveRecord::Base
40
+ usesguid, :as => :field
41
+ end
42
+
43
+ If you would like to validate your GUID a validation macro is provided:
44
+
45
+ class Mymodel < ActiveRecord::Base
46
+ usesguid, :as => :field
47
+
48
+ validate_guid
49
+ end
50
+
51
+ validate_guid is the same as:
42
52
 
43
- If you use MySQL as your database, you can make guid generation much faster
44
- by putting this in config/environment.rb:
53
+ validates_presence_of( ActiveRecord::Base.guid_column )
54
+ validates_uniqueness_of( ActiveRecord::Base.guid_column )
55
+ validates_length_of( ActiveRecord::Base.guid_column, :maximum => (ActiveRecord::Base.guid_compression == 's22' ? 22 : 36), :allow_blank => true )
45
56
 
46
- ActiveRecord::Base.guid_generator = :mysql
57
+ If you use MySQL or SQL Server as your database, you can make guid generation much faster by using the
58
+ database to generate GUIDs.
47
59
 
48
- == TODO
60
+ You can accomplish this by specifying the GUID generator in an initializer file. There are also options
61
+ for guid_compression and guid_column.
49
62
 
50
- * Add tests
63
+ ActiveRecord::Base.guid_generator = :mysql # mysql or sqlserver
64
+ ActiveRecord::Base.guid_compression = :s # :s for string or :s22 for compressed string
65
+ ActiveRecord::Base.guid_column = 'guid' # the name of your GUID column
data/Rakefile CHANGED
@@ -1,49 +1 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "usesguid"
8
- gem.summary = %Q{A much faster version of the usesguid plugin for Rails}
9
- gem.description = %Q{A much faster version of the usesguid plugin for Rails (uses MySQL to generate GUIDs)}
10
- gem.email = "jason@lookforwardenterprises.com"
11
- gem.homepage = "http://github.com/midas/usesguid"
12
- gem.authors = ["Brian Morearty","Demetrio Nunes","Robert Aman","C. Jason Harrelson(midas)"]
13
- gem.add_development_dependency "rspec"
14
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
- end
16
- Jeweler::GemcutterTasks.new
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
19
- end
20
-
21
- require 'spec/rake/spectask'
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << 'lib' << 'spec'
24
- spec.spec_files = FileList['spec/**/*_spec.rb']
25
- end
26
-
27
- Spec::Rake::SpecTask.new(:rcov) do |spec|
28
- spec.libs << 'lib' << 'spec'
29
- spec.pattern = 'spec/**/*_spec.rb'
30
- spec.rcov = true
31
- end
32
-
33
- task :spec => :check_dependencies
34
-
35
- task :default => :spec
36
-
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
39
- if File.exist?('VERSION')
40
- version = File.read('VERSION')
41
- else
42
- version = ""
43
- end
44
-
45
- rdoc.rdoc_dir = 'rdoc'
46
- rdoc.title = "usesguid #{version}"
47
- rdoc.rdoc_files.include('README*')
48
- rdoc.rdoc_files.include('lib/**/*.rb')
49
- end
1
+ require "bundler/gem_tasks"
data/lib/usesguid.rb CHANGED
@@ -1,13 +1,14 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
-
3
+
4
4
  require 'usesguid/active_record_extensions'
5
5
  require 'usesguid/uuid22'
6
6
  require 'usesguid/uuid_mysql'
7
+ require 'usesguid/uuid_sqlserver'
7
8
  require 'usesguid/uuidtools'
8
9
 
9
10
  module Usesguid
10
11
  VERSION = '1.0.0'
11
12
  end
12
13
 
13
- ActiveRecord::Base.class_eval { include Usesguid::ActiveRecordExtensions } if defined?( ActiveRecord::Base )
14
+ ActiveRecord::Base.class_eval { include Usesguid::ActiveRecordExtensions } if defined?( ActiveRecord::Base )
@@ -6,47 +6,54 @@
6
6
  # 3. set the id before create instead of after initialize
7
7
  #
8
8
  # MIT License
9
-
10
- #require 'uuid22'
11
- #require 'uuid_mysql'
12
-
13
9
  module Usesguid
14
10
  module ActiveRecordExtensions
15
-
16
- #def self.append_features( base )
11
+
17
12
  def self.included( base )
18
13
  super
19
14
  base.extend( ClassMethods )
20
15
  end
21
16
 
22
-
17
+
23
18
  module ClassMethods
24
-
19
+
25
20
  # guid_generator can be :timestamp or :mysql
26
21
  def guid_generator=(generator); class_eval { @guid_generator = generator } end
27
22
  def guid_generator; class_eval { @guid_generator || :timestamp } end
28
-
23
+
24
+ def guid_compression=(compression); class_eval { @guid_compression = compression } end
25
+ def guid_compression; class_eval { @guid_compression || 's' } end
26
+
27
+ def guid_column=(column); class_eval { @guid_column = column } end
28
+ def guid_column; class_eval { @guid_column || 'id' } end
29
+
29
30
  def usesguid(options = {})
30
-
31
+ options[:as] ||= :primary_key
32
+
31
33
  class_eval do
32
- set_primary_key options[:column] if options[:column]
33
-
34
- before_create :assign_guid
34
+ if options[:as] == :primary_key && options[:column]
35
+ self.primary_key = options[:column]
36
+ end
37
+
38
+ before_validation :assign_guid
35
39
 
36
- # Give this record a guid id. Public method so people can call it before save if necessary.
37
40
  def assign_guid
38
- self[self.class.primary_key] ||= case ActiveRecord::Base.guid_generator
39
- when :mysql then UUID.mysql_create(self.connection)
40
- when :timestamp then UUID.timestamp_create()
41
- else raise "Unrecognized guid generator '#{ActiveRecord::Base.guid_generator.to_s}'"
42
- end.to_s22
41
+ self[ActiveRecord::Base.guid_column] ||= (ActiveRecord::Base.guid_generator == :database ?
42
+ UUID.send( "#{ActiveRecord::Base.connection.adapter_name.downcase}_create" ) :
43
+ UUID.timestamp_create).send( "to_#{ActiveRecord::Base.guid_compression}" )
43
44
  end
44
45
 
45
46
  end
46
47
 
47
48
  end
48
49
 
50
+ def validate_guid( options={} )
51
+ validates_presence_of( ActiveRecord::Base.guid_column )
52
+ validates_uniqueness_of( ActiveRecord::Base.guid_column )
53
+ validates_length_of( ActiveRecord::Base.guid_column, :maximum => (ActiveRecord::Base.guid_compression == 's22' ? 22 : 36), :allow_blank => true )
54
+ end
55
+
49
56
  end
50
-
57
+
51
58
  end
52
- end
59
+ end
@@ -7,7 +7,8 @@ class UUID
7
7
 
8
8
  # Make an array of 64 URL-safe characters
9
9
  @@chars64=('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a + ['-','_']
10
- #return a 22 byte URL-safe string, encoded six bits at a time using 64 characters
10
+
11
+ # return a 22 byte URL-safe string, encoded six bits at a time using 64 characters
11
12
  def to_s22
12
13
  integer=self.to_i
13
14
  rval=''
@@ -18,7 +19,8 @@ class UUID
18
19
  end
19
20
  return rval.reverse
20
21
  end
21
- # Create a new UUID from a 22char string
22
+
23
+ # Create a new UUID from a 22char string
22
24
  def self.parse22(s)
23
25
  # get the integer representation
24
26
  integer=0
@@ -39,5 +41,6 @@ class UUID
39
41
  end
40
42
  return new(time_low, time_mid, time_hi_and_version,
41
43
  clock_seq_hi_and_reserved, clock_seq_low, nodes)
42
- end
44
+ end
45
+
43
46
  end
@@ -2,26 +2,29 @@
2
2
  # Written by Brian Morearty
3
3
  # MIT License
4
4
 
5
- #require 'uuidtools'
6
-
7
5
  class UUID
8
6
 
9
7
  BUCKET_SIZE = 50
10
8
  @@guid_bucket_mutex = Mutex.new
11
9
  @@guid_bucket = nil
12
-
10
+
13
11
  # We'll retrieve a bunch of guids at a time to reduce the # of DB round-trips.
14
12
  # If the guid bucket is empty, re-fill it by calling MySQL. Then return a guid.
15
- def UUID.mysql_create(connection=ActiveRecord::Base.connection)
13
+ def self.mysql_create(connection=ActiveRecord::Base.connection)
16
14
  raise "UUID.mysql_create only works with MySQL" unless connection.adapter_name.downcase =~ /mysql/
15
+
17
16
  @@guid_bucket_mutex.synchronize do
18
17
  if @@guid_bucket.blank?
19
18
  uuid_functions = Array.new(BUCKET_SIZE, "UUID()")
20
- @@guid_bucket = connection.execute("SELECT #{uuid_functions.join(',')}").fetch_row
19
+ @@guid_bucket = connection.execute("SELECT #{uuid_functions.join(',')}").first
21
20
  end
22
- # My tests show shift is much faster than slice!(0), pop, or delete_at(0)
21
+ # My tests show shift is much faster than slice!(0), pop, or delete_at(0)
23
22
  parse @@guid_bucket.shift
24
23
  end
25
24
  end
26
25
 
26
+ def self.mysql2_create(connection=ActiveRecord::Base.connection)
27
+ mysql_create connection
28
+ end
29
+
27
30
  end
@@ -0,0 +1,8 @@
1
+ class UUID
2
+
3
+ def self.sqlserver_create(connection=ActiveRecord::Base.connection)
4
+ raise "UUID.sql_server_create only works with SQL Server" unless connection.adapter_name.downcase =~ /sqlserver/
5
+ parse connection.newid_function
6
+ end
7
+
8
+ end
@@ -34,58 +34,58 @@ require 'digest/md5'
34
34
  # Because it's impossible to hype a UUID generator on its genuine merits,
35
35
  # I give you... Really bad ASCII art in the comments:
36
36
  #
37
- #
38
- # \
39
- # /
40
- # +
41
- # ]
42
- # ]
43
- # |
44
- # /
45
- # Mp___
46
- # `~0NNp,
47
- # __ggM'
48
- # g0M~"`
49
- # ]0M*-
50
- #
51
- # ___
52
- # _g000M00g,
53
- # j0M~ ~M&
54
- # j0M" ~N,
55
- # j0P M&
56
- # jM 1
57
- # j0 ]1
58
- # .0P 0,
59
- # 00' M&
60
- # 0M ]0L
61
- # ]0f ___ M0
62
- # M0NN0M00MMM~"'M 0&
63
- # `~ ~0 ]0,
64
- # ]M ]0&
65
- # M& M0,
66
- # ____gp_ M& M0_
67
- # __p0MPM8MM&_ M/ ^0&_
68
- # gN"` M0N_j0, MM&__
69
- # _gF `~M0P` __ M00g
70
- # g0' gM0&, ~M0&
71
- # _pM` 0, ]M1 "00&
72
- # _00 /g1MMgj01 ]0MI
73
- # _0F t"M,7MMM 00I
74
- # g0' _ N&j& 40'
75
- # g0' _p0Mq_ ' N0QQNM#g,
76
- # 0' _g0000000g__ ~M@MMM000g
77
- # f _jM00@` ~M0000Mgppg, "P00&
78
- # | g000~ `~M000000&_ ~0&
79
- # ]M _M00F "00MM` ~#&
80
- # `0L m000F #E "0f
81
- # 9r j000M` 40, 00
82
- # ]0g_ j00M` ^M0MNggp#gqpg M0&
83
- # ~MPM0f ~M000000000g_ ,_ygg&M00f
84
- # `~~~M00000000000000
85
- # `M0000000000f
86
- # ~@@@MF~`
87
- #
88
- #
37
+ #
38
+ # \
39
+ # /
40
+ # +
41
+ # ]
42
+ # ]
43
+ # |
44
+ # /
45
+ # Mp___
46
+ # `~0NNp,
47
+ # __ggM'
48
+ # g0M~"`
49
+ # ]0M*-
50
+ #
51
+ # ___
52
+ # _g000M00g,
53
+ # j0M~ ~M&
54
+ # j0M" ~N,
55
+ # j0P M&
56
+ # jM 1
57
+ # j0 ]1
58
+ # .0P 0,
59
+ # 00' M&
60
+ # 0M ]0L
61
+ # ]0f ___ M0
62
+ # M0NN0M00MMM~"'M 0&
63
+ # `~ ~0 ]0,
64
+ # ]M ]0&
65
+ # M& M0,
66
+ # ____gp_ M& M0_
67
+ # __p0MPM8MM&_ M/ ^0&_
68
+ # gN"` M0N_j0, MM&__
69
+ # _gF `~M0P` __ M00g
70
+ # g0' gM0&, ~M0&
71
+ # _pM` 0, ]M1 "00&
72
+ # _00 /g1MMgj01 ]0MI
73
+ # _0F t"M,7MMM 00I
74
+ # g0' _ N&j& 40'
75
+ # g0' _p0Mq_ ' N0QQNM#g,
76
+ # 0' _g0000000g__ ~M@MMM000g
77
+ # f _jM00@` ~M0000Mgppg, "P00&
78
+ # | g000~ `~M000000&_ ~0&
79
+ # ]M _M00F "00MM` ~#&
80
+ # `0L m000F #E "0f
81
+ # 9r j000M` 40, 00
82
+ # ]0g_ j00M` ^M0MNggp#gqpg M0&
83
+ # ~MPM0f ~M000000000g_ ,_ygg&M00f
84
+ # `~~~M00000000000000
85
+ # `M0000000000f
86
+ # ~@@@MF~`
87
+ #
88
+ #
89
89
 
90
90
  #= uuidtools.rb
91
91
  #
@@ -108,7 +108,7 @@ class UUID
108
108
  @@last_clock_sequence = nil
109
109
  @@state_file = nil
110
110
  @@mutex = Mutex.new
111
-
111
+
112
112
  def initialize(time_low, time_mid, time_hi_and_version,
113
113
  clock_seq_hi_and_reserved, clock_seq_low, nodes)
114
114
  unless time_low >= 0 && time_low < 4294967296
@@ -137,7 +137,7 @@ class UUID
137
137
  unless nodes.respond_to? :size
138
138
  raise ArgumentError,
139
139
  "Expected nodes to respond to :size."
140
- end
140
+ end
141
141
  unless nodes.size == 6
142
142
  raise ArgumentError,
143
143
  "Expected nodes to have size of 6."
@@ -156,14 +156,14 @@ class UUID
156
156
  @clock_seq_low = clock_seq_low
157
157
  @nodes = nodes
158
158
  end
159
-
159
+
160
160
  attr_accessor :time_low
161
161
  attr_accessor :time_mid
162
162
  attr_accessor :time_hi_and_version
163
163
  attr_accessor :clock_seq_hi_and_reserved
164
164
  attr_accessor :clock_seq_low
165
165
  attr_accessor :nodes
166
-
166
+
167
167
  # Parses a UUID from a string.
168
168
  def UUID.parse(uuid_string)
169
169
  unless uuid_string.kind_of? String
@@ -261,7 +261,7 @@ class UUID
261
261
  clock_seq_low = clock_sequence & 0xFF;
262
262
  clock_seq_hi_and_reserved = (clock_sequence & 0x3F00) >> 8
263
263
  clock_seq_hi_and_reserved |= 0x80
264
-
264
+
265
265
  return UUID.new(time_low, time_mid, time_hi_and_version,
266
266
  clock_seq_hi_and_reserved, clock_seq_low, nodes)
267
267
  end
@@ -271,12 +271,12 @@ class UUID
271
271
  def UUID.md5_create(namespace, name)
272
272
  return UUID.create_from_hash(Digest::MD5, namespace, name)
273
273
  end
274
-
274
+
275
275
  # Creates a UUID using the SHA1 hash. (Version 5)
276
276
  def UUID.sha1_create(namespace, name)
277
277
  return UUID.create_from_hash(Digest::SHA1, namespace, name)
278
278
  end
279
-
279
+
280
280
  # This method applies only to version 1 UUIDs.
281
281
  # Checks if the node ID was generated from a random number
282
282
  # or from an IEEE 802 address (MAC address).
@@ -287,7 +287,7 @@ class UUID
287
287
  return false if self.version != 1
288
288
  return ((self.nodes.first & 0x01) == 1)
289
289
  end
290
-
290
+
291
291
  # Returns true if this UUID is the
292
292
  # nil UUID (00000000-0000-0000-0000-000000000000).
293
293
  def nil_uuid?
@@ -301,7 +301,7 @@ class UUID
301
301
  end
302
302
  return true
303
303
  end
304
-
304
+
305
305
  # Returns the UUID version type.
306
306
  # Possible values:
307
307
  # 1 - Time-based with unique or random host identifier
@@ -331,7 +331,7 @@ class UUID
331
331
  end
332
332
  return (result >> 6)
333
333
  end
334
-
334
+
335
335
  # Returns true if this UUID is valid.
336
336
  def valid?
337
337
  if [0b000, 0b100, 0b110, 0b111].include?(self.variant) &&
@@ -341,7 +341,7 @@ class UUID
341
341
  return false
342
342
  end
343
343
  end
344
-
344
+
345
345
  # Returns the IEEE 802 address used to generate this UUID or
346
346
  # nil if a MAC address was not used.
347
347
  def mac_address
@@ -351,7 +351,7 @@ class UUID
351
351
  sprintf("%2.2x", node)
352
352
  end).join(":")
353
353
  end
354
-
354
+
355
355
  # Returns the timestamp used to generate this UUID
356
356
  def timestamp
357
357
  return nil if self.version != 1
@@ -363,7 +363,7 @@ class UUID
363
363
  return Time.at(
364
364
  (gmt_timestamp_100_nanoseconds - 0x01B21DD213814000) / 10000000.0)
365
365
  end
366
-
366
+
367
367
  # Compares two UUIDs lexically
368
368
  def <=>(other_uuid)
369
369
  check = self.time_low <=> other_uuid.time_low
@@ -387,22 +387,22 @@ class UUID
387
387
  end
388
388
  return 0
389
389
  end
390
-
390
+
391
391
  # Returns a representation of the object's state
392
392
  def inspect
393
393
  return "#<UUID:0x#{self.object_id.to_s(16)} UUID:#{self.to_s}>"
394
394
  end
395
-
395
+
396
396
  # Returns the hex digest of the UUID object.
397
397
  def hexdigest
398
398
  return self.to_i.to_s(16)
399
399
  end
400
-
400
+
401
401
  # Returns the raw bytes that represent this UUID.
402
402
  def raw
403
403
  return UUID.convert_int_to_byte_string(self.to_i, 16)
404
404
  end
405
-
405
+
406
406
  # Returns a string representation for this UUID.
407
407
  def to_s
408
408
  result = sprintf("%8.8x-%4.4x-%4.4x-%2.2x%2.2x-", @time_low, @time_mid,
@@ -412,7 +412,7 @@ class UUID
412
412
  end
413
413
  return result
414
414
  end
415
-
415
+
416
416
  # Returns an integer representation for this UUID.
417
417
  def to_i
418
418
  bytes = (time_low << 96) + (time_mid << 80) +
@@ -423,7 +423,7 @@ class UUID
423
423
  end
424
424
  return bytes
425
425
  end
426
-
426
+
427
427
  # Returns a URI for this UUID.
428
428
  def to_uri
429
429
  return URI.parse(self.to_uri_string)
@@ -433,7 +433,7 @@ class UUID
433
433
  def to_uri_string
434
434
  return "urn:uuid:#{self.to_s}"
435
435
  end
436
-
436
+
437
437
  def UUID.create_from_hash(hash_class, namespace, name) #:nodoc:
438
438
  if hash_class == Digest::MD5
439
439
  version = 3
@@ -449,7 +449,7 @@ class UUID
449
449
  hash_string = hash.to_s[0..31]
450
450
  new_uuid = UUID.parse("#{hash_string[0..7]}-#{hash_string[8..11]}-" +
451
451
  "#{hash_string[12..15]}-#{hash_string[16..19]}-#{hash_string[20..31]}")
452
-
452
+
453
453
  new_uuid.time_hi_and_version &= 0x0FFF
454
454
  new_uuid.time_hi_and_version |= (version << 12)
455
455
  new_uuid.clock_seq_hi_and_reserved &= 0x3F
@@ -497,7 +497,7 @@ class UUID
497
497
  end
498
498
  end
499
499
  end
500
-
500
+
501
501
  # Returns 128 bits of highly unpredictable data.
502
502
  # The random number generator isn't perfect, but it's
503
503
  # much, much better than the built-in pseudorandom number generators.
@@ -536,7 +536,7 @@ class UUID
536
536
  hash.update(performance.inspect)
537
537
  return UUID.convert_int_to_byte_string(hash.to_s[4..35].to_i(16), 16)
538
538
  end
539
-
539
+
540
540
  def UUID.convert_int_to_byte_string(integer, size) #:nodoc:
541
541
  byte_string = ""
542
542
  for i in 0..(size - 1)
@@ -558,4 +558,4 @@ end
558
558
  UUID_DNS_NAMESPACE = UUID.parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8")
559
559
  UUID_URL_NAMESPACE = UUID.parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8")
560
560
  UUID_OID_NAMESPACE = UUID.parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8")
561
- UUID_X500_NAMESPACE = UUID.parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")
561
+ UUID_X500_NAMESPACE = UUID.parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")
@@ -0,0 +1,3 @@
1
+ module Usesguid
2
+ VERSION = "1.1.0"
3
+ end
data/usesguid.gemspec CHANGED
@@ -1,58 +1,23 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'usesguid/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = %q{usesguid}
8
- s.version = "1.0.0"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "usesguid"
8
+ spec.version = Usesguid::VERSION
9
+ spec.authors = ["C. Jason Harrelson"]
10
+ spec.email = ["jason@lookforwardenterprises.com"]
11
+ spec.description = %q{A much faster version of the usesguid plugin for Rails ported to a gem (uses database for GUID generation)}
12
+ spec.summary = %q{A much faster version of the usesguid plugin for Rails ported to a gem}
13
+ spec.homepage = "https://github.com/midas/usesguid"
14
+ spec.license = "MIT"
9
15
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Brian Morearty", "Demetrio Nunes", "Robert Aman", "C. Jason Harrelson(midas)"]
12
- s.date = %q{2009-11-13}
13
- s.description = %q{A much faster version of the usesguid plugin for Rails (uses MySQL to generate GUIDs)}
14
- s.email = %q{jason@lookforwardenterprises.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- "History.txt",
21
- "LICENSE",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "lib/usesguid.rb",
26
- "lib/usesguid/active_record_extensions.rb",
27
- "lib/usesguid/uuid22.rb",
28
- "lib/usesguid/uuid_mysql.rb",
29
- "lib/usesguid/uuidtools.rb",
30
- "script/console",
31
- "spec/spec_helper.rb",
32
- "spec/usesguid_spec.rb",
33
- "usesguid.gemspec"
34
- ]
35
- s.homepage = %q{http://github.com/midas/usesguid}
36
- s.rdoc_options = ["--charset=UTF-8"]
37
- s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.3.5}
39
- s.summary = %q{A much faster version of the usesguid plugin for Rails}
40
- s.test_files = [
41
- "spec/spec_helper.rb",
42
- "spec/usesguid_spec.rb"
43
- ]
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
44
20
 
45
- if s.respond_to? :specification_version then
46
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
47
- s.specification_version = 3
48
-
49
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
50
- s.add_development_dependency(%q<rspec>, [">= 0"])
51
- else
52
- s.add_dependency(%q<rspec>, [">= 0"])
53
- end
54
- else
55
- s.add_dependency(%q<rspec>, [">= 0"])
56
- end
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
57
23
  end
58
-
metadata CHANGED
@@ -1,82 +1,103 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: usesguid
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
- - Brian Morearty
8
- - Demetrio Nunes
9
- - Robert Aman
10
- - C. Jason Harrelson(midas)
7
+ authors:
8
+ - C. Jason Harrelson
11
9
  autorequire:
12
10
  bindir: bin
13
11
  cert_chain: []
14
-
15
- date: 2009-11-13 00:00:00 -06:00
16
- default_executable:
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
19
- name: rspec
12
+ date: 2013-07-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
20
22
  type: :development
21
- version_requirement:
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: "0"
27
- version:
28
- description: A much faster version of the usesguid plugin for Rails (uses MySQL to generate GUIDs)
29
- email: jason@lookforwardenterprises.com
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: A much faster version of the usesguid plugin for Rails ported to a gem
47
+ (uses database for GUID generation)
48
+ email:
49
+ - jason@lookforwardenterprises.com
30
50
  executables: []
31
-
32
51
  extensions: []
33
-
34
- extra_rdoc_files:
35
- - LICENSE
36
- - README.rdoc
37
- files:
38
- - History.txt
39
- - LICENSE
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - LICENSE.txt
40
57
  - README.rdoc
41
58
  - Rakefile
42
- - VERSION
43
59
  - lib/usesguid.rb
44
60
  - lib/usesguid/active_record_extensions.rb
45
61
  - lib/usesguid/uuid22.rb
46
62
  - lib/usesguid/uuid_mysql.rb
63
+ - lib/usesguid/uuid_sqlserver.rb
47
64
  - lib/usesguid/uuidtools.rb
65
+ - lib/usesguid/version.rb
48
66
  - script/console
49
67
  - spec/spec_helper.rb
50
68
  - spec/usesguid_spec.rb
51
69
  - usesguid.gemspec
52
- has_rdoc: true
53
- homepage: http://github.com/midas/usesguid
54
- licenses: []
55
-
70
+ homepage: https://github.com/midas/usesguid
71
+ licenses:
72
+ - MIT
56
73
  post_install_message:
57
- rdoc_options:
58
- - --charset=UTF-8
59
- require_paths:
74
+ rdoc_options: []
75
+ require_paths:
60
76
  - lib
61
- required_ruby_version: !ruby/object:Gem::Requirement
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- version: "0"
66
- version:
67
- required_rubygems_version: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: "0"
72
- version:
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ segments:
84
+ - 0
85
+ hash: -2136879917900583215
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ segments:
93
+ - 0
94
+ hash: -2136879917900583215
73
95
  requirements: []
74
-
75
96
  rubyforge_project:
76
- rubygems_version: 1.3.5
97
+ rubygems_version: 1.8.25
77
98
  signing_key:
78
99
  specification_version: 3
79
- summary: A much faster version of the usesguid plugin for Rails
80
- test_files:
100
+ summary: A much faster version of the usesguid plugin for Rails ported to a gem
101
+ test_files:
81
102
  - spec/spec_helper.rb
82
103
  - spec/usesguid_spec.rb
data/History.txt DELETED
@@ -1,3 +0,0 @@
1
- = 1.0.0 2009-11-13
2
-
3
- * Ported from a plugin to gem by C. Jason Harrelson (midas)
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.0