Skip to content

#humanize does not handle "é" #50

@francois

Description

@francois

Describe the bug

inflector.humanize("éclaireurs")
#=> "éclaireurs"

The uppercase version "é" is "É". I expected to receive "Éclaireurs". This affects all characters I tried: ê, ï, à.

It could be argued that it isn't the job of the inflector to work in such cases, but the API is convenient :)

In the Hanami 2.2 app that I'm building, humans will record roles in a field. The roles may be typed in different casings, but I normalize to downcase for sorting, then humanize for display. I will add a #normalized_role to make things consistent, but having this in the inflector sure would have been nice.

To Reproduce

require 'bundler/inline'
gemfile do
  gem 'dry-inflector', '~> 1.0'
end

puts RUBY_VERSION

inflector = Dry::Inflector.new
actual = inflector.humanize('éclaireurs')
if actual == 'Éclaireurs'
  puts 'OK'
else
  p actual
  puts 'failed'
end

Expected behavior

"éclaireurs" #=> "Éclaireurs"

My environment

  • Affects my production application: YES, but not a biggie for now
  • Ruby version: 3.2.4
  • OS: Sonoma 14.5 (23F79)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions