lib/pseudocephalopod.rb in pseudocephalopod-0.2.4 vs lib/pseudocephalopod.rb in pseudocephalopod-0.2.5
- old
+ new
@@ -6,75 +6,75 @@
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/concern'
module Pseudocephalopod
extend ActiveSupport::Autoload
-
+
mattr_accessor :cache_key_prefix, :cache
-
+
class << self
-
+
def with_counter(prefix, counter = 0)
counter < 1 ? prefix : "#{prefix}--#{counter}"
end
-
+
def next_value(scope, prefix)
counter = 0
slug = self.with_counter(prefix, counter)
while scope.with_cached_slug(slug).exists?
counter += 1
slug = self.with_counter(prefix, counter)
end
slug
end
-
+
def uuid
@uuid ||= UUID.new
end
-
+
def generate_uuid_slug
uuid.generate
end
-
+
def last_known_slug_id(scope, slug)
Pseudocephalopod::Slug.id_for(Pseudocephalopod.key_for_scope(scope), slug)
end
-
+
def record_slug(record, slug)
Pseudocephalopod::Slug.record_slug(record, slug)
end
-
+
def previous_slugs_for(record)
Pseudocephalopod::Slug.previous_for(record)
end
-
+
def remove_slug_history_for(record)
Pseudocephalopod::Slug.remove_history_for(record)
end
-
+
def key_for_scope(scope)
if scope.respond_to?(:slug_scope_key)
scope.slug_scope_key
elsif scope.class.respond_to?(:slug_scope_key)
scope.class.slug_scope_key
else
scope.to_s
end
end
-
+
end
-
+
self.cache_key_prefix ||= "cached-slugs"
-
+
autoload :Caching
autoload :Scopes
autoload :Finders
autoload :SlugHistory
autoload :Slug
autoload :MemoryCache
-
+
require 'pseudocephalopod/active_record_methods'
ActiveRecord::Base.extend Pseudocephalopod::ActiveRecordMethods
-
+
require 'pseudocephalopod/railtie' if defined?(Rails::Railtie)
-
-end
\ No newline at end of file
+
+end