Project

dibbler

0.0
No commit activity in last 3 years
No release in over 3 years
Dibbler is an engine containing entire backend for localized human readable URLs generation and integration.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 4.2
 Project Readme

Dibbler

Most enterprisingly unsuccessful entrepreneur. With this gem you can generate, manage and integrate pretty (human readable and localized) URL addresses into the web application. It uses DB table slugs on the background for storing URL translations for all supported languages.

Installation

Add gem to your Gemfile:

gem "dibbler"

Add database migrations to you application (you can modify DB structure accordingly before migrating):

$ rake dibbler:install:migrations
$ rake db:migrate

Filters

Content of DB table slugs can be simply segmented into several subsets with filter attribute. If filters are enabled, translation table loads only slugs with filter attribute matching the the current filter defined by current_app_filter option. With this system, you can store slugs for different application variants (subdomains) in a single DB table (if many application variants uses the same database).

Dibbler.setup do |config|
    config.use_filter = true
    config.current_app_filter = Rails.configuration.theme # contains "subdomain1", "subdomain2", etc.
    config.available_filter_urls = {
        subdomain1: "http://subdomain1.sample.com",
        subdomain2: "http://subdomain2.sample.com",
        subdomain3: "http://subdomain3.sample.com",
        subdomain4: "http://subdomain4.sample.com",
        subdomain5: "http://subdomain5.sample.com",
        subdomain6: "http://subdomain6.sample.com",
        subdomain7: "http://subdomain7.sample.com",
        subdomain7: "http://subdomain8.sample.com",
    }
    ...
end

Static slugs

You can define set of slugs which is integrated into translation tables by default (not necessary to generate it in generators). Static slugs can be configured in module configuration file:

Dibbler.setup do |config|
    config.static_slugs = [
        { locale: "cs", original: "search", translation: "vysledky-vyhledavani" },
        { locale: "en", original: "search", translation: "search-results" },
        { locale: "cs", original: "gallery", translation: "fotogalerie" },
        { locale: "en", original: "gallery", translation: "photogallery" },
    ]
    ...
end

Additionaly you can define filter attribute in each static slugs table.

Other configuration options

Other supported configuration options are:

  • disable_default_locale
  • downcase_translations