enju_circulation 0.0.43 → 0.0.45

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.
Files changed (63) hide show
  1. data/app/controllers/checked_items_controller.rb +2 -4
  2. data/app/controllers/checkout_stat_has_manifestations_controller.rb +6 -6
  3. data/app/controllers/checkout_stat_has_users_controller.rb +6 -6
  4. data/app/controllers/checkout_types_controller.rb +2 -4
  5. data/app/controllers/item_has_use_restrictions_controller.rb +5 -5
  6. data/app/controllers/manifestation_checkout_stats_controller.rb +2 -4
  7. data/app/controllers/manifestation_reserve_stats_controller.rb +2 -4
  8. data/app/controllers/reserve_stat_has_manifestations_controller.rb +4 -2
  9. data/app/controllers/reserve_stat_has_users_controller.rb +6 -6
  10. data/app/controllers/user_group_has_checkout_types_controller.rb +2 -4
  11. data/app/models/carrier_type_has_checkout_type.rb +1 -0
  12. data/app/models/checked_item.rb +1 -0
  13. data/app/models/checkin.rb +1 -1
  14. data/app/models/checkout.rb +2 -3
  15. data/app/models/checkout_stat_has_manifestation.rb +3 -0
  16. data/app/models/checkout_stat_has_user.rb +3 -0
  17. data/app/models/checkout_type.rb +1 -0
  18. data/app/models/circulation_status.rb +2 -2
  19. data/app/models/item_has_use_restriction.rb +2 -0
  20. data/app/models/lending_policy.rb +2 -0
  21. data/app/models/manifestation_checkout_stat.rb +2 -0
  22. data/app/models/manifestation_reserve_stat.rb +2 -0
  23. data/app/models/reserve.rb +35 -16
  24. data/app/models/reserve_stat_has_manifestation.rb +3 -0
  25. data/app/models/reserve_stat_has_user.rb +3 -0
  26. data/app/models/use_restriction.rb +1 -1
  27. data/app/models/user_checkout_stat.rb +2 -1
  28. data/app/models/user_group_has_checkout_type.rb +4 -0
  29. data/app/models/user_reserve_stat.rb +2 -1
  30. data/lib/enju_circulation/version.rb +1 -1
  31. data/spec/controllers/carrier_type_has_checkout_types_controller_spec.rb +7 -7
  32. data/spec/controllers/checkout_stat_has_manifestations_controller_spec.rb +10 -10
  33. data/spec/controllers/checkout_stat_has_users_controller_spec.rb +3 -3
  34. data/spec/controllers/checkouts_controller_spec.rb +9 -7
  35. data/spec/controllers/circulation_statuses_controller_spec.rb +445 -0
  36. data/spec/controllers/item_has_use_restrictions_controller_spec.rb +10 -10
  37. data/spec/controllers/reserve_stat_has_manifestations_controller_spec.rb +10 -10
  38. data/spec/controllers/reserve_stat_has_users_controller_spec.rb +3 -3
  39. data/spec/controllers/reserves_controller_spec.rb +1 -1
  40. data/spec/controllers/use_restrictions_controller_spec.rb +4 -4
  41. data/spec/dummy/app/models/basket.rb +5 -2
  42. data/spec/dummy/db/development.sqlite3 +0 -0
  43. data/spec/dummy/db/test.sqlite3 +0 -0
  44. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  45. data/spec/dummy/solr/conf/elevate.xml +36 -0
  46. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  47. data/spec/dummy/solr/conf/protwords.txt +21 -0
  48. data/spec/dummy/solr/conf/schema.xml +238 -0
  49. data/spec/dummy/solr/conf/scripts.conf +24 -0
  50. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  51. data/spec/dummy/solr/conf/spellings.txt +2 -0
  52. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  53. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  54. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  55. data/spec/dummy/solr/data/test/index/segments_1 +0 -0
  56. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  57. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  58. data/spec/factories/circulation_status.rb +5 -0
  59. data/spec/models/basket_spec.rb +43 -0
  60. data/spec/models/checkin_spec.rb +13 -4
  61. data/spec/models/circulation_status_spec.rb +21 -0
  62. data/spec/spec_helper.rb +13 -0
  63. metadata +56 -18
