mbleigh/acts-as-taggable-on — pull request #604 by randoum (2014-10-24 01:44:35+00:00)
Title: Fix tag with accent triggering ActsAsTaggableOn::DuplicateTagError 

Creating a tag named "spécifique", then a tag named "specifique" would raise ActsAsTaggableOn::DuplicateTagError

SQL server being correctly configured recognizes that `"spécifique" == "specifique"`, but acts-as-taggable-on does not.

---

I implemented 2 things in this PR, sorry for the confusion but I was obliged to fix that spec bug in order to correctly deliver my PR. Here are the details:

**1) fix rspec bug**

Several specs was setting `ActsAsTaggableOn.strict_case_match = true` without reinitializing it after, which may input invalid settings for the other specs, and all depending on the order specs are run. I cleaned that by replacing all instances of
```
it 'should do something' do
ActsAsTaggableOn.strict_case_match = true
...
end
```
by
```
it 'should do something', strict_case_match: true do
...
end
```

The `strict_case_match` flag correctly sets `ActsAsTaggableOn.strict_case_match = true` before the examples and reset it to `false` after the examples.

**2) Use I18n transliterate for unicode comparison**

The main reason of this PR: In order to correctly compare strings such as "spécifique" and "specifique" I added `I18n.transliterate` to `Tag#comparable_name`. This also has the advantage to support I18n, so users of acts-as-taggable-on can use I18n to precisely define unicode comparison according to their language.

Example:
In english "Jürgen" would be compared to ASCII "Jurgen"
In german "Jürgen" would be compared to ASCII "Juergen"
And this can be set in locale yml files

More info: http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-transliterate

---

Seems to be also a fix for #227
Let me know what you guys think