Module: Pseudocephalopod
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/pseudocephalopod.rb,
lib/pseudocephalopod/slug.rb,
lib/pseudocephalopod/scopes.rb,
lib/pseudocephalopod/caching.rb,
lib/pseudocephalopod/finders.rb,
lib/pseudocephalopod/railtie.rb,
lib/pseudocephalopod/version.rb,
lib/pseudocephalopod/memory_cache.rb,
lib/pseudocephalopod/slug_history.rb,
lib/pseudocephalopod/active_record_methods.rb,
lib/generators/pseudocephalopod/slugs/slugs_generator.rb,
lib/generators/pseudocephalopod/slug_migration/slug_migration_generator.rb
Defined Under Namespace
Modules: ActiveRecordMethods, Caching, Finders, Generators, Scopes, SlugHistory, Version
Classes: MemoryCache, Railtie, Slug
Class Method Summary
collapse
Class Method Details
.generate_uuid_slug ⇒ Object
34
35
36
|
# File 'lib/pseudocephalopod.rb', line 34
def generate_uuid_slug
uuid.generate
end
|
.key_for_scope(scope) ⇒ Object
54
55
56
57
58
59
60
61
62
|
# File 'lib/pseudocephalopod.rb', line 54
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
|
.last_known_slug_id(scope, slug) ⇒ Object
.next_value(scope, prefix) ⇒ Object
20
21
22
23
24
25
26
27
28
|
# File 'lib/pseudocephalopod.rb', line 20
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
|
.previous_slugs_for(record) ⇒ Object
.record_slug(record, slug) ⇒ Object
.remove_slug_history_for(record) ⇒ Object
.uuid ⇒ Object
30
31
32
|
# File 'lib/pseudocephalopod.rb', line 30
def uuid
@uuid ||= UUID.new
end
|
.with_counter(prefix, counter = 0) ⇒ Object
16
17
18
|
# File 'lib/pseudocephalopod.rb', line 16
def with_counter(prefix, counter = 0)
counter < 1 ? prefix : "#{prefix}--#{counter}"
end
|