NameTamer: making sense of names
Add this line to your application's Gemfile:
gem 'name_tamer'
And then execute:
$ bundle
Or install it yourself as:
$ gem install name_tamer
Examples:
NameTamer['Mr. John Q. Smith III, MD'].simple_name # => John Smith
Or you can create an instance if you need several versions of the name
name_tamer = NameTamer::Name.new 'Mr. John Q. Smith III, MD'
name_tamer.slug # => john-smith
name_tamer.simple_name # => John Smith
name_tamer.nice_name # => John Q. Smith
name_tamer.contact_type # => :person
NameTamer will make an intelligent guess at the type of the name but it's not infallible. NameTamer likes it if you tell it whether the name is a person or an organization:
name_tamer = NameTamer::Name.new 'Di Doo Doo d.o.o.', contact_type: :organization
name_tamer.simple_name # => Di Doo Doo
There must be lots of name suffixes and prefixes that I haven't catered for, so please get in touch if name_tamer
doesn't recognise one that you've found.
If there are any other common two-word family names that I've missed then please let me know. name_tamer
tries to make sure Helena Bonham Carter gets slugified to helena-bonham-carter
and not helena-carter
, but I'm sure there are loads of two-word family names I don't know about.
Please read all the following articles before contributing:
- Personal names around the world
- Falsehoods Programmers Believe About Names
- Last Name First
- Namae (名前)
- Matts Name Parser
- Types of business entity
- List of professional designations in the United States
- List of post-nominal letters (United Kingdom)
- Nobiliary particle
- Spanish naming customs
- Unified style sheet for linguistics [PDF]
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- Thanks to Ryan Bigg for the guide to making your first gem https://github.com/radar/guides/blob/master/gem-development.md