lespoupeesrusses/promethee

View on GitHub
doc/CLEAN_LOCALIZATIONS.md

Summary

Maintainability
Test Coverage
# Clean Localizations

## Info

Before Prométhée 2.0, we copied the master's attributes in the localizations. Problem is, if a non-translatable attribute were changed in the master, the localization would keep the old value, so the translated page was stuck in an outdated state.

## Rake task

### Usage

You can use a rake task to clean your localizations : `rake promethee:clean_localizations[MODEL_NAME]`. Example:

```bash
$ rake promethee:clean_localizations[Page]
```

### Customize

If you have custom components or override native ones, you have to override the task.
To add rules for the whitelist : `service.add_rule(TYPE, ATTRIBUTES)`. (By default, `ATTRIBUTES` is an empty array, deleting every attribute of the localization)

Example:

```ruby
# File: lib/tasks/promethee.rake

Rake::Task["promethee:clean_localizations"].clear

namespace :promethee do

  desc "Remove useless attributes from localizations' data"
  task :clean_localizations, [:model_name] => :environment do |task, args|
    service = Promethee::LocalizeCleanService.new(args[:model_name])
    service.add_rule("cta", ["searchable_title", "button_text"])
    service.start
  end

end
```