@@ -32,7 +32,7 @@ describe ItemHasUseRestrictionsController do
32
32
  end
33
33
  end
34
34
 
35
- describe "When logged in as Subject" do
35
+ describe "When logged in as User" do
36
36
  login_user
37
37
 
38
38
  it "assigns all item_has_use_restrictions as @item_has_use_restrictions" do
@@ -72,7 +72,7 @@ describe ItemHasUseRestrictionsController do
72
72
  end
73
73
  end
74
74
 
75
- describe "When logged in as Subject" do
75
+ describe "When logged in as User" do
76
76
  login_user
77
77
 
78
78
  it "assigns the requested item_has_use_restriction as @item_has_use_restriction" do
@@ -112,7 +112,7 @@ describe ItemHasUseRestrictionsController do
112
112
  end
113
113
  end
114
114
 
115
- describe "When logged in as Subject" do
115
+ describe "When logged in as User" do
116
116
  login_user
117
117
 
118
118
  it "should not assign the requested item_has_use_restriction as @item_has_use_restriction" do
@@ -152,7 +152,7 @@ describe ItemHasUseRestrictionsController do
152
152
  end
153
153
  end
154
154
 
155
- describe "When logged in as Subject" do
155
+ describe "When logged in as User" do
156
156
  login_user
157
157
 
158
158
  it "assigns the requested item_has_use_restriction as @item_has_use_restriction" do
@@ -211,7 +211,7 @@ describe ItemHasUseRestrictionsController do
211
211
  describe "with valid params" do
212
212
  it "assigns a newly created item_has_use_restriction as @item_has_use_restriction" do
213
213
  post :create, :item_has_use_restriction => @attrs
214
- assigns(:item_has_use_restriction).should be_valid
214
+ assigns(:item_has_use_restriction).should_not be_valid
215
215
  end
216
216
 
217
217
  it "should be forbidden" do
@@ -233,13 +233,13 @@ describe ItemHasUseRestrictionsController do
233
233
  end
234
234
  end
235
235
 
236
- describe "When logged in as Subject" do
236
+ describe "When logged in as User" do
237
237
  login_user
238
238
 
239
239
  describe "with valid params" do
240
240
  it "assigns a newly created item_has_use_restriction as @item_has_use_restriction" do
241
241
  post :create, :item_has_use_restriction => @attrs
242
- assigns(:item_has_use_restriction).should be_valid
242
+ assigns(:item_has_use_restriction).should_not be_valid
243
243
  end
244
244
 
245
245
  it "should be forbidden" do
@@ -265,7 +265,7 @@ describe ItemHasUseRestrictionsController do
265
265
  describe "with valid params" do
266
266
  it "assigns a newly created item_has_use_restriction as @item_has_use_restriction" do
267
267
  post :create, :item_has_use_restriction => @attrs
268
- assigns(:item_has_use_restriction).should be_valid
268
+ assigns(:item_has_use_restriction).should_not be_valid
269
269
  end
270
270
 
271
271
  it "should be forbidden" do
@@ -345,7 +345,7 @@ describe ItemHasUseRestrictionsController do
345
345
  end
346
346
  end
347
347
 
348
- describe "When logged in as Subject" do
348
+ describe "When logged in as User" do
349
349
  login_user
350
350
 
351
351
  describe "with valid params" do
@@ -420,7 +420,7 @@ describe ItemHasUseRestrictionsController do
420
420
  end
421
421
  end
422
422
 
423
- describe "When logged in as Subject" do
423
+ describe "When logged in as User" do
424
424
  login_user
425
425
 
