More at rubyonrails.org: Overview | Download | Deploy | Code | Screencasts | Documentation | Ecosystem | Community | Blog

Names Mapping and Special Cases

Rails used Subversion until April 2008. That's more than three years in its history as an Open Source project.

Since Subversion does not distinguish authors from committers, credit was given in informal ways. Convention was the commit message put the contributor or contributors in square brackets at the end, as in:

  Improving railties test coverage. Closes #11496 [miloops]

or somewhere in some CHANGELOG associated with the commit, as in:

  * Alias association #build to #new so it behaves predictably. #8787 [lifofifo]

In fact, even nowadays with Git the author field occasionally needs some normalization, for example

  Yehuda Katz + Carl Lerche

and credit is still done in the commit message for lots of patches, as in

  Ensure HTTP Digest auth uses appropriate HTTP method [#2490 state:resolved] [Steve Madsen]

You'll find there lots of ways to refer to the same person, names, email addresses, IRC nicks, and all sort of handlers. This application normalizes them using the mapping in Names Mapping.

Also, since this was done by hand there are typos, special cases, etc. These are dealt with as you see in Special Cases.

If you find any missing bit here please just PM fxn somewhere.

Names Mapping

Name Also seen in logs as…
Aaron Eisenberger "Aaron"
Aaron Namba "anamba"
Aaron Pfeifer "obrie"
Aaron Todd "ozzyaaron"
Abhay Kumar "abhay"
Adam Johnson "adamj"
Adam Kramer "adam﹫the-kramers.net"
Adam Majer "adamm﹫galacticasoftware.com"
Adam Wiggins "adamwiggins"
Adam Williams "aiwilliams"
Adelle Hartley "adelle﹫bullet.net.au"
Akira Ikeda "ikeda﹫dream.big.or.jp"
Akira Matsuda "松田 明"
Akira Tagoh "tagoh"
Albert Lash "docunext"
Alex Chaffee "alexch"
Alex Mishyn "amishyn"
Alex Pooley "alex﹫msgpad.com"
Alex Wayne "rubyonrails﹫beautifulpixel.com" and "Squeegy"
Alex Wolfe "alexkwolfe﹫gmail.com"
Alexander Borovsky "alex.borovsky﹫gmail.com"
Alexander Dymo "adymo" and "dymo﹫mk.ukrtelecom.ua"
Alexander Staubo "alex﹫purefiction.net" and "alex﹫byzantine.no"
Alexander Uvarov "wildchild"
Alexey Zatsepin "alexey" and "Alexey"
Aliaksey Kandratsenka "Aleksey Kondratenko"
Anand Muthukrishnan "Anand"
Andreas Isaksson "isak"
Andreas Wurm "Kanetontli", "Kane", and "kane"
Andrew A. Smith "andy﹫tinnedfruit.org"
Andrew Bennett "PotatoSalad"
Andrew Chase "acechase" and "Andrew"
Andrew Grim "stopdropandrew"
Andrew Kaspick "akaspick﹫gmail.com", "akaspick", and "andrew﹫redlinesoftware.com"
Andrew Peters "andrew.john.peters﹫gmail.com"
Andrew Shcheglov "windock"
Andrew White "pixeltrix"
Andy Lien "andylien﹫gmail.com"
Ant Ramm "antramm"
Anthony Eden "aeden"
Anup Narkhede "railsbob"
Ariejan de Vroom "ariejan"
Artem Kramarenko "artemk"
Arthur Zapparoli "arthurgeek"
Ashley Moran "work﹫ashleymoran.me.uk"
Ask Bjørn Hansen "ask﹫develooper.com"
Assaf Arkin "assaf.arkin﹫gmail.com" and "Assaf"
August Zaitzow Flatby "zaitzow﹫gmail.com"
August Zajonc "augustz﹫augustz.com"
Ayose Cazorla "Ayose"
Bagwan Pankaj "bagwanpankaj"
Bas van Klinkenberg "flash﹫vanklinkenbergsoftware.nl"
Ben Bangert "ben﹫groovie.org"
Ben Sandofsky "sandofsky"
Ben Scofield "bscofield"
Ben Sinclair "ben﹫bensinclair.com"
Benedikt Deicke "benedikt"
Benjamin Curtis "rails﹫bencurtis.com"
Bermi Ferrer "bermi"
Bert Goethals "BertG"
Blaine Cook "Blaine", "blaine", and "blaine﹫odeo.com"
Blair Zajac "blair﹫orcaware.com"
Blake Watters "blake﹫near-time.com"
Blane Dabney "mdabney﹫cavoksolutions.com"
Bob Aman "bob﹫sporkmonger.com"
Bob Silva "BobSilva" and "ruby﹫bobsilva.com"
Brad Ediger "brad.ediger﹫madriska.com", "brad﹫madriska.com", and "bradediger"
Brad Ellis "bellis﹫deepthought.org"
Brad Greenlee "bgreenlee"
Brandon Keepers "brandon" and "brandon﹫opensoul.org"
Brandt Kurowski "brandt﹫kurowski.net"
Brendan Baldwin "brendan"
Brent Miller "Foliosus"
Brian Donovan "eventualbuddha" and "devslashnull﹫gmail.com"
Brian Egge "brianegge﹫yahoo.com"
Brian Gernhardt "benji﹫silverinsanity.com"
Brian Mattern "rephorm﹫rephorm.com"
Brian Morearty "BMorearty"
Brian Pearce "brianp"
Bruce Williams "wbruce﹫gmail.com"
Bruno Miranda "brupm"
Bryan Helmkamp "brynary"
Bryan Kang "deepblue"
Caio Chassot "caio" and "k﹫v2studio.com"
Caleb Tennis "caleb﹫aei-tech.com"
Calvin Yu "cyu"
Carl Tashian "tashian"
Cesar Ho "codafoo"
Chad Humphries "spicycode"
Chad Ingram "matrix9180"
Chad Pytel "cpytel"
Chad Woolley "thewoolleyman"
Chaitanya Vellanki "chaitanyav"
Charles M. Gerungan "charles.gerungan﹫gmail.com"
Chas Grundy "chas"
Cheah Chu Yeow "Chu Yeow" and "chuyeow"
Choon Keat "choonkeat﹫gmail.com" and "choonkeat"
Chris Anderson "jchris"
Chris Brinker "chris﹫chrisbrinker.com"
Chris Carter "cdcarter﹫gmail.com"
Chris Finne "chrisfinne" and "chris finne"
Chris Hapgood "cch1"
Chris Kampmeier "kampers"
Chris McGrath "c.r.mcgrath﹫gmail.com", "c.r.mcgrath", "chris﹫octopod.info", and "octopod"
Chris Mear "chris﹫feedmechocolate.com" and "chrismear"
Chris O'Sullivan "thechrisoshow"
Chris Roos "chrisroos" and "chris﹫seagul.co.uk"
Chris Wanstrath "chris﹫ozmm.org" and "defunkt"
Christopher Redinger "redinger"
Chriztian Steinmeier "chriztian.steinmeier﹫gmail.com"
Clifford Heath "cjheath"
Clifford T. Matthews "ctm"
Coda Hale "codahale"
Cody Fauser "codyfauser﹫gmail.com"
Courtenay Gasking "court3nay", "courtenay", and "court3nay﹫gmail.com"
Craig Davey "eigentone" and "eigentone﹫gmail.com"
Cristi Balan "Cristi BALAN"
Damian Janowski "djanowski"
Damien Mathieu "dmathieu"
Dan Cheail "codeape"
Dan Croak "dancroak"
Dan Kubb "dkubb"
Dan Manges "dcmanges"
Dan Peterson "dpiddy﹫gmail.com"
Dan Sketcher "dansketcher﹫gmail.com"
Dane Jensen "careo"
Daniel Hobe "daniel﹫nightrunner.com"
Daniel Morrison "danielmorrison"
Daniel Rodríguez Troitiño "drodriguez"
Daniel Sheppard "daniels﹫pronto.com.au"
Daniel Wanja "daniel﹫nouvelles-solutions.com"
Dave Dribin "dave-ml﹫dribin.org"
Dave Lee "dave﹫cherryville.org"
Dave Murphy "Wintermute"
Dave Naffis "naffis"
Dave Thomas "dave﹫pragprog.com" and "pragdave"
David A. Black "dblack" and "dblack﹫wobblini.net"
David Altenburg "gensym﹫mac.com"
David Calavera "calavera" and "david.calavera"
David Chelimsky "dchelimsky"
David Demaree "ddemaree"
David Dollar "ddollar"
David E. Wheeler "Theory"
David Easley "easleydp﹫gmail.com"
David Felstead "david.felstead﹫gmail.com" and "dfelstead﹫site5.com"
David Heinemeier Hansson "DHH"
David Morton "mortonda﹫dgrmm.net"
David N. Welton "davidw"
David Raynes "rayners"
David Rice "davidjrice"
David Roetzel "rails﹫roetzel.de"
David Rose "doppler﹫gmail.com"
David Rupp "david﹫ruppconsulting.com"
David Weitzman "dweitzman﹫gmail.com"
DeLynn Berry "Delynn", "DeLynn", "delynnb", "DeLynn Barry", "DeLynnB", "DelynnB", "DeLynn B", and "delynn﹫gmail.com"
Dee Zsombor "Dee.Zsombor", "zsombor", and "Dee.Zsombor﹫gmail.com"
Deirdre Saoirse "deirdre﹫deirdre.net"
Demetrius Nunes "demetrius" and "Demetrius"
Derek DeVries "devrieda"
Derrick Spell "derrickspell﹫cdmplus.com"
Dick Davies "rasputnik"
Diego Giorgini "ogeidix"
Dieter Komendera "kommen"
Dirkjan Bussink "dbussink"
Dmitrii Samoilov "german"
Dmitriy Timokhin "pager"
Dmitry Lipovoi "pleax"
Dominic Sisneros "dom﹫sisna.com"
Don Park "don.park﹫gmail.com"
Donald Piret "donald.piret﹫synergetek.be"
Dr Nic Williams "drnic" and "Dr Nic"
Duane Johnson "duane.johnson﹫gmail.com" and "canadaduane"
Duff OMelia "dj﹫omelia.org"
Duncan Beevers "duncanbeevers"
Duncan Robertson "duncan﹫whomwah.com"
Eaden McKee "eadz" and "Eadz"
Eddie Cianci "defeated"
Eddie Stanley "eddiewould﹫paradise.net.nz"
Edward Betts "edward﹫debian.org"
Eelco Lempsink "rails﹫33lc0.net"
Elan Feingold "elan﹫bluemandrill.com"
Elijah Miller "elijah.miller﹫gmail.com" and "jqr"
Elliot Smith "elliot﹫townx.org"
Elliot Winkler "mcmire"
Elliot Yates "ejy"
Eloy Duran "alloy"
Emili Parreño "eparreno"
Emilio Tagua "miloops"
Eric Daspet "eric.daspet﹫survol.net"
Eric Hodel "drbrain﹫segment7.net"
Erik Abele "erik﹫codefaktor.de"
Erik Ordway "ordwaye﹫evergreen.edu"
Erik Terpstra "erik﹫ruby-lang.nl"
Erlend Halvorsen "ehalvorsen+rails﹫runbox.com"
Ernesto Jimenez "ernesto.jimenez"
Esad Hajdarevic "esad﹫esse.at" and "esad"
Eugene Pimenov "libc"
Evan DiBiase "edibiase"
Evan Henshaw-Plath "evan﹫protest.net"
Evan Weaver "evan"
Evgeny Zislis "evgeny.zislis﹫gmail.com"
Fabien Mannessier "fabien﹫odilat.com"
Farley Knight "farleyknight"
Farzad Farid "farzy"
Fedot Praslov "fedot"
Felix Dominguez "dacat"
Ferdinand Svehla "f.svehla﹫gmail.com" and "f.svehla"
Florian Munz "theflow"
Frank Müller "suchasurge"
François Beausoleil "François Beausolei", "Francois Beausoleil", "fbeausoleil﹫ftml.net", and "francois.beausoleil﹫gmail.com"
Frederick Cheung "fcheung", "Fred Cheung", "frederick.cheung", and "frederick.cheung﹫gmail.com"
Frederico Macedo "frederico"
Gabe da Silveira "dasil003"
Gabriel Gironda "gabriel.gironda﹫gmail.com" and "gabriel﹫gironda.org"
Ganesh Kumar "ganesh"
Gaspard Bucher "g.bucher﹫teti.ch"
Genki Takiuchi "takiuchi﹫drecom.co.jp"
Geoff Buesing "gbuesing" and "Geoffrey Buesing"
Geoff Coffey "gwcoffey"
Geoff Garside "ggarside"
Geoff Jacobsen "jacott"
Geoffrey Grosenbach "topfunky"
Georg Friedrich "gfriedrich"
Giovanni Intini "medlar﹫medlar.it" and "intinig"
Glen Gibb "grg"
Glenn Vanderburg "glv"
Graeme Mathieson "mathie"
Grant Hollingworth "grant﹫antiflux.org"
Greg Lappen "greg﹫lapcominc.com"
Grzegorz Daniluk "daniluk﹫yahoo.com"
Guillaume Carbonneau "guillaume"
Guy Naor "guy.naor﹫famundo.com"
Hal Brodigan "postmodern"
Hampton Catlin "hcatlin﹫gmail.com"
Hendrik Mans "hendrik﹫mans.de"
Hendy Irawan "ceefour"
Henrik Nyh "Henrik N", "henrik﹫nyh.se", and "henrik"
Herryanto Siatono "jugend"
Hiroshi Saito "hiroshi"
Hongli Lai (Phusion) "FooBarWidget", "Hongli Lai", and "Hongli Lai (Phusion"
Ian White "ian.w.white﹫gmail.com"
Ibrahim Abdullah "simply-phi"
Indrek Juhkam "innu"
Irfan Adilovic "Irfy"
Isaac Feliu "isaacfeliu"
Isaac Reuben "isaac﹫reuben.com"
Iván Vega "ivanvr"
J Kittiyachavalit "jkit"
Jack Christensen "jackc﹫hylesanderson.com"
Jack Danger Canty "danger" and "Danger"
Jacob Atzen "jacobat"
Jacob Fugal "lukfugl"
Jake Janovetz "janovetz"
Jakob Skjerning "Jakob S" and "jakob﹫mentalized.net"
James Adam "lazyatom" and "james.adam﹫gmail.com"
James Coglan "jcoglan"
James Conroy-Finn "jcf"
James Cox "imajes"
James Edward Gray II "james﹫grayproductions.net" and "JEG2"
James Golick "jamesgolick"
James Healy "yob"
James Lindley "jlindley"
James Mead "floehopper"
James Megquier "james﹫slashetc.com"
James Miller "bensie"
James Strachan "jstrachan"
James Tucker "raggi"
Jamie Hill "jamie"
Jamie Macey "jamie﹫bravenet.com" and "maceywj﹫telus.net"
Jamie Orchard-Hays "jamie﹫dang.com"
Jamie van Dyke "fearoffish"
Jamis Buck "Jamis"
Jan De Poorter "DefV"
Jan Krutisch "halfbyte"
Jan Prill "JanPrill﹫blauton.de"
Jan Schwenzien "jeanmartin"
Jan Xie "Jan"
Jared Haworth "jardeon"
Jarkko Laine "jarkko﹫jlaine.net", "Jarkko", and "jarkko"
Jason Frey "Jason Frey (Fryguy)"
Jason Garber "jgarber"
Jason Ketterman "anshkakashi"
Jason L Perry "ambethia"
Jason Roth "Jason"
Jason Stewart "jstewart"
Jason Stirk "jstirk﹫oobleyboo.com"
Javier Ramírez "jramirez"
Jay Levitt "jay﹫jay.fm"
Jean Baptiste Barth "jbbarth"
Jean Helou "jean.helou﹫gmail.com" and "jean.helou"
Jean-Philippe Bougie "jp.bougie﹫gmail.com"
Jeff Berg "jeff﹫ministrycentered.com"
Jeff Cohen "cohen.jeff﹫gmail.com"
Jeff Cole "rails﹫jeffcole.net"
Jeff Dutil "jdutil" and "ci skip"
Jeff Lindsay "progrium﹫gmail.com"
Jeffrey Hardy "packagethief"
Jeffrey Moss "jeff﹫opendbms.com"
Jens-Christian Fischer "jcfischer﹫gmail.com"
Jeremy Durham "jeremydurham﹫gmail.com"
Jeremy Evans "jeremyevans0﹫gmail.com", "jeremyevans", "jeremye﹫bsa.ca.gov", and "code﹫jeremyevans.net"
Jeremy Hopple "jeremy﹫jthopple.com"
Jeremy Kemper "bitsweat"
Jeremy Lightsmith "stellsmi"
Jeremy McAnally "jeremymcnally" and "jeremymcanally"
Jeremy Voorhis "jeremy﹫planetargon.com" and "jvoorhis"
Jerrett Taylor "jerrett﹫bravenet.com"
Jesse Merriman "jessemerriman﹫warpmail.net"
Jim Helm "perlguy﹫gmail.com"
Jim Hughes "jeem"
Jim Meyer "purp"
Jim Winstead "jimw﹫mysql.com"
Joe Ferris "jferris"
Joe Goldwasser "joe﹫mjg2.com"
Joel Watson "watsonian"
Joerg Diekmann "joergd﹫pobox.com"
Johan Sørensen "Johan Sorensen", "Johan Sörensen", "johan﹫johansorensen.com", and "johan﹫textdrive.com"
Johannes Barre "iGEL"
John Barnette "jbarnette"
John Barton "johnb"
John Mettraux "jmettraux"
John Nunemaker "nunemaker﹫gmail.com"
John Oxton "rails﹫electricvisions.com"
John Pignata "Developer" and "Jay Pignata"
John Sheets "dev﹫metacasa.net" and "jsheets"
John Warwick "jwarwick"
John Wells "jbwiv"
John Wilger "jwilger"
Jon Bright "jon﹫siliconcircus.com"
Jon Evans "jon.evans﹫pobox.com" and "evansj"
Jon Moses "jon﹫burningbush.us"
Jon Olson "jsolson﹫damogran.org"
Jon Seidel "JESii"
Jon Wood "jon﹫instance-design.co.uk" and "jon﹫blankpad.net"
Jonathan Bartlett "johnnyb"
Jonathan Garvin "jsgarvin"
Jonathan Goldman "jonnii"
Jonathan Leighton "turnip﹫turnipspatch.com"
Jonathan Viney "jonathan﹫bluewire.net.nz"
Jonathan Weiss "jweiss"
Jonathan Younger "jonathan﹫daikini.com"
Jonathan del Strother "Catfish" and "catfish"
Joost Baaij "joost" and "joost﹫spacebabies.nl"
Jordan McKible "jmckible﹫gmail.com"
Jordi Bunster "jordi"
Jose Angel Cortinas "jacortinas"
Joseph A. Martin "jmartin﹫desertflood.com"
Joseph Hosteny "jhosteny﹫mac.com"
Josh Goebel "Dreamer3", "dreamer3﹫gmail.com", and "yyyc514"
Josh Knowles "joshknowles﹫gmail.com"
Josh Owens "queso"
Josh Peek "josh", "Josh", "Joshua Peek", "joshpeek", and "josh﹫joshpeek.com"
Josh Starcher "josh.starcher﹫gmail.com"
Josh Susser "hasmanyjosh" and "josh﹫hasmanythrough.com"
Joshua Sierles "jsierles"
Joshua Wehner "jaw6"
José Valim "josevalim"
Juan De Bravo "juandebravo"
Juanjo Bazan "juanjo.bazan"
Julian Doherty "madlep"
Julian Tarkhanov "me﹫julik.nl" and "julik"
Justin Ball "jbasdf"
Justin French "justinfrench"
Justin Mecham "justin﹫aspect.net"
Jérôme Lipowicz "jerome"
Jørgen Orehøj Erichsen "joerichsen"
Kamal Fariz Mahyuddin "kamal"
Kamil Kukura "kamk"
Karel Miarka "kajism﹫yahoo.com"
Karel Minařík "karmi"
Kaspar Schiess "eule﹫space.ch"
Kazuhiro Yoshida "moriq﹫moriq.com", "moriq", and "kazuhiko﹫fdiary.net"
Keegan Quinn "keegan﹫thebasement.org"
Keith Gautreaux "kaygee" and "kgautreaux"
Keith Morrison "keithm﹫infused.org"
Ken Barker "ken.barker﹫gmail.com"
Ken Gerrard "backspace"
Ken Kunz "kennethkunz﹫gmail.com"
Ken Miller "kenneth.miller﹫bitfield.net"
Kevin Barnes "vinbarnes﹫gmail.com"
Kevin Clark "Kevin Clark kevin.clark﹫gmail.com", "kevin.clark﹫gmail.com", and "kevin.clark﹫gmal.com"
Kevin Jackson "foamdino﹫gmail.com"
Kevin Smith "codebrulee"
Kevin Watt "kevin﹫writesoon.com"
Kevin Williams "kevwil﹫gmail.com"
Kim Shrier "kim﹫tinker.com"
Kir Shatrov "kirs" and "Kir"
Kjetil Lerøen "leroen﹫gmail.com"
Koichi Tsutsumi "hakuja﹫hakuja.net"
Kornelius Kalnbach "murphy﹫cYcnus.de", "murpyh﹫rubychan.de", and "murphy"
Kouhei Sutou "kou"
Krishna Kotecha "krishna"
Kristopher Chambers "kristopher.chambers﹫gmail.com" and "kris_chambers"
Krzysztof Knapik "knapo"
Kubo Takehiro "kubo"
Kym McInerney "holodigm" and "Kym"
Kyosuke Morohashi "moro"
Lakshan Perera "laktek" and "lakshan"
Larry Williams "larrywilliams1﹫gmail.com"
Lars Francke "l.francke﹫gmx.de"
Lars Kanis "kanis﹫comcard.de"
Lars Pind "lars﹫pinds.com", "lars﹫pind.com", "Lars pind", and "lars pind"
Laurel Fan "laurel﹫gorgorg.org" and "laurelfan"
Lawrence Pit "lawrence"
Lee Jensen "outerim"
Lee Marlow "lmarlow" and "lmarlow﹫yahoo.com"
Lee O'Mara "lee﹫omara.ca"
Lennon Day-Reynolds "rcoder"
Leo Lou "l4u"
Leon Breedt "Leon Bredt"
Leslie A. Hensley "hensleyl﹫papermountain.org"
Lewis Jubb "minimudboy﹫gmail.com"
Logy Laps "logylaps"
Lon Baker "lon﹫speedymac.com"
Loren Johnson "lorenjohnson"
Lori Holden "lholden"
Louis St-Amour "LouisStAmour﹫gmail.com"
Luca Guidi "l.guidi"
Lugovoi Nikolai "meadow.nnick﹫gmail.com"
Luismi Cavallé "cavalle" and "cavelle"
Luke Ludwig "lukeludwig"
Luke Redpath "contact﹫lukeredpath.co.uk"
Maik Schmidt "contact﹫maik-schmidt.de"
Manfred Stienstra "m.stienstra﹫fngtps.com" and "manfred"
Manuel Holtgrewe "purestorm﹫ggnore.net"
Marc Huffnagle "mhuffnagle"
Marc Love "marclove"
Marc-André Cournoyer "macournoyer"
Marcel Molina Jr. "Marcel Molina", "Marcel", "Marcel Molina Jr", "marcel", "noradio", and "Marcel Mollina Jr."
Marcello Nuccio "marcenuc"
Marcin Szczepański "marcin﹫junkheap.net"
Mariusz Pękala "Arsen7"
Marjan Hratson "gmarik"
Mark A. Richman "mrichman"
Mark H. Wilkinson "mhw"
Mark Imbriaco "mark.imbriaco﹫pobox.com"
Mark James "mrj﹫bigpond.net.au"
Mark Lane "DrMark"
Mark R. James "mrj"
Mark Somerville "Spakman"
Mark Van Holstyn "lotswholetime"
Mark W. Foster "mfoster"
Markus Roberts "MarkusQ﹫reality.com"
Marshall Roch "mroch"
Marten Veldthuis "Marten"
Martin Emde "zraii﹫comcast.net" and "martin.emde﹫gmail.com"
Martin Gamsjaeger "snusnu"
Masashi Shimbo "shimbo﹫is.naist.jp"
Mason Hale "flowdelic"
Mathieu Arnold "mat﹫absolight.fr"
Mathieu Jobin "somekool﹫gmail.com"
Mathieu Ravaux "mathieuravaux"
Mats Persson "mats﹫imediatec.co.uk"
Matt Aimonetti "matt"
Matt Bauer "mattbauer"
Matt Boehlig "Matt B."
Matt Freels "freels"
Matt Lyon "mattly"
Matt Margolis "matt﹫mattmargolis.net"
Matt Mower "self﹫mattmower.com"
Matt Palmer "mpalmer" and "mpalmer﹫hezmatt.org"
Matt Parrish "mparrish﹫pearware.org"
Matt Pelletier "pelletierm﹫eastmedia.net"
Matthew Bass "pelargir"
Matthew Deiters "mdeiters"
Matthew Painter "mail﹫matthewpainter.co.uk"
Matthew Rudy Jacobs "MatthewRudy"
Matthew Vincent "neshmi"
Matthew Walker "matthew﹫walker.wattle.id.au"
Maxime Réty "Maxime RETY"
Melih Arda Yalçiner "Wizard"
Mica Eked "mica eked"
Micah Alles "alles﹫atomicobject.com"
Michael Cetrulo "Samus_"
Michael Daines "me﹫mdaines.com"
Michael Dewey "mike﹫michaeldewey.org"
Michael Galero "mikong"
Michael Hutchinson "mhutchin"
Michael Klishin "antares" and "Michael S. Klishin"
Michael Koziarski "Koz" and "nzkoz"
Michael Pearson "Mip Earson"
Michael Raidel "raidel﹫onemail.at"
Michael Schoen "Michael A. Schoen" and "schoenm﹫earthlink.net"
Michael Schubert "michael﹫schubert" and "michael﹫schubert.cx"
Michael Schuerig "michael﹫schuerig.de" and "Michael Shuerig"
Michael Sheakoski "GMFlash"
Michal Šafránek "wejn﹫box.cz"
Michiaki Baba "babie7a0﹫ybb.ne.jp"
Mike Boone "boone"
Mike Clark "mike﹫clarkware.com"
Mike Gunderloy "Michael Gunderloy"
Mike Laster "mlaster﹫metavillage.com"
Mike Mangino "mmangino﹫elevatedrails.com"
Mike Naberezny "mnaberez"
Mike Subelsky "subelsky"
Mikel Lindsaar "mikel" and "raasdnil"
Miklós Fazekas "mfazekas"
Mislav Marohnić "mislav", "mislaw", and "mislav﹫nippur.irb.hr"
Moses Hohman "moses"
Murray Steele "h-lame"
Nathan Weizenbaum "Nex3"
Nathaniel Talbott "ntalbott"
Neil Wilson "NeilW"
Nicholas Lee "emptysands﹫gmail.com"
Nicholas Seckar "Ulysses"
Nick Kallen "nkallen"
Nick Plante "zapnap"
Nick Sieger "nicksieger", "nicksieger﹫gmail.com", and "Nick"
Nicolas Blanco "slainer68"
Nicolas Cavigneaux "Bounga"
Nicolas Pouillard "nicolas.pouillard﹫gmail.com"
Nicolás Sanguinetti "foca"
Nik Wakelin "nik.wakelin" and "nik.kakelin"
Nikolay Petrachkov "jastix"
Nils Jonsson "nils﹫alumni.rice.edu"
Nils-Helge Garli Hegvik "nilsga"
Nobuhiro Imai "nov﹫yo.rim.or.jp"
Nobukazu Matake "nov"
Norbauer Inc "norbauer"
Norbert Crombach "norbert"
Norman Elton "normelton﹫gmail.com"
Obie Fernandez "ObieFernandez"
Oleg Andreev "oleganza"
Oleg Frolov "oleg.frolov﹫gmail.com"
Oleg Pudeyev "pudeyo﹫rpi.com"
Olivier Ansaldi "olivier_ansaldi﹫yahoo.com"
Olly Headey "lylo"
Orta Therox "orta"
Otto Hilska "mutru"
PJ Hyett "pjhyett﹫gmail.com"
Pablo Astigarraga "pote" and "PoTe"
Pascal Belloncle "psq"
Pascal Terjan "pterjan﹫mandriva.com"
Pat Maddox "pergesu﹫gmail.com"
Patrick Burleson "pburleson" and "pburleson﹫gmail.com"
Patrick Hurley "phurley﹫gmail.com"
Patrick Joyce "patrick.t.joyce"
Patrick Lenz "patrick﹫lenz.sh"
Pau "nosolopau"
Paul Butcher "paul﹫paulbutcher.com"
Paul Carey "paulccarey"
Paul Smith "paul﹫cnt.org"
Pelle Braendgaard "pelle" and "Pelle"
Per Wigren "tuxie﹫dekadance.se" and "Tuxie"
Perry Flinn "pbflinn"
Perry Smith "pedz"
Pete Yandell "notahat"
Peter Michaux "petermichaux﹫gmail.com"
Peter Williams "pezra"
Phil Bogle "philbogle﹫gmail.com"
Phil Hagelberg "technomancy﹫gmail.com" and "technomancy"
Phil Orwig "cluon"
Philip Hallstrom "phallstrom"
Philip Ross "phil.ross﹫gmail.com"
Philippe April "ror﹫philippeapril.com"
Phillip J. Birmingham "phillip﹫pjbsoftware.com"
Piers Cawley "pdcawley﹫bofh.org.uk"
Piotr Banasik "piotr﹫t-p-l.com" and "piotr"
Pirogov Evgenij "gmile"
Pivotal Labs "pivotal"
Prakash Murthy "prakashmurthy"
Pratik Naik "Pratik", "pratik", "lifofifo", and "lifo"
Rahul P. Chaudhari "RAHUL CHAUDHARI" and "Rahul Chaudhari"
Rainer Blessing "RainerBlessing"
Ramon Quezada "rayq" and "rpq"
Raphael Bauduin "raphinou﹫yahoo.com"
Ravil Bayramgalin "brainopia"
Rein Henrichs "ReinH"
Remco van 't Veer "remvee"
Rich Collins "richcollins" and "richcollins﹫gmail.com"
Richard Schneeman "Schneems"
Rick Bradley "rick﹫rickbradley.com"
Rick DeNatale "RubyRedRick"
Rick Olson "rick", "Rick", "Rick Olsen", "technoweenie﹫gmail.com", and "Rich Olson"
Rizwan Reza "rizwanreza"
Rob Anderton "Rob"
Rob Biedenharn "rabiedenharn" and "Rob﹫AgileConsultingLLC.com"
Rob Halff "info﹫rhalff.com"
Rob Rasmussen "rob.rasmussen﹫gmail.com"
Rob Sanheim "rsanheim", "rsanheim﹫gmail.com", and "rob﹫thinkrelevance.com"
Robby Russell "robbyrussell"
Robert Evans "revans"
Robert Pankowecki "Robert Pankowecki (Gavdi)"
Robert Speicher "rspeicher"
Robin Fisher "robinjfisher"
Robin H. Johnson "robbat2﹫gentoo.org"
Roderick van Domburg "roderickvd"
Rodney Ramdas "rramdas﹫gmail.com"
Rodrigo Navarro "reu"
Rohit Arondekar "rohit"
Roman Dittert "RomD"
Roman Le Négrate "Roman2K"
Ron DiFrango "rdifrango﹫captechventures.com"
Ross Kaffenberger "Ross Kaffenburger"
Ruben Nine "ruben.nine﹫gmail.com"
Russell Norris "RSL" and "rsl"
Ruy Asan "rubyruy"
Ryan Bates "ryanb"
Ryan Bigg "Radar"
Ryan Daigle "rwdaigle"
Ryan Davis "zenspider", "ryepup", and "ryand-ruby﹫zenspider.com"
Ryan Duryea "aguynamedryan"
Ryan Heath "rpheath"
Ryan McGeary "rmm5t"
Ryan Raaum "ryan.raaum﹫gmail.com"
Ryan Tomayko "rtomayko﹫gmail.com"
Rémy Coutable "rymai", "remy", "rymai﹫rymai.com", and "remy.coutable﹫gmail.com"
Sam Elliott "Samuel Elliott"
Sam Granieri "sjgman9"
Sam Kirchmeier "sam.kirchmeier﹫gmail.com"
Sam Stephenson "Sam" and "sam"
Sandra Metz "sandra.metz﹫duke.edu"
Sasha Gerrand "sgerrand"
Scott Bronson "bronson"
Scott Fleckenstein "nullstyle"
Scott Laird "scott﹫sigkill.org"
Scott Mace "rscottmace﹫gmail.com"
Scott Meade "smeade"
Scott Raymond "sco﹫scottraymond.net"
Scott Reilly "coffee2code"
Scott Schram "ScottSchram"
Sean Geoghegan "seangeo"
Sean Hussey "seanhussey"
Sean T Allen "sean﹫ardismg.com"
Sebastian Delmont "sd﹫notso.net"
Sebastian Graessl "bastilian"
Sebastian Kanthak "sebastian.kanthak﹫muehlheim.de", "sebastian.kanthak", and "skanthak"
Serg Podtynnyi "shtirlic"
Serge Balyuk "bgipsy"
Sergey Kojin "sergeykojin﹫gmail.com"
Sergey Nartimov "lest"
Sergio Gil "Sergio Gil Pérez de la Manga"
Seth Ladd "sethladd"
Seth Rasmussen "loincloth"
Shu-yu Guo "arc﹫uchicago.edu"
Shugo Maeda "shugo" and "shugo﹫ruby-lang.org"
Si Jobling "Si"
Simon Arnaud "maznawak﹫nerim.net"
Simon Harris "simon﹫redhillconsulting.com.au"
Simon Jefford "simonjefford"
Simon Moore "saimonmoore"
Simon Stapleton "simon.stapleton﹫gmail.com"
St. Louis Ruby Users Group "stlruby﹫googlegroups.com"
Stefan Kaes "skaes﹫web.de", "skaes", "Stephan Kaes", "Skaes", "skaes.web.de", "stefan", "Stefan", "skae", and "skaen"
Stephen Blackstone "sblackstone"
Stephen Haberman "stephenh﹫chase3000.com"
Stephen St. Martin "Steve St. Martin"
Stephen Sykes "sdsykes"
Stephen Touset "stephen﹫touset.org"
Stephen Veiss "sveiss"
Stephen Veit "sveit﹫tradeharbor.com"
Steve Purcell "stephen_purcell﹫yahoo.com"
Steve Richert "laserlemon"
Steven Bristol "stevenbristol" and "steve"
Steven Soroka "ssoroka78﹫gmail.com" and "ssoroka"
Stian Grytøyr "stian﹫grytoyr.net"
Sudara Williams "Sudara"
Sur Max "sur"
Surendra Singhi "ssinghi﹫kreeti.com"
Sven Klemm "sven﹫c3d2.de"
Tal Rotbart "redbeard"
Tarmo Tänav "tarmo", "tarmo_t", and "Tarmo Täna"
Taryn East "taryn", "taryneast", and "rubygirl﹫taryneast.org"
Tekin Suleyman "Tekin"
Teng Siong Ong "siong1987"
Thijs van der Vossen "thijsv", "thijs﹫vandervossen.net", and "thijs﹫fngtps.com"
Thomas Enebo "tom.enebo﹫gmail.com"
Thomas Fuchs "thomas﹫fesch.at" and "madrobby"
Thomas Sawyer "trans"
Thomas Watson Steen "watson"
Thong Kuah "kuahyeow"
Tiago Macedo "tmacedo"
Tieg Zaharia "tzaharia"
Tietew "tietew﹫tietew.net"
Tim Carpenter "timc"
Tim Fletcher "twoggle﹫gmail.com"
Tim Lucas "t.lucas﹫toolmantim.com" and "toolmantim"
Tim Pope "tpope", "Time Pope", "rails﹫tpope.info", and "pope"
Tim Trautmann "timct﹫mac.com"
Tobias Lütke "Tobias Luetke", "TobiasLuetke", "Tobias Luekte", and "xal"
Toby Cabot "toby cabot"
Todd Gehman "todd﹫robotcoop.com" and "todd"
Todd Hanson "hanson﹫surgery.wisc.edu"
Tom Brice "tomtoday" and "tomtoday﹫gmail.com"
Tom Fakes "tom﹫craz8.com"
Tom Hoefer "thoefer"
Tom Lieber "thomas﹫columbus.rr.com"
Tom Moertel "tom﹫moertel.com"
Tom Mornini "tmornini﹫infomania.com"
Tom Preston-Werner "mojombo"
Tom Ward "Tom ward", "tomafro", and "tom﹫popdog.net"
Trek Glowacki "trek"
Trent Ogren "misfo"
Trevor Squire "protocool"
Troels Petersen "tnp"
Tyler Kiley "tyler﹫kianta.com"
Tyler Kovacs "tyler.kovacs﹫gmail.com"
Victor Jalencas "victor-ronr-trac﹫carotena.net"
Vijay Dev "vijay" and "vijaydev"
Vitaly Kushner "vitaly"
Vlad Romascanu "vladr"
Wang Chun "wangchun"
Wes Gamble "weyus"
Wesley Beary "geemus"
Wesley Moxam "wmoxam"
Will Bryant "will.bryant" and "Will"
Will Harris "wharris"
Wilson Bilkovich "wilsonb﹫gmail.com" and "wilson"
Wolfgang Klinger "wolfgang﹫stufenlos.net"
Xavier Defrang "xavier"
Xavier Noria "fxn"
Xavier Shay "xaviershay"
Yehuda Katz "wycats"
Yoji Shidara "darashi﹫gmail.com"
Yonatan Feldman "yon﹫milliped.com" and "yon"
Yossef Mendelssohn "ymendel"
Yuri Leikind "leikind"
Yurii Rashkovskii "yrashk﹫gmail.com" and "yrashk﹫fp.org.ua"
Yury Korolev "yury"
Zac Williams "jzw"
Zach Dennis "zdennis"
Zachary Holt "z﹫wzph.com"
Zack Chandler "zackchandler"
Zheng Jia "zhengjia"
alancfrancis "alancfrancis﹫gmail.com"
maiha "anna", "anna﹫wota.jp", and "maiha﹫wota.jp"
okkez "okkez000﹫gmail.com"

Special Cases

# Note that this method is responsible for extracting names as they appear # in the original string. Canonicalization is done elsewhere. def self.handle_special_cases(name) case name when /\A#?\d+/ # Remove side effects of [5684] # Ensure WhiteListSanitizer allows dl tag [#2393 state:resolved] nil when /\A\s*\z/ nil when /^See rails ML/, /RAILS_ENV/ nil when /RubyConf/ # RubyConf '05 nil when /\AIncludes duplicates of changes/ # Includes duplicates of changes from 1.1.4 - 1.2.3 nil when 'update from Trac' nil when /\A['":]/ # ' # this quote fixes JavaScript syntax highlighting # Instead of checking Rails.env.test? in Failsafe middleware, check env["rails.raise_exceptions"] # ... This lets ajax pages still use format.js despite there being no params[:format] nil when 'RC1' # Prepare for Rails 2.2.0 [RC1] nil when /\Astat(e|us):/ # Fixed problem causes by leftover backup templates ending in tilde [state:committed #969] # Added ActionController::Translation module delegating to I18n #translate/#t and #localize/#l [status:committed #1008] nil when /\A#https/ # Signed-off-by: Michael Koziarski <michael\100koziarski.com> [#https://rails.lighthouseapp.com/attachments/106066/0001-Ensure-SqlBypass-use-ActiveRecord-Base-connection.patch state:committed] nil when '\\x00-\\x1f' # Fix ActiveSupport::JSON encoding of control characters [\x00-\x1f] nil when /\ACloses #\d+\z/i # Add shallow routes to the new router [Closes #3765] nil when /\AFixes #\d+\z/i # see https://github.com/rails/rails/commit/7db2ef47a1966113dd5d52c2f620b8496acabf56 nil when 'and' # see https://github.com/rails/rails/commit/d891ad4e92c4f4d854ba321c42000026b5c75187 nil when 'options' # see https://github.com/rails/rails/commit/bf176e9c7a1aa46b021384b91f4f9ec9a1132c0f nil when 'API DOCS' # see https://github.com/rails/rails/commit/9726ed8caf245c8702a781c9656f2b143a85f0f5 nil when 'ed3796434af6069ced6a641293cf88eef3b284da' # see https://github.com/rails/rails/commit/509aa663601defc7c821c253d010605951e9d986 nil when 'hat-tip to anathematic' # see https://github.com/rails/rails/commit/b67dc00eae310f61e02f1cae27ec78eb8c1c599b nil when 'props to Zarathu in #rubyonrails' # see https://github.com/rails/rails/commit/09b7e351316cb87a815678241fc90af549327cf3 nil when 'thanks Pratik!' # see https://github.com/rails/rails/commit/a6467802ff2be35c6665635f1cdfdcea07aeaa12 nil when /ci skip/i nil when 'Carlhuda' ['Yehuda Katz', 'Carl Lerche'] when 'tomhuda' ['Yehuda Katz', 'Tom Dale'] when "schoenm\100earthlink.net sandra.metz\100duke.edu" name.split when '=?utf-8?q?Adam=20Cig=C3=A1nek?=' 'Adam Cigánek' when '=?utf-8?q?Mislav=20Marohni=C4=87?=' 'Mislav Marohnić' when 'Thanks to Austin Ziegler for Transaction::Simple' 'Austin Ziegler' when 'nik.wakelin Koz' ['nik.wakelin', 'Koz'] when 'Jim Remsik and Tim Pope' ['Jim Remsik', 'Tim Pope'] when 'Jeremy Hopple and Kevin Clark' ['Jeremy Hopple', 'Kevin Clark'] when 'Yehuda Katz and Carl Lerche' ['Yehuda Katz', 'Carl Lerche'] when 'Ross Kaffenburger and Bryan Helmkamp' ['Ross Kaffenburger', 'Bryan Helmkamp'] when "me\100jonnii.com rails\100jeffcole.net Marcel Molina Jr." ["me\100jonnii.com", "rails\100jeffcole.net", 'Marcel Molina Jr.'] when "jeremy\100planetargon.com Marcel Molina Jr." ["jeremy\100planetargon.com", 'Marcel Molina Jr.'] when "matt\100mattmargolis.net Marcel Molina Jr." ["matt\100mattmargolis.net", 'Marcel Molina Jr.'] when "doppler\100gmail.com phil.ross\100gmail.com" ["doppler\100gmail.com", "phil.ross\100gmail.com"] when 'After much pestering from Dave Thomas' 'Dave Thomas' when 'Aredridel/earlier work by Michael Neumann' ['Aredridel', 'Michael Neumann'] when "jon\100blankpad.net)" # see 35d3ede ["jon\100blankpad.net"] when 'Nick Quaranto and Josh Nichols' ['Nick Quaranto', 'Josh Nichols'] when 'Sam Elliott and Santiago Pastorino' ['Sam Elliott', 'Santiago Pastorino'] when 'Santiago Pastorino and José Ignacio Costa' ['Santiago Pastorino', 'José Ignacio Costa'] when 'Santiago Pastorino and Sebastian Martinez' ['Santiago Pastorino', 'Sebastian Martinez'] when 'José Valim and Mikel Lindsaar' ['José Valim', 'Mikel Lindsaar'] when 'Santiago Pastorino and Carl Lerche' ['Santiago Pastorino', 'Carl Lerche'] when 'Santiago Pastorino and Emilio Tagua' ['Santiago Pastorino', 'Emilio Tagua'] when 'Neeraj Singh and Santiago Pastorino' ['Neeraj Singh', 'Santiago Pastorino'] when 'Jeroen van Dijk and Josh Kalderimis' ['Jeroen van Dijk', 'Josh Kalderimis'] when 'Nathan Zook and Ryan Bigg' ['Nathan Zook', 'Ryan Bigg'] when 'Ryan Bigg and Xavier Noria' ['Ryan Bigg', 'Xavier Noria'] when 'Oriol Gual and Josep M. Bach' ['Oriol Gual', 'Josep M. Bach'] when 'Sam Elliott and Ryan Bigg' ['Sam Elliott', 'Ryan Bigg'] when 'Gonzalo Rodriguez and Leonardo Capillera' ['Gonzalo Rodriguez', 'Leonardo Capillera'] when 'Carlos Antonio da Silva and Santiago Pastorino' ['Carlos Antonio da Silva', 'Santiago Pastorino'] when 'Jose and Yehuda' ['José Valim', 'Yehuda Katz'] when /\b\w+\+\w+@/ # The plus sign is taken to be a connector below, this catches some known # addresses that use a plus sign in the username, see unit tests for examples. # We know there's no case where the plus sign acts as well as a connector in # the same string. name.split(/\s*,\s*/).map(&:strip) when /\A(Spotted|Suggested|Investigation|earlier work|Aggregated)\s+by\s+(.*)/i # Spotted by Kevin Bullock # Suggested by Carl Youngblood # Investigation by Scott # earlier work by Michael Neumann # Aggregated by schoenm ~ at ~ earthlink.net $2 when /\A(?:DHH\s*)?via\s+(.*)/i # DHH via Jay Fields # via Tim Bray $1 when CONNECTORS_REGEXP # There are lots of these, even with a combination of connectors. # [Adam Milligan, Pratik] # [Rick Olson/Nicholas Seckar] # [Kevin Clark & Jeremy Hopple] # Yehuda Katz + Carl Lerche name.split(CONNECTORS_REGEXP).map(&:strip).reject do |part| part == 'others' || # foamdino ~ at ~ gmail.com/others part == '?' # Sam Stephenson/? end else # just return the candidate back name end end