Sha256: 001477cf8f8be9bac423c9e6cdb111b7f419d99b63439814ebc641092bab98e9

Contents?: true

Size: 842 Bytes

Versions: 68

Compression:

Stored size: 842 Bytes

Contents

require 'rubygems'
require 'uuidtools'

module ActiveRecord
  module Sixguid #:nodoc:
    def self.append_features(base)
      super
      base.extend(ClassMethods)
    end

    module ClassMethods
      def six_guid(options = {})
        class_eval do
          #  set_primary_key options[:column] if options[:column]

          before_create :assign_guid

          # Give this record a guid id.  Public method so people can call it before save if necessary.
          def assign_guid
            unless self.id
              begin
                self.id = UUIDTools::UUID.timestamp_create().to_s
              rescue
                self.id = UUIDTools::UUID.random_create().to_s
              end
            end
          end
        end
      end
    end
  end
end

ActiveRecord::Base.class_eval do
  include ActiveRecord::Sixguid
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
six-updater-web-0.24.15 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.14 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.13 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.12 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.11 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.10 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.9 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.8 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.7 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.6 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.5 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.4 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.3 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.2 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.1 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.24.0 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.23.7 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.23.6 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.23.5 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb
six-updater-web-0.23.4 lib/six-updater-web/vendor/plugins/six-guid/lib/six/guid.rb