426
426
  it "destroys the requested item_has_use_restriction" do
@@ -26,7 +26,7 @@ describe ReserveStatHasManifestationsController do
26
26
  end
27
27
  end
28
28
 
29
- describe "When logged in as Manifestation" do
29
+ describe "When logged in as User" do
30
30
  login_user
31
31
 
32
32
  it "assigns all reserve_stat_has_manifestations as @reserve_stat_has_manifestations" do
@@ -66,7 +66,7 @@ describe ReserveStatHasManifestationsController do
66
66
  end
67
67
  end
68
68
 
69
- describe "When logged in as Manifestation" do
69
+ describe "When logged in as User" do
70
70
  login_user
71
71
 
72
72
  it "assigns the requested reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
@@ -106,7 +106,7 @@ describe ReserveStatHasManifestationsController do
106
106
  end
107
107
  end
108
108
 
109
- describe "When logged in as Manifestation" do
109
+ describe "When logged in as User" do
110
110
  login_user
111
111
 
112
112
  it "should not assign the requested reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
@@ -146,7 +146,7 @@ describe ReserveStatHasManifestationsController do
146
146
  end
147
147
  end
148
148
 
149
- describe "When logged in as Manifestation" do
149
+ describe "When logged in as User" do
150
150
  login_user
151
151
 
152
152
  it "assigns the requested reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
@@ -205,7 +205,7 @@ describe ReserveStatHasManifestationsController do
205
205
  describe "with valid params" do
206
206
  it "assigns a newly created reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
207
207
  post :create, :reserve_stat_has_manifestation => @attrs
208
- assigns(:reserve_stat_has_manifestation).should be_valid
208
+ assigns(:reserve_stat_has_manifestation).should_not be_valid
209
209
  end
210
210
 
211
211
  it "should be forbidden" do
@@ -227,13 +227,13 @@ describe ReserveStatHasManifestationsController do
227
227
  end
228
228
  end
229
229
 
230
- describe "When logged in as Manifestation" do
230
+ describe "When logged in as User" do
231
231
  login_user
232
232
 
233
233
  describe "with valid params" do
234
234
  it "assigns a newly created reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
235
235
  post :create, :reserve_stat_has_manifestation => @attrs
236
- assigns(:reserve_stat_has_manifestation).should be_valid
236
+ assigns(:reserve_stat_has_manifestation).should_not be_valid
237
237
  end
238
238
 
239
239
  it "should be forbidden" do
@@ -259,7 +259,7 @@ describe ReserveStatHasManifestationsController do
259
259
  describe "with valid params" do
260
260
  it "assigns a newly created reserve_stat_has_manifestation as @reserve_stat_has_manifestation" do
261
261
  post :create, :reserve_stat_has_manifestation => @attrs
262
- assigns(:reserve_stat_has_manifestation).should be_valid
262
+ assigns(:reserve_stat_has_manifestation).should_not be_valid
263
263
  end
264
264
 
265
265
  it "should be forbidden" do
@@ -339,7 +339,7 @@ describe ReserveStatHasManifestationsController do
339
339
  end
340
340
  end
341
341
 
342
- describe "When logged in as Manifestation" do
342
+ describe "When logged in as User" do
343
343
  login_user
344
344
 
345
345
  describe "with valid params" do
@@ -414,7 +414,7 @@ describe ReserveStatHasManifestationsController do
414
414
  end
415
415
  end
416
416
 
417
- describe "When logged in as Manifestation" do
417
+ describe "When logged in as User" do
418
418
  login_user
419
419
 
420
420
  it "destroys the requested reserve_stat_has_manifestation" do
@@ -205,7 +205,7 @@ describe ReserveStatHasUsersController do
205
205
  describe "with valid params" do
206
206
  it "assigns a newly created reserve_stat_has_user as @reserve_stat_has_user" do
207
207
  post :create, :reserve_stat_has_user => @attrs
