nomener 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +29 -0
- data/lib/nomener/compounders.rb +1 -1
- data/lib/nomener/helper.rb +2 -1
- data/lib/nomener/parser.rb +89 -42
- data/lib/nomener/version.rb +1 -1
- data/spec/nomener/names/guardian_spec.rb +596 -0
- data/spec/nomener/names/wikiquote_spec.rb +1946 -0
- data/spec/nomener/nomener_parser_spec.rb +7 -7
- data/spec/nomener/titles_spec.rb +2 -1
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7076e9a42e0c1a93f511e0b562ce72192aa81fe3
|
|
4
|
+
data.tar.gz: a4b8c2b7460a8d247de489dec7f22b24544e01bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 28ad116288d492b799f187f663e959f34d9913c96e3a963a89bfad0f5917e8636510727b98f389245fa4f31426b29fcc7bf249267b685d46d561ac8579675dea
|
|
7
|
+
data.tar.gz: d8c992eae234c4a95a415465b8017625d7429d8fb0156772f4def5be9e800010e3a6c9abe3132d5f4739d8f20ea86bd89100c78979c0c7ce832125e2490f6486
|
data/Rakefile
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'rspec/core/rake_task'
|
|
5
|
+
|
|
6
|
+
#RSpec::Core::RakeTask.new(:spec)
|
|
7
|
+
#task :default => :spec
|
|
8
|
+
|
|
9
|
+
rescue LoadError
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
task :default do
|
|
14
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
15
|
+
t.pattern = 'spec/nomener/*_spec.rb'
|
|
16
|
+
end
|
|
17
|
+
Rake::Task["spec"].execute
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
task :names do
|
|
21
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
22
|
+
t.pattern = 'spec/nomener/names/*_spec.rb'
|
|
23
|
+
end
|
|
24
|
+
Rake::Task["spec"].execute
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
task :rspec do
|
|
28
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
29
|
+
Rake::Task["spec"].execute
|
|
30
|
+
end
|
data/lib/nomener/compounders.rb
CHANGED
data/lib/nomener/helper.rb
CHANGED
|
@@ -24,7 +24,8 @@ module Nomener
|
|
|
24
24
|
n.tr!("\u0027\u2018\u201A\u2035\u2039\u300C\uFE41\uFF62", left) # replace left single quotes
|
|
25
25
|
n.tr!("\u0027\u2019\u201B\u2032\u203A\u300D\uFE42\uFF62", right) # replace left single quotes
|
|
26
26
|
|
|
27
|
-
n.gsub!(
|
|
27
|
+
n.gsub!(/\./, ' ')
|
|
28
|
+
n.gsub!(/[^\p{Alpha}\-&\/ \,\'\"#{leftleft}#{rightright}#{left}#{right}]/, "") # what others may be in a name?
|
|
28
29
|
n.gsub!(/\p{Blank}+/, " ") # compress whitespace
|
|
29
30
|
n.strip! # trim space
|
|
30
31
|
|
data/lib/nomener/parser.rb
CHANGED
|
@@ -21,7 +21,7 @@ module Nomener
|
|
|
21
21
|
# :spacelimit - the number of spaces to consider in the first name
|
|
22
22
|
#
|
|
23
23
|
# Returns a Nomener::Name object hopefully a parsed name of the string or nil
|
|
24
|
-
def self.parse(name, format = {:order => :
|
|
24
|
+
def self.parse(name, format = {:order => :auto, :spacelimit => 1})
|
|
25
25
|
begin
|
|
26
26
|
self.parse!(name, format)
|
|
27
27
|
rescue
|
|
@@ -36,40 +36,83 @@ module Nomener
|
|
|
36
36
|
#
|
|
37
37
|
# Returns a hash of name parts or nil
|
|
38
38
|
# Raises ArgumentError if 'name' is not a string or is empty
|
|
39
|
-
def self.parse!(name, format = {:order => :
|
|
39
|
+
def self.parse!(name, format = {:order => :auto, :spacelimit => 0})
|
|
40
40
|
raise ArgumentError, 'Name to parse not provided' unless (name.kind_of?(String) && !name.empty?)
|
|
41
41
|
|
|
42
42
|
name = Nomener::Helper.reformat(name)
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
# grab any identified nickname before working on the rest
|
|
45
|
+
nick = parse_nick!(name)
|
|
46
|
+
title = parse_title!(name)
|
|
47
|
+
|
|
48
|
+
# grab any suffix' we can find
|
|
49
|
+
suffix = parse_suffix!(name)
|
|
50
|
+
first = last = mittle = ""
|
|
51
|
+
|
|
52
|
+
# if there's a comma, it may be a useful hint
|
|
53
|
+
if !name.index(',').nil? # && (format[:order] == :auto || format[:order] == :lcf)
|
|
54
|
+
clues = name.split(",")
|
|
55
|
+
# convention is last, first
|
|
56
|
+
if clues.length == 2
|
|
57
|
+
last, first = clues
|
|
58
|
+
|
|
59
|
+
# Mies van der Rohe, Ludwig
|
|
60
|
+
# Snepscheut, Jan L. A. van de
|
|
61
|
+
# check the last by comparing a re-ordering of the name
|
|
62
|
+
first_parts = first.split " "
|
|
63
|
+
unless first_parts.length == 1
|
|
64
|
+
check = parse_last!("#{first} #{last}", :fl)
|
|
65
|
+
# let's trust the full name
|
|
66
|
+
if check != last
|
|
67
|
+
first = "#{first} #{last}".sub(check, '').strip
|
|
68
|
+
last = check
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
# titles are part of the first name
|
|
72
|
+
|
|
73
|
+
else
|
|
74
|
+
raise ParseError "Could not understand #{rename}"
|
|
75
|
+
end
|
|
76
|
+
elsif !name.index(" ").nil?
|
|
77
|
+
last = parse_last!(name, format[:order])
|
|
78
|
+
first, middle = parse_first!(name, format[:spacelimit])
|
|
79
|
+
elsif name.index(" ").nil?
|
|
80
|
+
first = name[0] # mononym
|
|
81
|
+
else
|
|
82
|
+
raise ParseError "Could not understand #{rename}"
|
|
83
|
+
end
|
|
49
84
|
|
|
50
85
|
{
|
|
51
|
-
:title => title,
|
|
52
|
-
:suffix => suffix,
|
|
53
|
-
:nick => nick,
|
|
54
|
-
:first => first,
|
|
55
|
-
:last => last,
|
|
56
|
-
:middle => middle
|
|
86
|
+
:title => (title || "").strip,
|
|
87
|
+
:suffix => (suffix || "").strip,
|
|
88
|
+
:nick => (nick || "").strip,
|
|
89
|
+
:first => (first || "").strip,
|
|
90
|
+
:last => (last || "").strip,
|
|
91
|
+
:middle => (middle || "").strip
|
|
57
92
|
}
|
|
58
93
|
end
|
|
59
94
|
|
|
95
|
+
def self.cleanup!(dirty)
|
|
96
|
+
dirty.gsub! /[^,\p{Alpha}]{2,}/, ''
|
|
97
|
+
dirty.squeeze! " "
|
|
98
|
+
# remove any trailing commas or whitespace
|
|
99
|
+
dirty.gsub! /[,|\s]+$/, ''
|
|
100
|
+
dirty.strip!
|
|
101
|
+
end
|
|
102
|
+
|
|
60
103
|
# Internal: pull off a title if we can
|
|
61
104
|
#
|
|
62
105
|
# nm - string of the name to parse
|
|
63
106
|
#
|
|
64
107
|
# Returns string of the title found or and empty string
|
|
65
|
-
def self.parse_title(nm)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
title.gsub!('.', '')
|
|
108
|
+
def self.parse_title!(nm)
|
|
109
|
+
titles = []
|
|
110
|
+
nm.gsub! TITLES do |title|
|
|
111
|
+
titles << title.strip
|
|
112
|
+
''
|
|
71
113
|
end
|
|
72
|
-
|
|
114
|
+
cleanup!(nm)
|
|
115
|
+
titles.join " "
|
|
73
116
|
end
|
|
74
117
|
|
|
75
118
|
# Internal: pull off what suffixes we can
|
|
@@ -77,13 +120,13 @@ module Nomener
|
|
|
77
120
|
# nm - string of the name to parse
|
|
78
121
|
#
|
|
79
122
|
# Returns string of the suffixes found or and empty string
|
|
80
|
-
def self.parse_suffix(nm)
|
|
123
|
+
def self.parse_suffix!(nm)
|
|
81
124
|
suffixes = []
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
125
|
+
nm.gsub! SUFFIXES do |suffix|
|
|
126
|
+
suffixes << suffix.strip
|
|
127
|
+
''
|
|
128
|
+
end
|
|
129
|
+
cleanup!(nm)
|
|
87
130
|
suffixes.join " "
|
|
88
131
|
end
|
|
89
132
|
|
|
@@ -92,14 +135,12 @@ module Nomener
|
|
|
92
135
|
# nm - string of the name to parse
|
|
93
136
|
#
|
|
94
137
|
# Returns string of the nickname found or and empty string
|
|
95
|
-
def self.parse_nick(nm)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
nicks.join(" ").strip
|
|
138
|
+
def self.parse_nick!(nm)
|
|
139
|
+
nm.sub!(/(?<=["'\(])([\p{Alpha}\-\ ']+?)(?=["'\)])/, '')
|
|
140
|
+
nick = $1.strip unless $1.nil?
|
|
141
|
+
nm.sub! /["'\(\)]{2}/, ''
|
|
142
|
+
nm.squeeze! " "
|
|
143
|
+
nick || ""
|
|
103
144
|
end
|
|
104
145
|
|
|
105
146
|
# Internal: parse last name from string
|
|
@@ -108,16 +149,22 @@ module Nomener
|
|
|
108
149
|
# format - symbol defaulting to "first last". See parse()
|
|
109
150
|
#
|
|
110
151
|
# Returns string of the last name found or an empty string
|
|
111
|
-
def self.parse_last(nm, format = :fl)
|
|
152
|
+
def self.parse_last!(nm, format = :fl)
|
|
112
153
|
last = ''
|
|
113
|
-
|
|
114
|
-
|
|
154
|
+
|
|
155
|
+
if format == :auto
|
|
156
|
+
format = :fl if nm.index(',').nil?
|
|
157
|
+
# format = :lcf if !nm.index(',').nil?
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
if format == :fl && n = nm.match(/\p{Blank}(?<fam>#{COMPOUNDS}[\p{Alpha}\-\']+)\Z/i)
|
|
161
|
+
last = n[:fam].strip
|
|
115
162
|
nm.sub!(last, "").strip!
|
|
116
|
-
elsif format == :lf && n = nm.match(/\A(?<fam>#{COMPOUNDS}[\p{Alpha}\-\']+)\p{Blank}/i)
|
|
117
|
-
last = n[:fam]
|
|
163
|
+
elsif format == :lf && n = nm.match(/\A(?<fam>#{COMPOUNDS}\b[\p{Alpha}\-\']+)\p{Blank}/i)
|
|
164
|
+
last = n[:fam].strip
|
|
118
165
|
nm.sub!(last, "").strip!
|
|
119
|
-
elsif format == :lcf && n = nm.match(/\A(?<fam>#{COMPOUNDS}[\p{Alpha}\-\'\p{Blank}]+),/i)
|
|
120
|
-
last = n[:fam]
|
|
166
|
+
elsif format == :lcf && n = nm.match(/\A(?<fam>#{COMPOUNDS}\b[\p{Alpha}\-\'\p{Blank}]+),/i)
|
|
167
|
+
last = n[:fam].strip
|
|
121
168
|
nm.sub!(last, "").strip!
|
|
122
169
|
nm.sub!(',', "").strip!
|
|
123
170
|
end
|
|
@@ -130,7 +177,7 @@ module Nomener
|
|
|
130
177
|
# namecount - the number of spaces in the first name to consider
|
|
131
178
|
#
|
|
132
179
|
# Returns an array containing the first name and middle name if any
|
|
133
|
-
def self.parse_first(nm, namecount = 0)
|
|
180
|
+
def self.parse_first!(nm, namecount = 0)
|
|
134
181
|
nm.tr! '.', ' '
|
|
135
182
|
first, middle = nm.split ' ', namecount
|
|
136
183
|
|
data/lib/nomener/version.rb
CHANGED
|
@@ -0,0 +1,596 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
# from http://www.theguardian.com/books/list/authorsaz
|
|
4
|
+
# { from: "Brooke Magnanti (Belle de Jour)", to: { full: "Brooke Magnanti (Belle de Jour)", first: "Brooke Magnanti (Belle de", last: "Jour)" } },
|
|
5
|
+
# { from: "Saki (Hector Hugh Munro)", to: { full: "Saki (Hector Hugh Munro)", first: "Saki (Hector Hugh", last: "Munro)" } },
|
|
6
|
+
# { from: "Steven D Levitt and Stephen J Dubner", to: { full: "Steven D Levitt and Stephen J Dubner", first: "Steven D Levitt and Stephen J", last: "Dubner" } },
|
|
7
|
+
|
|
8
|
+
RSpec.describe "The Guardian author list" do
|
|
9
|
+
context "with the names" do
|
|
10
|
+
[
|
|
11
|
+
{ from: "Chinua Achebe", to: { full: "Chinua Achebe", first: "Chinua", last: "Achebe" } },
|
|
12
|
+
{ from: "Peter Ackroyd", to: { full: "Peter Ackroyd", first: "Peter", last: "Ackroyd" } },
|
|
13
|
+
{ from: "Douglas Adams", to: { full: "Douglas Adams", first: "Douglas", last: "Adams" } },
|
|
14
|
+
{ from: "Chimamanda Ngozi Adichie", to: { full: "Chimamanda Ngozi Adichie", first: "Chimamanda Ngozi", last: "Adichie" } },
|
|
15
|
+
{ from: "Aaron Akinyemi", to: { full: "Aaron Akinyemi", first: "Aaron", last: "Akinyemi" } },
|
|
16
|
+
{ from: "Alexandra Harris", to: { full: "Alexandra Harris", first: "Alexandra", last: "Harris" } },
|
|
17
|
+
{ from: "Monica Ali", to: { full: "Monica Ali", first: "Monica", last: "Ali" } },
|
|
18
|
+
{ from: "Dante Alighieri", to: { full: "Dante Alighieri", first: "Dante", last: "Alighieri" } },
|
|
19
|
+
{ from: "Alistair Cooke", to: { full: "Alistair Cooke", first: "Alistair", last: "Cooke" } },
|
|
20
|
+
{ from: "Isabel Allende", to: { full: "Isabel Allende", first: "Isabel", last: "Allende" } },
|
|
21
|
+
{ from: "Kingsley Amis", to: { full: "Kingsley Amis", first: "Kingsley", last: "Amis" } },
|
|
22
|
+
{ from: "Martin Amis", to: { full: "Martin Amis", first: "Martin", last: "Amis" } },
|
|
23
|
+
{ from: "Maya Angelou", to: { full: "Maya Angelou", first: "Maya", last: "Angelou" } },
|
|
24
|
+
{ from: "Annie Proulx", to: { full: "Annie Proulx", first: "Annie", last: "Proulx" } },
|
|
25
|
+
{ from: "Jeffrey Archer", to: { full: "Jeffrey Archer", first: "Jeffrey", last: "Archer" } },
|
|
26
|
+
{ from: "Philip Ardagh", to: { full: "Philip Ardagh", first: "Philip", last: "Ardagh" } },
|
|
27
|
+
{ from: "Simon Armitage", to: { full: "Simon Armitage", first: "Simon", last: "Armitage" } },
|
|
28
|
+
{ from: "Isaac Asimov", to: { full: "Isaac Asimov", first: "Isaac", last: "Asimov" } },
|
|
29
|
+
{ from: "Åsne Seierstad", to: { full: "Åsne Seierstad", first: "Åsne", last: "Seierstad" } },
|
|
30
|
+
{ from: "Diana Athill", to: { full: "Diana Athill", first: "Diana", last: "Athill" } },
|
|
31
|
+
{ from: "Kate Atkinson", to: { full: "Kate Atkinson", first: "Kate", last: "Atkinson" } },
|
|
32
|
+
{ from: "Margaret Atwood", to: { full: "Margaret Atwood", first: "Margaret", last: "Atwood" } },
|
|
33
|
+
{ from: "WH Auden", to: { full: "WH Auden", first: "WH", last: "Auden" } },
|
|
34
|
+
{ from: "Jane Austen", to: { full: "Jane Austen", first: "Jane", last: "Austen" } },
|
|
35
|
+
{ from: "Paul Auster", to: { full: "Paul Auster", first: "Paul", last: "Auster" } },
|
|
36
|
+
|
|
37
|
+
{ from: "Julian Baggini", to: { full: "Julian Baggini", first: "Julian", last: "Baggini" } },
|
|
38
|
+
{ from: "Paul Bailey", to: { full: "Paul Bailey", first: "Paul", last: "Bailey" } },
|
|
39
|
+
{ from: "Beryl Bainbridge", to: { full: "Beryl Bainbridge", first: "Beryl", last: "Bainbridge" } },
|
|
40
|
+
{ from: "James Baldwin", to: { full: "James Baldwin", first: "James", last: "Baldwin" } },
|
|
41
|
+
{ from: "JG Ballard", to: { full: "JG Ballard", first: "JG", last: "Ballard" } },
|
|
42
|
+
{ from: "Iain Banks", to: { full: "Iain Banks", first: "Iain", last: "Banks" } },
|
|
43
|
+
{ from: "John Banville", to: { full: "John Banville", first: "John", last: "Banville" } },
|
|
44
|
+
{ from: "Clive Barker", to: { full: "Clive Barker", first: "Clive", last: "Barker" } },
|
|
45
|
+
{ from: "Pat Barker", to: { full: "Pat Barker", first: "Pat", last: "Barker" } },
|
|
46
|
+
{ from: "Nicola Barker", to: { full: "Nicola Barker", first: "Nicola", last: "Barker" } },
|
|
47
|
+
{ from: "Julian Barnes", to: { full: "Julian Barnes", first: "Julian", last: "Barnes" } },
|
|
48
|
+
{ from: "Sebastian Barry", to: { full: "Sebastian Barry", first: "Sebastian", last: "Barry" } },
|
|
49
|
+
{ from: "Donald Barthelme", to: { full: "Donald Barthelme", first: "Donald", last: "Barthelme" } },
|
|
50
|
+
{ from: "Belinda Bauer", to: { full: "Belinda Bauer", first: "Belinda", last: "Bauer" } },
|
|
51
|
+
{ from: "Nina Bawden", to: { full: "Nina Bawden", first: "Nina", last: "Bawden" } },
|
|
52
|
+
{ from: "Mary Beard", to: { full: "Mary Beard", first: "Mary", last: "Beard" } },
|
|
53
|
+
{ from: "Simone de Beauvoir", to: { full: "Simone de Beauvoir", first: "Simone", last: "de Beauvoir" } },
|
|
54
|
+
{ from: "Samuel Beckett", to: { full: "Samuel Beckett", first: "Samuel", last: "Beckett" } },
|
|
55
|
+
{ from: "Antony Beevor", to: { full: "Antony Beevor", first: "Antony", last: "Beevor" } },
|
|
56
|
+
{ from: "Saul Bellow", to: { full: "Saul Bellow", first: "Saul", last: "Bellow" } },
|
|
57
|
+
{ from: "Benjamin Markovits", to: { full: "Benjamin Markovits", first: "Benjamin", last: "Markovits" } },
|
|
58
|
+
{ from: "George Bernard Shaw", to: { full: "George Bernard Shaw", first: "George Bernard", last: "Shaw" } },
|
|
59
|
+
{ from: "Louis de Bernières", to: { full: "Louis de Bernières", first: "Louis", last: "de Bernières" } },
|
|
60
|
+
{ from: "John Betjeman", to: { full: "John Betjeman", first: "John", last: "Betjeman" } },
|
|
61
|
+
{ from: "Maeve Binchy", to: { full: "Maeve Binchy", first: "Maeve", last: "Binchy" } },
|
|
62
|
+
{ from: "Carol Birch", to: { full: "Carol Birch", first: "Carol", last: "Birch" } },
|
|
63
|
+
{ from: "Quentin Blake", to: { full: "Quentin Blake", first: "Quentin", last: "Blake" } },
|
|
64
|
+
{ from: "William Blake", to: { full: "William Blake", first: "William", last: "Blake" } },
|
|
65
|
+
{ from: "Enid Blyton", to: { full: "Enid Blyton", first: "Enid", last: "Blyton" } },
|
|
66
|
+
{ from: "Roberto Bolaño", to: { full: "Roberto Bolaño", first: "Roberto", last: "Bolaño" } },
|
|
67
|
+
{ from: "Katherine Boo", to: { full: "Katherine Boo", first: "Katherine", last: "Boo" } },
|
|
68
|
+
{ from: "Jorge Luis Borges", to: { full: "Jorge Luis Borges", first: "Jorge Luis", last: "Borges" } },
|
|
69
|
+
{ from: "William Boyd", to: { full: "William Boyd", first: "William", last: "Boyd" } },
|
|
70
|
+
{ from: "Ray Bradbury", to: { full: "Ray Bradbury", first: "Ray", last: "Bradbury" } },
|
|
71
|
+
{ from: "Barbara Taylor Bradford", to: { full: "Barbara Taylor Bradford", first: "Barbara Taylor", last: "Bradford" } },
|
|
72
|
+
{ from: "Stewart Brand", to: { full: "Stewart Brand", first: "Stewart", last: "Brand" } },
|
|
73
|
+
{ from: "Raymond Briggs", to: { full: "Raymond Briggs", first: "Raymond", last: "Briggs" } },
|
|
74
|
+
{ from: "Constance Briscoe", to: { full: "Constance Briscoe", first: "Constance", last: "Briscoe" } },
|
|
75
|
+
{ from: "Anne Brontë", to: { full: "Anne Brontë", first: "Anne", last: "Brontë" } },
|
|
76
|
+
{ from: "Charlotte Brontë", to: { full: "Charlotte Brontë", first: "Charlotte", last: "Brontë" } },
|
|
77
|
+
{ from: "Emily Brontë", to: { full: "Emily Brontë", first: "Emily", last: "Brontë" } },
|
|
78
|
+
{ from: "Anita Brookner", to: { full: "Anita Brookner", first: "Anita", last: "Brookner" } },
|
|
79
|
+
{ from: "Dan Brown", to: { full: "Dan Brown", first: "Dan", last: "Brown" } },
|
|
80
|
+
{ from: "Jeffrey Brown", to: { full: "Jeffrey Brown", first: "Jeffrey", last: "Brown" } },
|
|
81
|
+
{ from: "Anthony Browne", to: { full: "Anthony Browne", first: "Anthony", last: "Browne" } },
|
|
82
|
+
{ from: "Bill Bryson", to: { full: "Bill Bryson", first: "Bill", last: "Bryson" } },
|
|
83
|
+
{ from: "Mikhail Bulgakov", to: { full: "Mikhail Bulgakov", first: "Mikhail", last: "Bulgakov" } },
|
|
84
|
+
{ from: "Anthony Burgess", to: { full: "Anthony Burgess", first: "Anthony", last: "Burgess" } },
|
|
85
|
+
{ from: "Melvin Burgess", to: { full: "Melvin Burgess", first: "Melvin", last: "Burgess" } },
|
|
86
|
+
{ from: "Gordon Burn", to: { full: "Gordon Burn", first: "Gordon", last: "Burn" } },
|
|
87
|
+
{ from: "Robert Burns", to: { full: "Robert Burns", first: "Robert", last: "Burns" } },
|
|
88
|
+
{ from: "William Burroughs", to: { full: "William Burroughs", first: "William", last: "Burroughs" } },
|
|
89
|
+
{ from: "AS Byatt", to: { full: "AS Byatt", first: "AS", last: "Byatt" } },
|
|
90
|
+
{ from: "Lord Byron", to: { full: "Lord Byron", first: "Lord", last: "Byron" } },
|
|
91
|
+
|
|
92
|
+
{ from: "Carmen Callil", to: { full: "Carmen Callil", first: "Carmen", last: "Callil" } },
|
|
93
|
+
{ from: "Italo Calvino", to: { full: "Italo Calvino", first: "Italo", last: "Calvino" } },
|
|
94
|
+
{ from: "Albert Camus", to: { full: "Albert Camus", first: "Albert", last: "Camus" } },
|
|
95
|
+
{ from: "Truman Capote", to: { full: "Truman Capote", first: "Truman", last: "Capote" } },
|
|
96
|
+
{ from: "Peter Carey", to: { full: "Peter Carey", first: "Peter", last: "Carey" } },
|
|
97
|
+
{ from: "Carlos Fuentes", to: { full: "Carlos Fuentes", first: "Carlos", last: "Fuentes" } },
|
|
98
|
+
{ from: "Lewis Carroll", to: { full: "Lewis Carroll", first: "Lewis", last: "Carroll" } },
|
|
99
|
+
{ from: "Angela Carter", to: { full: "Angela Carter", first: "Angela", last: "Carter" } },
|
|
100
|
+
{ from: "Raymond Carver", to: { full: "Raymond Carver", first: "Raymond", last: "Carver" } },
|
|
101
|
+
{ from: "Eleanor Catton", to: { full: "Eleanor Catton", first: "Eleanor", last: "Catton" } },
|
|
102
|
+
{ from: "Miguel de Cervantes", to: { full: "Miguel de Cervantes", first: "Miguel", last: "de Cervantes" } },
|
|
103
|
+
{ from: "Michael Chabon", to: { full: "Michael Chabon", first: "Michael", last: "Chabon" } },
|
|
104
|
+
{ from: "Raymond Chandler", to: { full: "Raymond Chandler", first: "Raymond", last: "Chandler" } },
|
|
105
|
+
{ from: "Rajiv Chandrasekaran", to: { full: "Rajiv Chandrasekaran", first: "Rajiv", last: "Chandrasekaran" } },
|
|
106
|
+
{ from: "Bruce Chatwin", to: { full: "Bruce Chatwin", first: "Bruce", last: "Chatwin" } },
|
|
107
|
+
{ from: "Geoffrey Chaucer", to: { full: "Geoffrey Chaucer", first: "Geoffrey", last: "Chaucer" } },
|
|
108
|
+
{ from: "Anton Chekhov", to: { full: "Anton Chekhov", first: "Anton", last: "Chekhov" } },
|
|
109
|
+
{ from: "GK Chesterton", to: { full: "GK Chesterton", first: "GK", last: "Chesterton" } },
|
|
110
|
+
{ from: "Lauren Child", to: { full: "Lauren Child", first: "Lauren", last: "Child" } },
|
|
111
|
+
{ from: "Chris Ware", to: { full: "Chris Ware", first: "Chris", last: "Ware" } },
|
|
112
|
+
{ from: "Agatha Christie", to: { full: "Agatha Christie", first: "Agatha", last: "Christie" } },
|
|
113
|
+
{ from: "Christopher Isherwood", to: { full: "Christopher Isherwood", first: "Christopher", last: "Isherwood" } },
|
|
114
|
+
{ from: "CJ Sansom", to: { full: "CJ Sansom", first: "CJ", last: "Sansom" } },
|
|
115
|
+
{ from: "Tom Clancy", to: { full: "Tom Clancy", first: "Tom", last: "Clancy" } },
|
|
116
|
+
{ from: "John Clare", to: { full: "John Clare", first: "John", last: "Clare" } },
|
|
117
|
+
{ from: "Arthur C Clarke", to: { full: "Arthur C Clarke", first: "Arthur C", last: "Clarke" } },
|
|
118
|
+
{ from: "John Cooper Clarke", to: { full: "John Cooper Clarke", first: "John Cooper", last: "Clarke" } },
|
|
119
|
+
{ from: "Daniel Clowes", to: { full: "Daniel Clowes", first: "Daniel", last: "Clowes" } },
|
|
120
|
+
{ from: "Jonathan Coe", to: { full: "Jonathan Coe", first: "Jonathan", last: "Coe" } },
|
|
121
|
+
{ from: "Paulo Coelho", to: { full: "Paulo Coelho", first: "Paulo", last: "Coelho" } },
|
|
122
|
+
{ from: "JM Coetzee", to: { full: "JM Coetzee", first: "JM", last: "Coetzee" } },
|
|
123
|
+
{ from: "Samuel Taylor Coleridge", to: { full: "Samuel Taylor Coleridge", first: "Samuel Taylor", last: "Coleridge" } },
|
|
124
|
+
{ from: "Eoin Colfer", to: { full: "Eoin Colfer", first: "Eoin", last: "Colfer" } },
|
|
125
|
+
{ from: "Wilkie Collins", to: { full: "Wilkie Collins", first: "Wilkie", last: "Collins" } },
|
|
126
|
+
{ from: "Jackie Collins", to: { full: "Jackie Collins", first: "Jackie", last: "Collins" } },
|
|
127
|
+
{ from: "Colum McCann", to: { full: "Colum McCann", first: "Colum", last: "McCann" } },
|
|
128
|
+
{ from: "Arthur Conan Doyle", to: { full: "Arthur Conan Doyle", first: "Arthur Conan", last: "Doyle" } },
|
|
129
|
+
{ from: "Joseph Connolly", to: { full: "Joseph Connolly", first: "Joseph", last: "Connolly" } },
|
|
130
|
+
{ from: "Joseph Conrad", to: { full: "Joseph Conrad", first: "Joseph", last: "Conrad" } },
|
|
131
|
+
{ from: "Jilly Cooper", to: { full: "Jilly Cooper", first: "Jilly", last: "Cooper" } },
|
|
132
|
+
{ from: "Patricia Cornwell", to: { full: "Patricia Cornwell", first: "Patricia", last: "Cornwell" } },
|
|
133
|
+
{ from: "Douglas Coupland", to: { full: "Douglas Coupland", first: "Douglas", last: "Coupland" } },
|
|
134
|
+
{ from: "Jim Crace", to: { full: "Jim Crace", first: "Jim", last: "Crace" } },
|
|
135
|
+
{ from: "Michael Crichton", to: { full: "Michael Crichton", first: "Michael", last: "Crichton" } },
|
|
136
|
+
{ from: "Neil Cross", to: { full: "Neil Cross", first: "Neil", last: "Cross" } },
|
|
137
|
+
{ from: "Robert Crumb", to: { full: "Robert Crumb", first: "Robert", last: "Crumb" } },
|
|
138
|
+
{ from: "Curtis Sittenfeld", to: { full: "Curtis Sittenfeld", first: "Curtis", last: "Sittenfeld" } },
|
|
139
|
+
{ from: "Czesław Miłosz", to: { full: "Czesław Miłosz", first: "Czesław", last: "Miłosz" } },
|
|
140
|
+
|
|
141
|
+
{ from: "Roald Dahl", to: { full: "Roald Dahl", first: "Roald", last: "Dahl" } },
|
|
142
|
+
{ from: "David Sedaris", to: { full: "David Sedaris", first: "David", last: "Sedaris" } },
|
|
143
|
+
{ from: "DBC Pierre", to: { full: "DBC Pierre", first: "DBC", last: "Pierre" } },
|
|
144
|
+
{ from: "Edmund de Waal", to: { full: "Edmund de Waal", first: "Edmund", last: "de Waal" } },
|
|
145
|
+
{ from: "Daniel Defoe", to: { full: "Daniel Defoe", first: "Daniel", last: "Defoe" } },
|
|
146
|
+
{ from: "Len Deighton", to: { full: "Len Deighton", first: "Len", last: "Deighton" } },
|
|
147
|
+
{ from: "Don DeLillo", to: { full: "Don DeLillo", first: "Don", last: "DeLillo" } },
|
|
148
|
+
{ from: "Patrick DeWitt", to: { full: "Patrick DeWitt", first: "Patrick", last: "DeWitt" } },
|
|
149
|
+
{ from: "Giuseppe Tomasi di Lampedusa", to: { full: "Giuseppe Tomasi di Lampedusa", first: "Giuseppe Tomasi", last: "di Lampedusa" } },
|
|
150
|
+
{ from: "Junot Diaz", to: { full: "Junot Diaz", first: "Junot", last: "Diaz" } },
|
|
151
|
+
{ from: "Philip K Dick", to: { full: "Philip K Dick", first: "Philip K", last: "Dick" } },
|
|
152
|
+
{ from: "Dick King-Smith", to: { full: "Dick King-Smith", first: "Dick", last: "King-Smith" } },
|
|
153
|
+
{ from: "Charles Dickens", to: { full: "Charles Dickens", first: "Charles", last: "Dickens" } },
|
|
154
|
+
{ from: "Emily Dickinson", to: { full: "Emily Dickinson", first: "Emily", last: "Dickinson" } },
|
|
155
|
+
{ from: "Don Paterson", to: { full: "Don Paterson", first: "Don", last: "Paterson" } },
|
|
156
|
+
{ from: "Emma Donoghue", to: { full: "Emma Donoghue", first: "Emma", last: "Donoghue" } },
|
|
157
|
+
{ from: "Fyodor Dostoevsky", to: { full: "Fyodor Dostoevsky", first: "Fyodor", last: "Dostoevsky" } },
|
|
158
|
+
{ from: "Roddy Doyle", to: { full: "Roddy Doyle", first: "Roddy", last: "Doyle" } },
|
|
159
|
+
{ from: "Margaret Drabble", to: { full: "Margaret Drabble", first: "Margaret", last: "Drabble" } },
|
|
160
|
+
{ from: "Carol Ann Duffy", to: { full: "Carol Ann Duffy", first: "Carol Ann", last: "Duffy" } },
|
|
161
|
+
{ from: "Alexandre Dumas, pere", to: { full: "Alexandre Dumas", first: "Alexandre", last: "Dumas", suffix: "pere" } },
|
|
162
|
+
{ from: "Daphne du Maurier", to: { full: "Daphne du Maurier", first: "Daphne", last: "du Maurier" } },
|
|
163
|
+
{ from: "Helen Dunmore", to: { full: "Helen Dunmore", first: "Helen", last: "Dunmore" } },
|
|
164
|
+
{ from: "Lawrence Durrell", to: { full: "Lawrence Durrell", first: "Lawrence", last: "Durrell" } },
|
|
165
|
+
|
|
166
|
+
{ from: "David Eagleman", to: { full: "David Eagleman", first: "David", last: "Eagleman" } },
|
|
167
|
+
{ from: "Terry Eagleton", to: { full: "Terry Eagleton", first: "Terry", last: "Eagleton" } },
|
|
168
|
+
{ from: "Bret Easton Ellis", to: { full: "Bret Easton Ellis", first: "Bret Easton", last: "Ellis" } },
|
|
169
|
+
{ from: "Umberto Eco", to: { full: "Umberto Eco", first: "Umberto", last: "Eco" } },
|
|
170
|
+
{ from: "Esi Edugyan", to: { full: "Esi Edugyan", first: "Esi", last: "Edugyan" } },
|
|
171
|
+
{ from: "Dave Eggers", to: { full: "Dave Eggers", first: "Dave", last: "Eggers" } },
|
|
172
|
+
{ from: "George Eliot", to: { full: "George Eliot", first: "George", last: "Eliot" } },
|
|
173
|
+
{ from: "James Ellroy", to: { full: "James Ellroy", first: "James", last: "Ellroy" } },
|
|
174
|
+
{ from: "Anne Enright", to: { full: "Anne Enright", first: "Anne", last: "Enright" } },
|
|
175
|
+
{ from: "Jeffrey Eugenides", to: { full: "Jeffrey Eugenides", first: "Jeffrey", last: "Eugenides" } },
|
|
176
|
+
{ from: "Evie Wyld", to: { full: "Evie Wyld", first: "Evie", last: "Wyld" } },
|
|
177
|
+
|
|
178
|
+
{ from: "William Faulkner", to: { full: "William Faulkner", first: "William", last: "Faulkner" } },
|
|
179
|
+
{ from: "Sebastian Faulks", to: { full: "Sebastian Faulks", first: "Sebastian", last: "Faulks" } },
|
|
180
|
+
{ from: "Niall Ferguson", to: { full: "Niall Ferguson", first: "Niall", last: "Ferguson" } },
|
|
181
|
+
{ from: "Helen Fielding", to: { full: "Helen Fielding", first: "Helen", last: "Fielding" } },
|
|
182
|
+
{ from: "Henry Fielding", to: { full: "Henry Fielding", first: "Henry", last: "Fielding" } },
|
|
183
|
+
{ from: "Orlando Figes", to: { full: "Orlando Figes", first: "Orlando", last: "Figes" } },
|
|
184
|
+
{ from: "F Scott Fitzgerald", to: { full: "F Scott Fitzgerald", first: "F Scott", last: "Fitzgerald" } },
|
|
185
|
+
{ from: "Gustave Flaubert", to: { full: "Gustave Flaubert", first: "Gustave", last: "Flaubert" } },
|
|
186
|
+
{ from: "Ian Fleming", to: { full: "Ian Fleming", first: "Ian", last: "Fleming" } },
|
|
187
|
+
{ from: "Gillian Flynn", to: { full: "Gillian Flynn", first: "Gillian", last: "Flynn" } },
|
|
188
|
+
{ from: "EM Forster", to: { full: "EM Forster", first: "EM", last: "Forster" } },
|
|
189
|
+
{ from: "Adam Foulds", to: { full: "Adam Foulds", first: "Adam", last: "Foulds" } },
|
|
190
|
+
{ from: "John Fowles", to: { full: "John Fowles", first: "John", last: "Fowles" } },
|
|
191
|
+
{ from: "Dick Francis", to: { full: "Dick Francis", first: "Dick", last: "Francis" } },
|
|
192
|
+
{ from: "Thomas Frank", to: { full: "Thomas Frank", first: "Thomas", last: "Frank" } },
|
|
193
|
+
{ from: "Jonathan Franzen", to: { full: "Jonathan Franzen", first: "Jonathan", last: "Franzen" } },
|
|
194
|
+
{ from: "Nicci French", to: { full: "Nicci French", first: "Nicci", last: "French" } },
|
|
195
|
+
{ from: "Tana French", to: { full: "Tana French", first: "Tana", last: "French" } },
|
|
196
|
+
{ from: "Sigmund Freud", to: { full: "Sigmund Freud", first: "Sigmund", last: "Freud" } },
|
|
197
|
+
{ from: "Nell Freudenberger", to: { full: "Nell Freudenberger", first: "Nell", last: "Freudenberger" } },
|
|
198
|
+
{ from: "James Frey", to: { full: "James Frey", first: "James", last: "Frey" } },
|
|
199
|
+
{ from: "Francis Fukuyama", to: { full: "Francis Fukuyama", first: "Francis", last: "Fukuyama" } },
|
|
200
|
+
|
|
201
|
+
{ from: "G Willow Wilson", to: { full: "G Willow Wilson", first: "G Willow", last: "Wilson" } },
|
|
202
|
+
{ from: "Neil Gaiman", to: { full: "Neil Gaiman", first: "Neil", last: "Gaiman" } },
|
|
203
|
+
{ from: "Damon Galgut", to: { full: "Damon Galgut", first: "Damon", last: "Galgut" } },
|
|
204
|
+
{ from: "Petina Gappah", to: { full: "Petina Gappah", first: "Petina", last: "Gappah" } },
|
|
205
|
+
{ from: "Simon Garfield", to: { full: "Simon Garfield", first: "Simon", last: "Garfield" } },
|
|
206
|
+
{ from: "Alan Garner", to: { full: "Alan Garner", first: "Alan", last: "Garner" } },
|
|
207
|
+
{ from: "William Gibson", to: { full: "William Gibson", first: "William", last: "Gibson" } },
|
|
208
|
+
{ from: "Martin Gilbert", to: { full: "Martin Gilbert", first: "Martin", last: "Gilbert" } },
|
|
209
|
+
{ from: "Allen Ginsberg", to: { full: "Allen Ginsberg", first: "Allen", last: "Ginsberg" } },
|
|
210
|
+
{ from: "Malcolm Gladwell", to: { full: "Malcolm Gladwell", first: "Malcolm", last: "Gladwell" } },
|
|
211
|
+
{ from: "Nikolai Gogol", to: { full: "Nikolai Gogol", first: "Nikolai", last: "Gogol" } },
|
|
212
|
+
{ from: "Glen David Gold", to: { full: "Glen David Gold", first: "Glen David", last: "Gold" } },
|
|
213
|
+
{ from: "William Golding", to: { full: "William Golding", first: "William", last: "Golding" } },
|
|
214
|
+
{ from: "Nadine Gordimer", to: { full: "Nadine Gordimer", first: "Nadine", last: "Gordimer" } },
|
|
215
|
+
{ from: "Gore Vidal", to: { full: "Gore Vidal", first: "Gore", last: "Vidal" } },
|
|
216
|
+
{ from: "Günter Grass", to: { full: "Günter Grass", first: "Günter", last: "Grass" } },
|
|
217
|
+
{ from: "Alasdair Gray", to: { full: "Alasdair Gray", first: "Alasdair", last: "Gray" } },
|
|
218
|
+
{ from: "Simon Gray", to: { full: "Simon Gray", first: "Simon", last: "Gray" } },
|
|
219
|
+
{ from: "John Green", to: { full: "John Green", first: "John", last: "Green" } },
|
|
220
|
+
{ from: "Graham Greene", to: { full: "Graham Greene", first: "Graham", last: "Greene" } },
|
|
221
|
+
{ from: "Germaine Greer", to: { full: "Germaine Greer", first: "Germaine", last: "Greer" } },
|
|
222
|
+
{ from: "Philippa Gregory", to: { full: "Philippa Gregory", first: "Philippa", last: "Gregory" } },
|
|
223
|
+
{ from: "John Grisham", to: { full: "John Grisham", first: "John", last: "Grisham" } },
|
|
224
|
+
{ from: "David Grossman", to: { full: "David Grossman", first: "David", last: "Grossman" } },
|
|
225
|
+
|
|
226
|
+
{ from: "Mark Haddon", to: { full: "Mark Haddon", first: "Mark", last: "Haddon" } },
|
|
227
|
+
{ from: "Tessa Hadley", to: { full: "Tessa Hadley", first: "Tessa", last: "Hadley" } },
|
|
228
|
+
{ from: "Knut Hamsun", to: { full: "Knut Hamsun", first: "Knut", last: "Hamsun" } },
|
|
229
|
+
{ from: "Mohammed Hanif", to: { full: "Mohammed Hanif", first: "Mohammed", last: "Hanif" } },
|
|
230
|
+
{ from: "Elizabeth Hardwick", to: { full: "Elizabeth Hardwick", first: "Elizabeth", last: "Hardwick" } },
|
|
231
|
+
{ from: "Thomas Hardy", to: { full: "Thomas Hardy", first: "Thomas", last: "Hardy" } },
|
|
232
|
+
{ from: "Thomas Harris", to: { full: "Thomas Harris", first: "Thomas", last: "Harris" } },
|
|
233
|
+
{ from: "Robert Harris", to: { full: "Robert Harris", first: "Robert", last: "Harris" } },
|
|
234
|
+
{ from: "Tony Harrison", to: { full: "Tony Harrison", first: "Tony", last: "Harrison" } },
|
|
235
|
+
{ from: "David Harsent", to: { full: "David Harsent", first: "David", last: "Harsent" } },
|
|
236
|
+
{ from: "Josephine Hart", to: { full: "Josephine Hart", first: "Josephine", last: "Hart" } },
|
|
237
|
+
{ from: "Seamus Heaney", to: { full: "Seamus Heaney", first: "Seamus", last: "Heaney" } },
|
|
238
|
+
{ from: "Helen Simpson", to: { full: "Helen Simpson", first: "Helen", last: "Simpson" } },
|
|
239
|
+
{ from: "Joseph Heller", to: { full: "Joseph Heller", first: "Joseph", last: "Heller" } },
|
|
240
|
+
{ from: "Ernest Hemingway", to: { full: "Ernest Hemingway", first: "Ernest", last: "Hemingway" } },
|
|
241
|
+
{ from: "Aleksandar Hemon", to: { full: "Aleksandar Hemon", first: "Aleksandar", last: "Hemon" } },
|
|
242
|
+
{ from: "James Herbert", to: { full: "James Herbert", first: "James", last: "Herbert" } },
|
|
243
|
+
{ from: "Herta Müller", to: { full: "Herta Müller", first: "Herta", last: "Müller" } },
|
|
244
|
+
{ from: "Georgette Heyer", to: { full: "Georgette Heyer", first: "Georgette", last: "Heyer" } },
|
|
245
|
+
{ from: "Carl Hiaasen", to: { full: "Carl Hiaasen", first: "Carl", last: "Hiaasen" } },
|
|
246
|
+
{ from: "Charlie Higson", to: { full: "Charlie Higson", first: "Charlie", last: "Higson" } },
|
|
247
|
+
{ from: "Tobias Hill", to: { full: "Tobias Hill", first: "Tobias", last: "Hill" } },
|
|
248
|
+
{ from: "Peter Hitchens", to: { full: "Peter Hitchens", first: "Peter", last: "Hitchens" } },
|
|
249
|
+
{ from: "Christopher Hitchens", to: { full: "Christopher Hitchens", first: "Christopher", last: "Hitchens" } },
|
|
250
|
+
{ from: "Shere Hite", to: { full: "Shere Hite", first: "Shere", last: "Hite" } },
|
|
251
|
+
{ from: "Eric Hobsbawm", to: { full: "Eric Hobsbawm", first: "Eric", last: "Hobsbawm" } },
|
|
252
|
+
{ from: "Alan Hollinghurst", to: { full: "Alan Hollinghurst", first: "Alan", last: "Hollinghurst" } },
|
|
253
|
+
{ from: "Holly Black", to: { full: "Holly Black", first: "Holly", last: "Black" } },
|
|
254
|
+
{ from: "Richard Holmes", to: { full: "Richard Holmes", first: "Richard", last: "Holmes" } },
|
|
255
|
+
|
|
256
|
+
{ from: "Chloe Hooper", to: { full: "Chloe Hooper", first: "Chloe", last: "Hooper" } },
|
|
257
|
+
{ from: "Nick Hornby", to: { full: "Nick Hornby", first: "Nick", last: "Hornby" } },
|
|
258
|
+
{ from: "Anthony Horowitz", to: { full: "Anthony Horowitz", first: "Anthony", last: "Horowitz" } },
|
|
259
|
+
{ from: "Michel Houellebecq", to: { full: "Michel Houellebecq", first: "Michel", last: "Houellebecq" } },
|
|
260
|
+
{ from: "Elizabeth Jane Howard", to: { full: "Elizabeth Jane Howard", first: "Elizabeth Jane", last: "Howard" } },
|
|
261
|
+
{ from: "Ted Hughes", to: { full: "Ted Hughes", first: "Ted", last: "Hughes" } },
|
|
262
|
+
{ from: "Shirley Hughes", to: { full: "Shirley Hughes", first: "Shirley", last: "Hughes" } },
|
|
263
|
+
{ from: "Siri Hustvedt", to: { full: "Siri Hustvedt", first: "Siri", last: "Hustvedt" } },
|
|
264
|
+
{ from: "Aldous Huxley", to: { full: "Aldous Huxley", first: "Aldous", last: "Huxley" } },
|
|
265
|
+
|
|
266
|
+
{ from: "Eva Ibbotson", to: { full: "Eva Ibbotson", first: "Eva", last: "Ibbotson" } },
|
|
267
|
+
{ from: "Henrik Ibsen", to: { full: "Henrik Ibsen", first: "Henrik", last: "Ibsen" } },
|
|
268
|
+
{ from: "Mick Imlah", to: { full: "Mick Imlah", first: "Mick", last: "Imlah" } },
|
|
269
|
+
{ from: "John Irving", to: { full: "John Irving", first: "John", last: "Irving" } },
|
|
270
|
+
{ from: "Kazuo Ishiguro", to: { full: "Kazuo Ishiguro", first: "Kazuo", last: "Ishiguro" } },
|
|
271
|
+
|
|
272
|
+
{ from: "Jackie Morris", to: { full: "Jackie Morris", first: "Jackie", last: "Morris" } },
|
|
273
|
+
{ from: "Howard Jacobson", to: { full: "Howard Jacobson", first: "Howard", last: "Jacobson" } },
|
|
274
|
+
{ from: "Henry James", to: { full: "Henry James", first: "Henry", last: "James" } },
|
|
275
|
+
{ from: "EL James", to: { full: "EL James", first: "EL", last: "James" } },
|
|
276
|
+
{ from: "PD James", to: { full: "PD James", first: "PD", last: "James" } },
|
|
277
|
+
{ from: "Jay McInerney", to: { full: "Jay McInerney", first: "Jay", last: "McInerney" } },
|
|
278
|
+
{ from: "Jo Nesbø", to: { full: "Jo Nesbø", first: "Jo", last: "Nesbø" } },
|
|
279
|
+
{ from: "Joanna Kavenna", to: { full: "Joanna Kavenna", first: "Joanna", last: "Kavenna" } },
|
|
280
|
+
{ from: "John Cheever", to: { full: "John Cheever", first: "John", last: "Cheever" } },
|
|
281
|
+
{ from: "John Gray", to: { full: "John Gray", first: "John", last: "Gray" } },
|
|
282
|
+
{ from: "Samuel Johnson", to: { full: "Samuel Johnson", first: "Samuel", last: "Johnson" } },
|
|
283
|
+
{ from: "Sadie Jones", to: { full: "Sadie Jones", first: "Sadie", last: "Jones" } },
|
|
284
|
+
{ from: "Ben Jonson", to: { full: "Ben Jonson", first: "Ben", last: "Jonson" } },
|
|
285
|
+
{ from: "James Joyce", to: { full: "James Joyce", first: "James", last: "Joyce" } },
|
|
286
|
+
{ from: "Juan Gabriel Vásquez", to: { full: "Juan Gabriel Vásquez", first: "Juan Gabriel", last: "Vásquez" } },
|
|
287
|
+
{ from: "Tony Judt", to: { full: "Tony Judt", first: "Tony", last: "Judt" } },
|
|
288
|
+
|
|
289
|
+
{ from: "Ismail Kadare", to: { full: "Ismail Kadare", first: "Ismail", last: "Kadare" } },
|
|
290
|
+
{ from: "Franz Kafka", to: { full: "Franz Kafka", first: "Franz", last: "Kafka" } },
|
|
291
|
+
{ from: "Ryszard Kapuściński", to: { full: "Ryszard Kapuściński", first: "Ryszard", last: "Kapuściński" } },
|
|
292
|
+
{ from: "Kathryn Schulz", to: { full: "Kathryn Schulz", first: "Kathryn", last: "Schulz" } },
|
|
293
|
+
{ from: "Jackie Kay", to: { full: "Jackie Kay", first: "Jackie", last: "Kay" } },
|
|
294
|
+
{ from: "John Keats", to: { full: "John Keats", first: "John", last: "Keats" } },
|
|
295
|
+
{ from: "James Kelman", to: { full: "James Kelman", first: "James", last: "Kelman" } },
|
|
296
|
+
{ from: "Stephen Kelman", to: { full: "Stephen Kelman", first: "Stephen", last: "Kelman" } },
|
|
297
|
+
{ from: "Ken Follett", to: { full: "Ken Follett", first: "Ken", last: "Follett" } },
|
|
298
|
+
{ from: "Thomas Keneally", to: { full: "Thomas Keneally", first: "Thomas", last: "Keneally" } },
|
|
299
|
+
{ from: "AL Kennedy", to: { full: "AL Kennedy", first: "AL", last: "Kennedy" } },
|
|
300
|
+
{ from: "Frank Kermode", to: { full: "Frank Kermode", first: "Frank", last: "Kermode" } },
|
|
301
|
+
{ from: "Jack Kerouac", to: { full: "Jack Kerouac", first: "Jack", last: "Kerouac" } },
|
|
302
|
+
{ from: "Marian Keyes", to: { full: "Marian Keyes", first: "Marian", last: "Keyes" } },
|
|
303
|
+
{ from: "Stephen King", to: { full: "Stephen King", first: "Stephen", last: "King" } },
|
|
304
|
+
{ from: "Barbara Kingsolver", to: { full: "Barbara Kingsolver", first: "Barbara", last: "Kingsolver" } },
|
|
305
|
+
{ from: "Jeff Kinney", to: { full: "Jeff Kinney", first: "Jeff", last: "Kinney" } },
|
|
306
|
+
{ from: "Rudyard Kipling", to: { full: "Rudyard Kipling", first: "Rudyard", last: "Kipling" } },
|
|
307
|
+
{ from: "Kiran Desai", to: { full: "Kiran Desai", first: "Kiran", last: "Desai" } },
|
|
308
|
+
{ from: "Arthur Koestler", to: { full: "Arthur Koestler", first: "Arthur", last: "Koestler" } },
|
|
309
|
+
{ from: "Milan Kundera", to: { full: "Milan Kundera", first: "Milan", last: "Kundera" } },
|
|
310
|
+
{ from: "Hanif Kureishi", to: { full: "Hanif Kureishi", first: "Hanif", last: "Kureishi" } },
|
|
311
|
+
{ from: "Mark Kurlansky", to: { full: "Mark Kurlansky", first: "Mark", last: "Kurlansky" } },
|
|
312
|
+
{ from: "Tony Kushner", to: { full: "Tony Kushner", first: "Tony", last: "Kushner" } },
|
|
313
|
+
|
|
314
|
+
{ from: "Jhumpa Lahiri", to: { full: "Jhumpa Lahiri", first: "Jhumpa", last: "Lahiri" } },
|
|
315
|
+
{ from: "RD Laing", to: { full: "RD Laing", first: "RD", last: "Laing" } },
|
|
316
|
+
{ from: "Philip Larkin", to: { full: "Philip Larkin", first: "Philip", last: "Larkin" } },
|
|
317
|
+
{ from: "Stieg Larsson", to: { full: "Stieg Larsson", first: "Stieg", last: "Larsson" } },
|
|
318
|
+
{ from: "DH Lawrence", to: { full: "DH Lawrence", first: "DH", last: "Lawrence" } },
|
|
319
|
+
{ from: "John le Carré", to: { full: "John le Carré", first: "John", last: "le Carré" } },
|
|
320
|
+
{ from: "Darian Leader", to: { full: "Darian Leader", first: "Darian", last: "Leader" } },
|
|
321
|
+
{ from: "Harper Lee", to: { full: "Harper Lee", first: "Harper", last: "Lee" } },
|
|
322
|
+
{ from: "Ursula K Le Guin", to: { full: "Ursula K Le Guin", first: "Ursula K", last: "Le Guin" } },
|
|
323
|
+
{ from: "Elmore Leonard", to: { full: "Elmore Leonard", first: "Elmore", last: "Leonard" } },
|
|
324
|
+
{ from: "Doris Lessing", to: { full: "Doris Lessing", first: "Doris", last: "Lessing" } },
|
|
325
|
+
{ from: "Jonathan Lethem", to: { full: "Jonathan Lethem", first: "Jonathan", last: "Lethem" } },
|
|
326
|
+
{ from: "Primo Levi", to: { full: "Primo Levi", first: "Primo", last: "Levi" } },
|
|
327
|
+
{ from: "Andrea Levy", to: { full: "Andrea Levy", first: "Andrea", last: "Levy" } },
|
|
328
|
+
{ from: "Deborah Levy", to: { full: "Deborah Levy", first: "Deborah", last: "Levy" } },
|
|
329
|
+
{ from: "CS Lewis", to: { full: "CS Lewis", first: "CS", last: "Lewis" } },
|
|
330
|
+
{ from: "Penelope Lively", to: { full: "Penelope Lively", first: "Penelope", last: "Lively" } },
|
|
331
|
+
{ from: "Liz Pichon", to: { full: "Liz Pichon", first: "Liz", last: "Pichon" } },
|
|
332
|
+
{ from: "Attica Locke", to: { full: "Attica Locke", first: "Attica", last: "Locke" } },
|
|
333
|
+
{ from: "John Locke", to: { full: "John Locke", first: "John", last: "Locke" } },
|
|
334
|
+
{ from: "David Lodge", to: { full: "David Lodge", first: "David", last: "Lodge" } },
|
|
335
|
+
{ from: "Michael Longley", to: { full: "Michael Longley", first: "Michael", last: "Longley" } },
|
|
336
|
+
{ from: "Robert Lowell", to: { full: "Robert Lowell", first: "Robert", last: "Lowell" } },
|
|
337
|
+
|
|
338
|
+
{ from: "Richard Mabey", to: { full: "Richard Mabey", first: "Richard", last: "Mabey" } },
|
|
339
|
+
{ from: "George MacDonald Fraser", to: { full: "George MacDonald Fraser", first: "George MacDonald", last: "Fraser" } },
|
|
340
|
+
{ from: "Madeline Miller", to: { full: "Madeline Miller", first: "Madeline", last: "Miller" } },
|
|
341
|
+
{ from: "Maggie Gee", to: { full: "Maggie Gee", first: "Maggie", last: "Gee" } },
|
|
342
|
+
{ from: "Maile Chapman", to: { full: "Maile Chapman", first: "Maile", last: "Chapman" } },
|
|
343
|
+
{ from: "Andrei Makine", to: { full: "Andrei Makine", first: "Andrei", last: "Makine" } },
|
|
344
|
+
{ from: "Henning Mankell", to: { full: "Henning Mankell", first: "Henning", last: "Mankell" } },
|
|
345
|
+
{ from: "Thomas Mann", to: { full: "Thomas Mann", first: "Thomas", last: "Mann" } },
|
|
346
|
+
{ from: "Hilary Mantel", to: { full: "Hilary Mantel", first: "Hilary", last: "Mantel" } },
|
|
347
|
+
{ from: "Greil Marcus", to: { full: "Greil Marcus", first: "Greil", last: "Marcus" } },
|
|
348
|
+
{ from: "Marcus Sedgwick", to: { full: "Marcus Sedgwick", first: "Marcus", last: "Sedgwick" } },
|
|
349
|
+
{ from: "Christopher Marlowe", to: { full: "Christopher Marlowe", first: "Christopher", last: "Marlowe" } },
|
|
350
|
+
{ from: "Gabriel García Márquez", to: { full: "Gabriel García Márquez", first: "Gabriel García", last: "Márquez" } },
|
|
351
|
+
{ from: "Yann Martel", to: { full: "Yann Martel", first: "Yann", last: "Martel" } },
|
|
352
|
+
{ from: "George RR Martin", to: { full: "George RR Martin", first: "George RR", last: "Martin" } },
|
|
353
|
+
{ from: "Hisham Matar", to: { full: "Hisham Matar", first: "Hisham", last: "Matar" } },
|
|
354
|
+
{ from: "Somerset Maugham", to: { full: "Somerset Maugham", first: "Somerset", last: "Maugham" } },
|
|
355
|
+
{ from: "Armistead Maupin", to: { full: "Armistead Maupin", first: "Armistead", last: "Maupin" } },
|
|
356
|
+
{ from: "Simon Mawer", to: { full: "Simon Mawer", first: "Simon", last: "Mawer" } },
|
|
357
|
+
{ from: "Patrick McCabe", to: { full: "Patrick McCabe", first: "Patrick", last: "McCabe" } },
|
|
358
|
+
{ from: "Alexander McCall Smith", to: { full: "Alexander McCall Smith", first: "Alexander McCall", last: "Smith" } },
|
|
359
|
+
{ from: "Cormac McCarthy", to: { full: "Cormac McCarthy", first: "Cormac", last: "McCarthy" } },
|
|
360
|
+
{ from: "Frank McCourt", to: { full: "Frank McCourt", first: "Frank", last: "McCourt" } },
|
|
361
|
+
{ from: "Val McDermid", to: { full: "Val McDermid", first: "Val", last: "McDermid" } },
|
|
362
|
+
{ from: "Ian McEwan", to: { full: "Ian McEwan", first: "Ian", last: "McEwan" } },
|
|
363
|
+
{ from: "Roger McGough", to: { full: "Roger McGough", first: "Roger", last: "McGough" } },
|
|
364
|
+
{ from: "Candia McWilliam", to: { full: "Candia McWilliam", first: "Candia", last: "McWilliam" } },
|
|
365
|
+
{ from: "Herman Melville", to: { full: "Herman Melville", first: "Herman", last: "Melville" } },
|
|
366
|
+
{ from: "Claire Messud", to: { full: "Claire Messud", first: "Claire", last: "Messud" } },
|
|
367
|
+
{ from: "Stephenie Meyer", to: { full: "Stephenie Meyer", first: "Stephenie", last: "Meyer" } },
|
|
368
|
+
{ from: "China Miéville", to: { full: "China Miéville", first: "China", last: "Miéville" } },
|
|
369
|
+
{ from: "Arthur Miller", to: { full: "Arthur Miller", first: "Arthur", last: "Miller" } },
|
|
370
|
+
{ from: "AD Miller", to: { full: "AD Miller", first: "AD", last: "Miller" } },
|
|
371
|
+
{ from: "Frank Miller", to: { full: "Frank Miller", first: "Frank", last: "Miller" } },
|
|
372
|
+
{ from: "John Milton", to: { full: "John Milton", first: "John", last: "Milton" } },
|
|
373
|
+
{ from: "Rohinton Mistry", to: { full: "Rohinton Mistry", first: "Rohinton", last: "Mistry" } },
|
|
374
|
+
{ from: "David Mitchell", to: { full: "David Mitchell", first: "David", last: "Mitchell" } },
|
|
375
|
+
{ from: "Adrian Mitchell", to: { full: "Adrian Mitchell", first: "Adrian", last: "Mitchell" } },
|
|
376
|
+
{ from: "Nancy Mitford", to: { full: "Nancy Mitford", first: "Nancy", last: "Mitford" } },
|
|
377
|
+
{ from: "Rutu Modan", to: { full: "Rutu Modan", first: "Rutu", last: "Modan" } },
|
|
378
|
+
{ from: "Michel de Montaigne", to: { full: "Michel de Montaigne", first: "Michel", last: "de Montaigne" } },
|
|
379
|
+
{ from: "Alan Moore", to: { full: "Alan Moore", first: "Alan", last: "Moore" } },
|
|
380
|
+
{ from: "Lisa Moore", to: { full: "Lisa Moore", first: "Lisa", last: "Moore" } },
|
|
381
|
+
{ from: "Lorrie Moore", to: { full: "Lorrie Moore", first: "Lorrie", last: "Moore" } },
|
|
382
|
+
{ from: "Caitlin Moran", to: { full: "Caitlin Moran", first: "Caitlin", last: "Moran" } },
|
|
383
|
+
{ from: "Edwin Morgan", to: { full: "Edwin Morgan", first: "Edwin", last: "Morgan" } },
|
|
384
|
+
{ from: "Michael Morpurgo", to: { full: "Michael Morpurgo", first: "Michael", last: "Morpurgo" } },
|
|
385
|
+
{ from: "Jan Morris", to: { full: "Jan Morris", first: "Jan", last: "Morris" } },
|
|
386
|
+
{ from: "Toni Morrison", to: { full: "Toni Morrison", first: "Toni", last: "Morrison" } },
|
|
387
|
+
{ from: "Blake Morrison", to: { full: "Blake Morrison", first: "Blake", last: "Morrison" } },
|
|
388
|
+
{ from: "Walter Mosley", to: { full: "Walter Mosley", first: "Walter", last: "Mosley" } },
|
|
389
|
+
{ from: "Kate Mosse", to: { full: "Kate Mosse", first: "Kate", last: "Mosse" } },
|
|
390
|
+
{ from: "Andrew Motion", to: { full: "Andrew Motion", first: "Andrew", last: "Motion" } },
|
|
391
|
+
{ from: "Paul Muldoon", to: { full: "Paul Muldoon", first: "Paul", last: "Muldoon" } },
|
|
392
|
+
{ from: "Alice Munro", to: { full: "Alice Munro", first: "Alice", last: "Munro" } },
|
|
393
|
+
{ from: "Haruki Murakami", to: { full: "Haruki Murakami", first: "Haruki", last: "Murakami" } },
|
|
394
|
+
{ from: "Iris Murdoch", to: { full: "Iris Murdoch", first: "Iris", last: "Murdoch" } },
|
|
395
|
+
{ from: "Paul Murray", to: { full: "Paul Murray", first: "Paul", last: "Murray" } },
|
|
396
|
+
{ from: "Julie Myerson", to: { full: "Julie Myerson", first: "Julie", last: "Myerson" } },
|
|
397
|
+
|
|
398
|
+
{ from: "Vladimir Nabokov", to: { full: "Vladimir Nabokov", first: "Vladimir", last: "Nabokov" } },
|
|
399
|
+
{ from: "Nadifa Mohamed", to: { full: "Nadifa Mohamed", first: "Nadifa", last: "Mohamed" } },
|
|
400
|
+
{ from: "Daljit Nagra", to: { full: "Daljit Nagra", first: "Daljit", last: "Nagra" } },
|
|
401
|
+
{ from: "VS Naipaul", to: { full: "VS Naipaul", first: "VS", last: "Naipaul" } },
|
|
402
|
+
{ from: "Naomi Klein", to: { full: "Naomi Klein", first: "Naomi", last: "Klein" } },
|
|
403
|
+
{ from: "RK Narayan", to: { full: "RK Narayan", first: "RK", last: "Narayan" } },
|
|
404
|
+
{ from: "Ned Beauman", to: { full: "Ned Beauman", first: "Ned", last: "Beauman" } },
|
|
405
|
+
{ from: "Patrick Ness", to: { full: "Patrick Ness", first: "Patrick", last: "Ness" } },
|
|
406
|
+
{ from: "David Nicholls", to: { full: "David Nicholls", first: "David", last: "Nicholls" } },
|
|
407
|
+
{ from: "Nick Tosches", to: { full: "Nick Tosches", first: "Nick", last: "Tosches" } },
|
|
408
|
+
{ from: "Audrey Niffenegger", to: { full: "Audrey Niffenegger", first: "Audrey", last: "Niffenegger" } },
|
|
409
|
+
|
|
410
|
+
{ from: "Edna O'Brien", to: { full: "Edna O'Brien", first: "Edna", last: "O'Brien" } },
|
|
411
|
+
{ from: "Sean O'Brien", to: { full: "Sean O'Brien", first: "Sean", last: "O'Brien" } },
|
|
412
|
+
{ from: "Eugene O'Neill", to: { full: "Eugene O'Neill", first: "Eugene", last: "O'Neill" } },
|
|
413
|
+
{ from: "Joyce Carol Oates", to: { full: "Joyce Carol Oates", first: "Joyce Carol", last: "Oates" } },
|
|
414
|
+
{ from: "Téa Obreht", to: { full: "Téa Obreht", first: "Téa", last: "Obreht" } },
|
|
415
|
+
{ from: "Flann O'Brien", to: { full: "Flann O'Brien", first: "Flann", last: "O'Brien" } },
|
|
416
|
+
{ from: "Ben Okri", to: { full: "Ben Okri", first: "Ben", last: "Okri" } },
|
|
417
|
+
{ from: "Sharon Olds", to: { full: "Sharon Olds", first: "Sharon", last: "Olds" } },
|
|
418
|
+
{ from: "Michael Ondaatje", to: { full: "Michael Ondaatje", first: "Michael", last: "Ondaatje" } },
|
|
419
|
+
{ from: "George Orwell", to: { full: "George Orwell", first: "George", last: "Orwell" } },
|
|
420
|
+
{ from: "Ruth Ozeki", to: { full: "Ruth Ozeki", first: "Ruth", last: "Ozeki" } },
|
|
421
|
+
|
|
422
|
+
{ from: "Ruth Padel", to: { full: "Ruth Padel", first: "Ruth", last: "Padel" } },
|
|
423
|
+
{ from: "Chuck Palahniuk", to: { full: "Chuck Palahniuk", first: "Chuck", last: "Palahniuk" } },
|
|
424
|
+
{ from: "Orhan Pamuk", to: { full: "Orhan Pamuk", first: "Orhan", last: "Pamuk" } },
|
|
425
|
+
{ from: "Boris Pasternak", to: { full: "Boris Pasternak", first: "Boris", last: "Pasternak" } },
|
|
426
|
+
{ from: "Paul Farley", to: { full: "Paul Farley", first: "Paul", last: "Farley" } },
|
|
427
|
+
{ from: "Michelle Paver", to: { full: "Michelle Paver", first: "Michelle", last: "Paver" } },
|
|
428
|
+
{ from: "David Peace", to: { full: "David Peace", first: "David", last: "Peace" } },
|
|
429
|
+
{ from: "Basharat Peer", to: { full: "Basharat Peer", first: "Basharat", last: "Peer" } },
|
|
430
|
+
{ from: "Mal Peet", to: { full: "Mal Peet", first: "Mal", last: "Peet" } },
|
|
431
|
+
{ from: "Harvey Pekar", to: { full: "Harvey Pekar", first: "Harvey", last: "Pekar" } },
|
|
432
|
+
{ from: "Penelope Fitzgerald", to: { full: "Penelope Fitzgerald", first: "Penelope", last: "Fitzgerald" } },
|
|
433
|
+
{ from: "Samuel Pepys", to: { full: "Samuel Pepys", first: "Samuel", last: "Pepys" } },
|
|
434
|
+
{ from: "Percy Bysshe Shelley", to: { full: "Percy Bysshe Shelley", first: "Percy Bysshe", last: "Shelley" } },
|
|
435
|
+
{ from: "Philip Hensher", to: { full: "Philip Hensher", first: "Philip", last: "Hensher" } },
|
|
436
|
+
{ from: "Piers Paul Read", to: { full: "Piers Paul Read", first: "Piers Paul", last: "Read" } },
|
|
437
|
+
{ from: "Piers Torday", to: { full: "Piers Torday", first: "Piers", last: "Torday" } },
|
|
438
|
+
{ from: "Harold Pinter", to: { full: "Harold Pinter", first: "Harold", last: "Pinter" } },
|
|
439
|
+
{ from: "Sylvia Plath", to: { full: "Sylvia Plath", first: "Sylvia", last: "Plath" } },
|
|
440
|
+
|
|
441
|
+
{ from: "Edgar Allan Poe", to: { full: "Edgar Allan Poe", first: "Edgar Allan", last: "Poe" } },
|
|
442
|
+
{ from: "Peter Porter", to: { full: "Peter Porter", first: "Peter", last: "Porter" } },
|
|
443
|
+
{ from: "Terry Pratchett", to: { full: "Terry Pratchett", first: "Terry", last: "Pratchett" } },
|
|
444
|
+
{ from: "Marcel Proust", to: { full: "Marcel Proust", first: "Marcel", last: "Proust" } },
|
|
445
|
+
{ from: "Philip Pullman", to: { full: "Philip Pullman", first: "Philip", last: "Pullman" } },
|
|
446
|
+
{ from: "Thomas Pynchon", to: { full: "Thomas Pynchon", first: "Thomas", last: "Pynchon" } },
|
|
447
|
+
|
|
448
|
+
{ from: "Jonathan Raban", to: { full: "Jonathan Raban", first: "Jonathan", last: "Raban" } },
|
|
449
|
+
{ from: "Rachel Cusk", to: { full: "Rachel Cusk", first: "Rachel", last: "Cusk" } },
|
|
450
|
+
{ from: "Ross Raisin", to: { full: "Ross Raisin", first: "Ross", last: "Raisin" } },
|
|
451
|
+
{ from: "Ian Rankin", to: { full: "Ian Rankin", first: "Ian", last: "Rankin" } },
|
|
452
|
+
{ from: "Arthur Ransome", to: { full: "Arthur Ransome", first: "Arthur", last: "Ransome" } },
|
|
453
|
+
{ from: "Redmond O'Hanlon", to: { full: "Redmond O'Hanlon", first: "Redmond", last: "O'Hanlon" } },
|
|
454
|
+
{ from: "David Remnick", to: { full: "David Remnick", first: "David", last: "Remnick" } },
|
|
455
|
+
{ from: "Ruth Rendell", to: { full: "Ruth Rendell", first: "Ruth", last: "Rendell" } },
|
|
456
|
+
{ from: "Reza Aslan", to: { full: "Reza Aslan", first: "Reza", last: "Aslan" } },
|
|
457
|
+
{ from: "Anne Rice", to: { full: "Anne Rice", first: "Anne", last: "Rice" } },
|
|
458
|
+
{ from: "Richard Flanagan", to: { full: "Richard Flanagan", first: "Richard", last: "Flanagan" } },
|
|
459
|
+
{ from: "Richard Ford", to: { full: "Richard Ford", first: "Richard", last: "Ford" } },
|
|
460
|
+
{ from: "Gwendoline Riley", to: { full: "Gwendoline Riley", first: "Gwendoline", last: "Riley" } },
|
|
461
|
+
{ from: "Robert Graves", to: { full: "Robert Graves", first: "Robert", last: "Graves" } },
|
|
462
|
+
{ from: "Marilynne Robinson", to: { full: "Marilynne Robinson", first: "Marilynne", last: "Robinson" } },
|
|
463
|
+
{ from: "Rose Tremain", to: { full: "Rose Tremain", first: "Rose", last: "Tremain" } },
|
|
464
|
+
{ from: "Michael Rosen", to: { full: "Michael Rosen", first: "Michael", last: "Rosen" } },
|
|
465
|
+
{ from: "Meg Rosoff", to: { full: "Meg Rosoff", first: "Meg", last: "Rosoff" } },
|
|
466
|
+
{ from: "Alex Ross", to: { full: "Alex Ross", first: "Alex", last: "Ross" } },
|
|
467
|
+
{ from: "Philip Roth", to: { full: "Philip Roth", first: "Philip", last: "Roth" } },
|
|
468
|
+
{ from: "JK Rowling", to: { full: "JK Rowling", first: "JK", last: "Rowling" } },
|
|
469
|
+
{ from: "Roxane Gay", to: { full: "Roxane Gay", first: "Roxane", last: "Gay" } },
|
|
470
|
+
{ from: "Arundhati Roy", to: { full: "Arundhati Roy", first: "Arundhati", last: "Roy" } },
|
|
471
|
+
{ from: "Salman Rushdie", to: { full: "Salman Rushdie", first: "Salman", last: "Rushdie" } },
|
|
472
|
+
{ from: "Russell Hoban", to: { full: "Russell Hoban", first: "Russell", last: "Hoban" } },
|
|
473
|
+
|
|
474
|
+
{ from: "Joe Sacco", to: { full: "Joe Sacco", first: "Joe", last: "Sacco" } },
|
|
475
|
+
{ from: "Jonathan Safran Foer", to: { full: "Jonathan Safran Foer", first: "Jonathan Safran", last: "Foer" } },
|
|
476
|
+
{ from: "JD Salinger", to: { full: "JD Salinger", first: "JD", last: "Salinger" } },
|
|
477
|
+
{ from: "Michael Sandel", to: { full: "Michael Sandel", first: "Michael", last: "Sandel" } },
|
|
478
|
+
{ from: "José Saramago", to: { full: "José Saramago", first: "José", last: "Saramago" } },
|
|
479
|
+
{ from: "Jean-Paul Sartre", to: { full: "Jean-Paul Sartre", first: "Jean-Paul", last: "Sartre" } },
|
|
480
|
+
{ from: "Siegfried Sassoon", to: { full: "Siegfried Sassoon", first: "Siegfried", last: "Sassoon" } },
|
|
481
|
+
{ from: "George Saunders", to: { full: "George Saunders", first: "George", last: "Saunders" } },
|
|
482
|
+
{ from: "Dorothy L Sayers", to: { full: "Dorothy L Sayers", first: "Dorothy L", last: "Sayers" } },
|
|
483
|
+
{ from: "Sir Walter Scott", to: { full: "Sir Walter Scott", title: "Sir", first: "Walter", last: "Scott" } },
|
|
484
|
+
{ from: "WG Sebald", to: { full: "WG Sebald", first: "WG", last: "Sebald" } },
|
|
485
|
+
{ from: "Will Self", to: { full: "Will Self", first: "Will", last: "Self" } },
|
|
486
|
+
{ from: "Maurice Sendak", to: { full: "Maurice Sendak", first: "Maurice", last: "Sendak" } },
|
|
487
|
+
{ from: "Dr Seuss", to: { full: "Dr Seuss", title: "Dr", last: "Seuss" } },
|
|
488
|
+
{ from: "William Shakespeare", to: { full: "William Shakespeare", first: "William", last: "Shakespeare" } },
|
|
489
|
+
{ from: "Shaun Tan", to: { full: "Shaun Tan", first: "Shaun", last: "Tan" } },
|
|
490
|
+
{ from: "Mary Shelley", to: { full: "Mary Shelley", first: "Mary", last: "Shelley" } },
|
|
491
|
+
{ from: "Carol Shields", to: { full: "Carol Shields", first: "Carol", last: "Shields" } },
|
|
492
|
+
{ from: "Lionel Shriver", to: { full: "Lionel Shriver", first: "Lionel", last: "Shriver" } },
|
|
493
|
+
{ from: "Alan Sillitoe", to: { full: "Alan Sillitoe", first: "Alan", last: "Sillitoe" } },
|
|
494
|
+
{ from: "Georges Simenon", to: { full: "Georges Simenon", first: "Georges", last: "Simenon" } },
|
|
495
|
+
{ from: "Posy Simmonds", to: { full: "Posy Simmonds", first: "Posy", last: "Simmonds" } },
|
|
496
|
+
{ from: "Francesca Simon", to: { full: "Francesca Simon", first: "Francesca", last: "Simon" } },
|
|
497
|
+
{ from: "Iain Sinclair", to: { full: "Iain Sinclair", first: "Iain", last: "Sinclair" } },
|
|
498
|
+
{ from: "Lemn Sissay", to: { full: "Lemn Sissay", first: "Lemn", last: "Sissay" } },
|
|
499
|
+
{ from: "Edith Sitwell", to: { full: "Edith Sitwell", first: "Edith", last: "Sitwell" } },
|
|
500
|
+
{ from: "Robert Skidelsky", to: { full: "Robert Skidelsky", first: "Robert", last: "Skidelsky" } },
|
|
501
|
+
{ from: "Jane Smiley", to: { full: "Jane Smiley", first: "Jane", last: "Smiley" } },
|
|
502
|
+
{ from: "Ali Smith", to: { full: "Ali Smith", first: "Ali", last: "Smith" } },
|
|
503
|
+
{ from: "Tom Rob Smith", to: { full: "Tom Rob Smith", first: "Tom Rob", last: "Smith" } },
|
|
504
|
+
{ from: "Wilbur Smith", to: { full: "Wilbur Smith", first: "Wilbur", last: "Smith" } },
|
|
505
|
+
{ from: "Zadie Smith", to: { full: "Zadie Smith", first: "Zadie", last: "Smith" } },
|
|
506
|
+
{ from: "Andrew Solomon", to: { full: "Andrew Solomon", first: "Andrew", last: "Solomon" } },
|
|
507
|
+
{ from: "Aleksandr Solzhenitsyn", to: { full: "Aleksandr Solzhenitsyn", first: "Aleksandr", last: "Solzhenitsyn" } },
|
|
508
|
+
{ from: "Wole Soyinka", to: { full: "Wole Soyinka", first: "Wole", last: "Soyinka" } },
|
|
509
|
+
{ from: "Muriel Spark", to: { full: "Muriel Spark", first: "Muriel", last: "Spark" } },
|
|
510
|
+
{ from: "Art Spiegelman", to: { full: "Art Spiegelman", first: "Art", last: "Spiegelman" } },
|
|
511
|
+
{ from: "Edward St Aubyn", to: { full: "Edward St Aubyn", first: "Edward", last: "St Aubyn" } },
|
|
512
|
+
{ from: "John Steinbeck", to: { full: "John Steinbeck", first: "John", last: "Steinbeck" } },
|
|
513
|
+
{ from: "Gloria Steinem", to: { full: "Gloria Steinem", first: "Gloria", last: "Steinem" } },
|
|
514
|
+
{ from: "Laurence Sterne", to: { full: "Laurence Sterne", first: "Laurence", last: "Sterne" } },
|
|
515
|
+
{ from: "Robert Louis Stevenson", to: { full: "Robert Louis Stevenson", first: "Robert Louis", last: "Stevenson" } },
|
|
516
|
+
{ from: "Kathryn Stockett", to: { full: "Kathryn Stockett", first: "Kathryn", last: "Stockett" } },
|
|
517
|
+
{ from: "Sue Townsend", to: { full: "Sue Townsend", first: "Sue", last: "Townsend" } },
|
|
518
|
+
{ from: "Graham Swift", to: { full: "Graham Swift", first: "Graham", last: "Swift" } },
|
|
519
|
+
{ from: "Jonathan Swift", to: { full: "Jonathan Swift", first: "Jonathan", last: "Swift" } },
|
|
520
|
+
|
|
521
|
+
{ from: "Nassim Nicholas Taleb", to: { full: "Nassim Nicholas Taleb", first: "Nassim Nicholas", last: "Taleb" } },
|
|
522
|
+
{ from: "Raymond Tallis", to: { full: "Raymond Tallis", first: "Raymond", last: "Tallis" } },
|
|
523
|
+
{ from: "Alfred Tennyson", to: { full: "Alfred Tennyson", first: "Alfred", last: "Tennyson" } },
|
|
524
|
+
{ from: "Studs Terkel", to: { full: "Studs Terkel", first: "Studs", last: "Terkel" } },
|
|
525
|
+
{ from: "Ngugi wa Thiong'o", to: { full: "Ngugi wa Thiong'o", first: "Ngugi", last: "wa Thiong'o" } },
|
|
526
|
+
{ from: "Dylan Thomas", to: { full: "Dylan Thomas", first: "Dylan", last: "Thomas" } },
|
|
527
|
+
{ from: "Hunter S Thompson", to: { full: "Hunter S Thompson", first: "Hunter S", last: "Thompson" } },
|
|
528
|
+
{ from: "Rupert Thomson", to: { full: "Rupert Thomson", first: "Rupert", last: "Thomson" } },
|
|
529
|
+
{ from: "Colm Tóibín", to: { full: "Colm Tóibín", first: "Colm", last: "Tóibín" } },
|
|
530
|
+
{ from: "JRR Tolkien", to: { full: "JRR Tolkien", first: "JRR", last: "Tolkien" } },
|
|
531
|
+
{ from: "Leo Tolstoy", to: { full: "Leo Tolstoy", first: "Leo", last: "Tolstoy" } },
|
|
532
|
+
{ from: "Tom McCarthy", to: { full: "Tom McCarthy", first: "Tom", last: "McCarthy" } },
|
|
533
|
+
{ from: "Claire Tomalin", to: { full: "Claire Tomalin", first: "Claire", last: "Tomalin" } },
|
|
534
|
+
{ from: "Justin Torres", to: { full: "Justin Torres", first: "Justin", last: "Torres" } },
|
|
535
|
+
{ from: "William Trevor", to: { full: "William Trevor", first: "William", last: "Trevor" } },
|
|
536
|
+
{ from: "Hugh Trevor-Roper", to: { full: "Hugh Trevor-Roper", first: "Hugh", last: "Trevor-Roper" } },
|
|
537
|
+
{ from: "Anthony Trollope", to: { full: "Anthony Trollope", first: "Anthony", last: "Trollope" } },
|
|
538
|
+
{ from: "TS Eliot", to: { full: "TS Eliot", first: "TS", last: "Eliot" } },
|
|
539
|
+
{ from: "Christos Tsiolkas", to: { full: "Christos Tsiolkas", first: "Christos", last: "Tsiolkas" } },
|
|
540
|
+
{ from: "Mark Twain", to: { full: "Mark Twain", first: "Mark", last: "Twain" } },
|
|
541
|
+
|
|
542
|
+
{ from: "David Uberti", to: { full: "David Uberti", first: "David", last: "Uberti" } },
|
|
543
|
+
{ from: "Barry Unsworth", to: { full: "Barry Unsworth", first: "Barry", last: "Unsworth" } },
|
|
544
|
+
{ from: "John Updike", to: { full: "John Updike", first: "John", last: "Updike" } },
|
|
545
|
+
|
|
546
|
+
{ from: "Mario Vargas Llosa", to: { full: "Mario Vargas Llosa", first: "Mario Vargas", last: "Llosa" } },
|
|
547
|
+
{ from: "Francois Marie Arouet de Voltaire", to: { full: "Francois Marie Arouet de Voltaire", first: "Francois Marie Arouet", last: "de Voltaire" } },
|
|
548
|
+
{ from: "Kurt Vonnegut", to: { full: "Kurt Vonnegut", first: "Kurt", last: "Vonnegut" } },
|
|
549
|
+
|
|
550
|
+
{ from: "Derek Walcott", to: { full: "Derek Walcott", first: "Derek", last: "Walcott" } },
|
|
551
|
+
{ from: "Alice Walker", to: { full: "Alice Walker", first: "Alice", last: "Walker" } },
|
|
552
|
+
{ from: "David Foster Wallace", to: { full: "David Foster Wallace", first: "David Foster", last: "Wallace" } },
|
|
553
|
+
{ from: "Natasha Walter", to: { full: "Natasha Walter", first: "Natasha", last: "Walter" } },
|
|
554
|
+
{ from: "Joseph Wambaugh", to: { full: "Joseph Wambaugh", first: "Joseph", last: "Wambaugh" } },
|
|
555
|
+
{ from: "Jesmyn Ward", to: { full: "Jesmyn Ward", first: "Jesmyn", last: "Ward" } },
|
|
556
|
+
{ from: "Alan Warner", to: { full: "Alan Warner", first: "Alan", last: "Warner" } },
|
|
557
|
+
{ from: "Sarah Waters", to: { full: "Sarah Waters", first: "Sarah", last: "Waters" } },
|
|
558
|
+
{ from: "Evelyn Waugh", to: { full: "Evelyn Waugh", first: "Evelyn", last: "Waugh" } },
|
|
559
|
+
{ from: "Fay Weldon", to: { full: "Fay Weldon", first: "Fay", last: "Weldon" } },
|
|
560
|
+
{ from: "HG Wells", to: { full: "HG Wells", first: "HG", last: "Wells" } },
|
|
561
|
+
{ from: "Irvine Welsh", to: { full: "Irvine Welsh", first: "Irvine", last: "Welsh" } },
|
|
562
|
+
{ from: "Edith Wharton", to: { full: "Edith Wharton", first: "Edith", last: "Wharton" } },
|
|
563
|
+
{ from: "Edmund White", to: { full: "Edmund White", first: "Edmund", last: "White" } },
|
|
564
|
+
{ from: "Oscar Wilde", to: { full: "Oscar Wilde", first: "Oscar", last: "Wilde" } },
|
|
565
|
+
{ from: "Hugo Williams", to: { full: "Hugo Williams", first: "Hugo", last: "Williams" } },
|
|
566
|
+
{ from: "Tennessee Williams", to: { full: "Tennessee Williams", first: "Tennessee", last: "Williams" } },
|
|
567
|
+
{ from: "Jacqueline Wilson", to: { full: "Jacqueline Wilson", first: "Jacqueline", last: "Wilson" } },
|
|
568
|
+
{ from: "Jeanette Winterson", to: { full: "Jeanette Winterson", first: "Jeanette", last: "Winterson" } },
|
|
569
|
+
{ from: "PG Wodehouse", to: { full: "PG Wodehouse", first: "PG", last: "Wodehouse" } },
|
|
570
|
+
{ from: "Naomi Wolf", to: { full: "Naomi Wolf", first: "Naomi", last: "Wolf" } },
|
|
571
|
+
{ from: "Tom Wolfe", to: { full: "Tom Wolfe", first: "Tom", last: "Wolfe" } },
|
|
572
|
+
{ from: "Mary Wollstonecraft", to: { full: "Mary Wollstonecraft", first: "Mary", last: "Wollstonecraft" } },
|
|
573
|
+
{ from: "Virginia Woolf", to: { full: "Virginia Woolf", first: "Virginia", last: "Woolf" } },
|
|
574
|
+
{ from: "William Wordsworth", to: { full: "William Wordsworth", first: "William", last: "Wordsworth" } },
|
|
575
|
+
{ from: "John Wyndham", to: { full: "John Wyndham", first: "John", last: "Wyndham" } },
|
|
576
|
+
{ from: "Diana Wynne Jones", to: { full: "Diana Wynne Jones", first: "Diana Wynne", last: "Jones" } },
|
|
577
|
+
|
|
578
|
+
{ from: "WB Yeats", to: { full: "WB Yeats", first: "WB", last: "Yeats" } },
|
|
579
|
+
|
|
580
|
+
{ from: "Slavoj Zizek", to: { full: "Slavoj Zizek", first: "Slavoj", last: "Zizek" } },
|
|
581
|
+
{ from: "Emile Zola", to: { full: "Emile Zola", first: "Emile", last: "Zola" } }
|
|
582
|
+
].each do |name|
|
|
583
|
+
it "parses #{name[:from]}" do
|
|
584
|
+
skip if name[:skip]
|
|
585
|
+
parsed = Nomener.parse(name[:from])
|
|
586
|
+
parse_hash = parsed.to_h
|
|
587
|
+
parse_hash.each_pair do |k,v|
|
|
588
|
+
unless (v.nil? || v.empty?)
|
|
589
|
+
expect(v).to eq(name[:to][k]), "got from #{k} - #{v} not #{name[:to][k]}"
|
|
590
|
+
end
|
|
591
|
+
end
|
|
592
|
+
end
|
|
593
|
+
end
|
|
594
|
+
|
|
595
|
+
end
|
|
596
|
+
end
|