module Kilt::Slugger

Public Class Methods

lookup_the_suggested_prefix_for(object) click to toggle source
# File lib/kilt/slugger.rb, line 47
def lookup_the_suggested_prefix_for object
  Kilt.send(object['type'].to_sym)['slug_prefix']
end
make_slug_unique(slug) click to toggle source
# File lib/kilt/slugger.rb, line 20
def make_slug_unique slug
  "#{slug}-#{(Time.now.to_f * 1000).to_i}"
end
possibly_duplicate_slug_for(object) click to toggle source
# File lib/kilt/slugger.rb, line 24
def possibly_duplicate_slug_for object
  if object['slug'].to_s.strip == ''
    if prefix = prefix_for(object)
      "#{prefix}-#{slugified_value_for(object)}"
    else
      slugified_value_for(object)
    end
  else
    "#{object['slug']}"
  end
end
prefix_for(object) click to toggle source
# File lib/kilt/slugger.rb, line 40
def prefix_for object
  return nil unless prefix = lookup_the_suggested_prefix_for(object)
  slug = slugified_value_for object
  slug.starts_with?(prefix) && slug != prefix ? nil
                                              : prefix
end
slug_for(object) click to toggle source
# File lib/kilt/slugger.rb, line 5
def self.slug_for object
  slug = possibly_duplicate_slug_for object
  slug_is_unique_for?(slug, object) ? slug
                                    : make_slug_unique(slug)
end
slug_is_unique_for?(slug, object) click to toggle source
# File lib/kilt/slugger.rb, line 13
def slug_is_unique_for? slug, object
  result = Utils.database.find(slug)
  return true if result.nil?

  "#{result['unique_id']}" == "#{object['unique_id']}"
end
slugified_value_for(object) click to toggle source
# File lib/kilt/slugger.rb, line 36
def slugified_value_for object
  Utils.slugify(object['name'])
end