208
- assigns(:reserve_stat_has_user).should be_valid
208
+ assigns(:reserve_stat_has_user).should_not be_valid
209
209
  end
210
210
 
211
211
  it "should be forbidden" do
@@ -233,7 +233,7 @@ describe ReserveStatHasUsersController do
233
233
  describe "with valid params" do
234
234
  it "assigns a newly created reserve_stat_has_user as @reserve_stat_has_user" do
235
235
  post :create, :reserve_stat_has_user => @attrs
236
- assigns(:reserve_stat_has_user).should be_valid
236
+ assigns(:reserve_stat_has_user).should_not be_valid
237
237
  end
238
238
 
239
239
  it "should be forbidden" do
@@ -259,7 +259,7 @@ describe ReserveStatHasUsersController do
259
259
  describe "with valid params" do
260
260
  it "assigns a newly created reserve_stat_has_user as @reserve_stat_has_user" do
261
261
  post :create, :reserve_stat_has_user => @attrs
262
- assigns(:reserve_stat_has_user).should be_valid
262
+ assigns(:reserve_stat_has_user).should_not be_valid
263
263
  end
264
264
 
265
265
  it "should be forbidden" do
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe ReservesController do
4
4
  fixtures :all
5
5
 
6
- describe "GET index" do
6
+ describe "GET index", :solr => true do
7
7
  describe "When logged in as Administrator" do
8
8
  login_fixture_admin
9
9
 
@@ -183,7 +183,7 @@ describe UseRestrictionsController do
183
183
  describe "with valid params" do
184
184
  it "assigns a newly created use_restriction as @use_restriction" do
185
185
  post :create, :use_restriction => @attrs
186
- assigns(:use_restriction).should_not be_valid
186
+ assigns(:use_restriction).should be_valid
187
187
  end
188
188
 
189
189
  it "redirects to the created patron" do
@@ -211,7 +211,7 @@ describe UseRestrictionsController do
211
211
  describe "with valid params" do
212
212
  it "assigns a newly created use_restriction as @use_restriction" do
213
213
  post :create, :use_restriction => @attrs
214
- assigns(:use_restriction).should_not be_valid
214
+ assigns(:use_restriction).should be_valid
215
215
  end
216
216
 
217
217
  it "should be forbidden" do
@@ -239,7 +239,7 @@ describe UseRestrictionsController do
239
239
  describe "with valid params" do
240
240
  it "assigns a newly created use_restriction as @use_restriction" do
241
241
  post :create, :use_restriction => @attrs
242
- assigns(:use_restriction).should_not be_valid
242
+ assigns(:use_restriction).should be_valid
243
243
  end
244
244
 
245
245
  it "should be forbidden" do
@@ -265,7 +265,7 @@ describe UseRestrictionsController do
265
265
  describe "with valid params" do
266
266
  it "assigns a newly created use_restriction as @use_restriction" do
267
267
  post :create, :use_restriction => @attrs
268
- assigns(:use_restriction).should_not be_valid
268
+ assigns(:use_restriction).should be_valid
269
269
  end
270
270
 
271
271
  it "should be forbidden" do
@@ -10,7 +10,6 @@ class Basket < ActiveRecord::Base
10
10
  validates_presence_of :user, :on => :create
11
11
  validate :check_suspended
12
12
 
13
- attr_protected :user_id
14
13
  attr_accessor :user_number
15
14
 
16
15
  def check_suspended
@@ -36,7 +35,11 @@ class Basket < ActiveRecord::Base
36
35
  return nil if checked_items.size == 0
37
36
  Item.transaction do
38
37
  self.checked_items.each do |checked_item|
39
- checkout = self.user.checkouts.new(:librarian_id => librarian.id, :item_id => checked_item.item.id, :basket_id => id, :due_date => checked_item.due_date)
38
+ checkout = self.user.checkouts.new
39
+ checkout.librarian = librarian
40
+ checkout.item = checked_item.item
41
+ checkout.basket = self
42
+ checkout.due_date = checked_item.due_date
40
43
  checked_item.item.checkout!(user)
41
44
  checkout.save!
42
45
  end
Binary file
Binary file
@@ -0,0 +1,31 @@
1
+ <!--
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ -->
17
+
18
+ <!-- The content of this page will be statically included into the top
19
+ of the admin page. Uncomment this as an example to see there the content
20
+ will show up.
21
+
22
+ <hr>
23
+ <i>This line will appear before the first table</i>
24
+ <tr>
25
+ <td colspan="2">
26
+ This row will be appended to the end of the first table
27
+ </td>
28
+ </tr>
29
+ <hr>
30
+
31
+ -->
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+ <!-- If this file is found in the config directory, it will only be
20
+ loaded once at startup. If it is found in Solr's data
21
+ directory, it will be re-loaded every commit.
22
+ -->
23
+
24
+ <elevate>
25
+ <query text="foo bar">
26
+ <doc id="1" />
27
+ <doc id="2" />
28
+ <doc id="3" />
29
+ </query>
30
+
31
+ <query text="ipod">
32
+ <doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
33
+ <doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
34
+ </query>
35
+
36
+ </elevate>
@@ -0,0 +1,246 @@
1
+ # The ASF licenses this file to You under the Apache License, Version 2.0
2
+ # (the "License"); you may not use this file except in compliance with
3
+ # the License. You may obtain a copy of the License at
4
+ #
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software
8
+ # distributed under the License is distributed on an "AS IS" BASIS,
9
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ # See the License for the specific language governing permissions and
11
+ # limitations under the License.
12
+
13
+ # Syntax:
14
+ # "source" => "target"
15
+ # "source".length() > 0 (source cannot be empty.)
16
+ # "target".length() >= 0 (target can be empty.)
17
+
18
+ # example:
19
+ # "À" => "A"
20
+ # "\u00C0" => "A"
21
+ # "\u00C0" => "\u0041"
22
+ # "ß" => "ss"
23
+ # "\t" => " "
24
+ # "\n" => ""
25
+
26
+ # À => A
27
+ "\u00C0" => "A"
28
+
29
+ # Á => A
30
+ "\u00C1" => "A"
31
+
32
+ # Â => A
33
+ "\u00C2" => "A"
34
+
35
+ # Ã => A
36
+ "\u00C3" => "A"
37
+
38
+ # Ä => A
39
+ "\u00C4" => "A"
40
+
41
+ # Å => A
42
+ "\u00C5" => "A"
43
+
44
+ # Æ => AE
45
+ "\u00C6" => "AE"
46
+
47
+ # Ç => C
48
+ "\u00C7" => "C"
49
+
50
+ # È => E
51
+ "\u00C8" => "E"
52
+
53
+ # É => E
54
+ "\u00C9" => "E"
55
+
56
+ # Ê => E
57
+ "\u00CA" => "E"
58
+
59
+ # Ë => E
60
+ "\u00CB" => "E"
61
+
62
+ # Ì => I
63
+ "\u00CC" => "I"
64
+
65
+ # Í => I
66
+ "\u00CD" => "I"
67
+
68
+ # Î => I
69
+ "\u00CE" => "I"
70
+
71
+ # Ï => I
72
+ "\u00CF" => "I"
73
+
74
+ # IJ => IJ
75
+ "\u0132" => "IJ"
76
+
77
+ # Ð => D
78
+ "\u00D0" => "D"
79
+
80
+ # Ñ => N
81
+ "\u00D1" => "N"
82
+
83
+ # Ò => O
84
+ "\u00D2" => "O"
85
+
86
+ # Ó => O
87
+ "\u00D3" => "O"
88
+
89
+ # Ô => O
90
+ "\u00D4" => "O"
91
+
92
+ # Õ => O
93
+ "\u00D5" => "O"
94
+
95
+ # Ö => O
96
+ "\u00D6" => "O"
97
+
98
+ # Ø => O
99
+ "\u00D8" => "O"
100
+
101
+ # Œ => OE
102
+ "\u0152" => "OE"
103
+
104
+ # Þ
105
+ "\u00DE" => "TH"
106
+
107
+ # Ù => U
108
+ "\u00D9" => "U"
109
+
110
+ # Ú => U
111
+ "\u00DA" => "U"
112
+
113
+ # Û => U
114
+ "\u00DB" => "U"
115
+
116
+ # Ü => U
117
+ "\u00DC" => "U"
118
+
119
+ # Ý => Y
120
+ "\u00DD" => "Y"
121
+
122
+ # Ÿ => Y
123
+ "\u0178" => "Y"
124
+
125
+ # à => a
126
+ "\u00E0" => "a"
127
+
128
+ # á => a
129
+ "\u00E1" => "a"
130
+
131
+ # â => a
132
+ "\u00E2" => "a"
133
+
134
+ # ã => a
135
+ "\u00E3" => "a"
136
+
137
+ # ä => a
138
+ "\u00E4" => "a"
139
+
140
+ # å => a
141
+ "\u00E5" => "a"
142
+
143
+ # æ => ae
144
+ "\u00E6" => "ae"
145
+
146
+ # ç => c
147
+ "\u00E7" => "c"
148
+
149
+ # è => e
150
+ "\u00E8" => "e"
151
+
152
+ # é => e
153
+ "\u00E9" => "e"
154
+
155
+ # ê => e
156
+ "\u00EA" => "e"
157
+
158
+ # ë => e
159
+ "\u00EB" => "e"
160
+
161
+ # ì => i
162
+ "\u00EC" => "i"
163
+
164
+ # í => i
165
+ "\u00ED" => "i"
166
+
167
+ # î => i
168
+ "\u00EE" => "i"
169
+
170
+ # ï => i
171
+ "\u00EF" => "i"
172
+
173
+ # ij => ij
174
+ "\u0133" => "ij"
175
+
176
+ # ð => d
177
+ "\u00F0" => "d"
178
+
179
+ # ñ => n
180
+ "\u00F1" => "n"
181
+
182
+ # ò => o
183
+ "\u00F2" => "o"
184
+
185
+ # ó => o
186
+ "\u00F3" => "o"
187
+
188
+ # ô => o
189
+ "\u00F4" => "o"
190
+
191
+ # õ => o
192
+ "\u00F5" => "o"
193
+
194
+ # ö => o
195
+ "\u00F6" => "o"
196
+
197
+ # ø => o
198
+ "\u00F8" => "o"
199
+
200
+ # œ => oe
201
+ "\u0153" => "oe"
202
+
203
+ # ß => ss
204
+ "\u00DF" => "ss"
205
+
206
+ # þ => th
207
+ "\u00FE" => "th"
208
+
209
+ # ù => u
210
+ "\u00F9" => "u"
211
+
212
+ # ú => u
213
+ "\u00FA" => "u"
214
+
215
+ # û => u
216
+ "\u00FB" => "u"
217
+
218
+ # ü => u
219
+ "\u00FC" => "u"
220
+
221
+ # ý => y
222
+ "\u00FD" => "y"
223
+
224
+ # ÿ => y
225
+ "\u00FF" => "y"
226
+
227
+ # ff => ff
228
+ "\uFB00" => "ff"
229
+
230
+ # fi => fi
231
+ "\uFB01" => "fi"
232
+
233
+ # fl => fl
234
+ "\uFB02" => "fl"
235
+
236
+ # ffi => ffi
237
+ "\uFB03" => "ffi"
238
+
239
+ # ffl => ffl
240
+ "\uFB04" => "ffl"
241
+
242
+ # ſt => ft
243
+ "\uFB05" => "ft"
244
+
245
+ # st => st
246
+ "\uFB06" => "st"