friendly_id 1.9.9 → 2.0.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.
@@ -1,710 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>lib/friendly_id/sluggable_instance_methods.rb - C0 code coverage information</title>
3
- <style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
4
- <style type='text/css'>span.cross-ref-title {
5
- font-size: 140%;
6
- }
7
- span.cross-ref a {
8
- text-decoration: none;
9
- }
10
- span.cross-ref {
11
- background-color:#f3f7fa;
12
- border: 1px dashed #333;
13
- margin: 1em;
14
- padding: 0.5em;
15
- overflow: hidden;
16
- }
17
- a.crossref-toggle {
18
- text-decoration: none;
19
- }
20
- span.marked0 {
21
- background-color: rgb(185, 210, 200);
22
- display: block;
23
- }
24
- span.marked1 {
25
- background-color: rgb(190, 215, 205);
26
- display: block;
27
- }
28
- span.inferred0 {
29
- background-color: rgb(255, 255, 240);
30
- display: block;
31
- }
32
- span.inferred1 {
33
- background-color: rgb(255, 255, 240);
34
- display: block;
35
- }
36
- span.uncovered0 {
37
- background-color: rgb(225, 110, 110);
38
- display: block;
39
- }
40
- span.uncovered1 {
41
- background-color: rgb(235, 120, 120);
42
- display: block;
43
- }
44
- span.overview {
45
- border-bottom: 8px solid black;
46
- }
47
- div.overview {
48
- border-bottom: 8px solid black;
49
- }
50
- body {
51
- font-family: verdana, arial, helvetica;
52
- }
53
- div.footer {
54
- font-size: 68%;
55
- margin-top: 1.5em;
56
- }
57
- h1, h2, h3, h4, h5, h6 {
58
- margin-bottom: 0.5em;
59
- }
60
- h5 {
61
- margin-top: 0.5em;
62
- }
63
- .hidden {
64
- display: none;
65
- }
66
- div.separator {
67
- height: 10px;
68
- }
69
- /* Commented out for better readability, esp. on IE */
70
- /*
71
- table tr td, table tr th {
72
- font-size: 68%;
73
- }
74
- td.value table tr td {
75
- font-size: 11px;
76
- }
77
- */
78
- table.percent_graph {
79
- height: 12px;
80
- border: #808080 1px solid;
81
- empty-cells: show;
82
- }
83
- table.percent_graph td.covered {
84
- height: 10px;
85
- background: #00f000;
86
- }
87
- table.percent_graph td.uncovered {
88
- height: 10px;
89
- background: #e00000;
90
- }
91
- table.percent_graph td.NA {
92
- height: 10px;
93
- background: #eaeaea;
94
- }
95
- table.report {
96
- border-collapse: collapse;
97
- width: 100%;
98
- }
99
- table.report td.heading {
100
- background: #dcecff;
101
- border: #d0d0d0 1px solid;
102
- font-weight: bold;
103
- text-align: center;
104
- }
105
- table.report td.heading:hover {
106
- background: #c0ffc0;
107
- }
108
- table.report td.text {
109
- border: #d0d0d0 1px solid;
110
- }
111
- table.report td.value,
112
- table.report td.lines_total,
113
- table.report td.lines_code {
114
- text-align: right;
115
- border: #d0d0d0 1px solid;
116
- }
117
- table.report tr.light {
118
- background-color: rgb(240, 240, 245);
119
- }
120
- table.report tr.dark {
121
- background-color: rgb(230, 230, 235);
122
- }
123
- </style>
124
- <script type='text/javascript'>
125
- // <![CDATA[
126
- function toggleCode( id ) {
127
- if ( document.getElementById )
128
- elem = document.getElementById( id );
129
- else if ( document.all )
130
- elem = eval( "document.all." + id );
131
- else
132
- return false;
133
-
134
- elemStyle = elem.style;
135
-
136
- if ( elemStyle.display != "block" ) {
137
- elemStyle.display = "block"
138
- } else {
139
- elemStyle.display = "none"
140
- }
141
-
142
- return true;
143
- }
144
-
145
- // Make cross-references hidden by default
146
- document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
147
- // ]]>
148
- </script>
149
- <style type='text/css'>span.run0 {
150
- background-color: rgb(178, 204, 255);
151
- display: block;
152
- }
153
- span.run1 {
154
- background-color: rgb(178, 206, 255);
155
- display: block;
156
- }
157
- span.run2 {
158
- background-color: rgb(178, 209, 255);
159
- display: block;
160
- }
161
- span.run3 {
162
- background-color: rgb(178, 211, 255);
163
- display: block;
164
- }
165
- span.run4 {
166
- background-color: rgb(178, 214, 255);
167
- display: block;
168
- }
169
- span.run5 {
170
- background-color: rgb(178, 218, 255);
171
- display: block;
172
- }
173
- span.run6 {
174
- background-color: rgb(178, 220, 255);
175
- display: block;
176
- }
177
- span.run7 {
178
- background-color: rgb(178, 223, 255);
179
- display: block;
180
- }
181
- span.run8 {
182
- background-color: rgb(178, 225, 255);
183
- display: block;
184
- }
185
- span.run9 {
186
- background-color: rgb(178, 228, 255);
187
- display: block;
188
- }
189
- span.run10 {
190
- background-color: rgb(178, 232, 255);
191
- display: block;
192
- }
193
- span.run11 {
194
- background-color: rgb(178, 234, 255);
195
- display: block;
196
- }
197
- span.run12 {
198
- background-color: rgb(178, 237, 255);
199
- display: block;
200
- }
201
- span.run13 {
202
- background-color: rgb(178, 239, 255);
203
- display: block;
204
- }
205
- span.run14 {
206
- background-color: rgb(178, 242, 255);
207
- display: block;
208
- }
209
- span.run15 {
210
- background-color: rgb(178, 246, 255);
211
- display: block;
212
- }
213
- span.run16 {
214
- background-color: rgb(178, 248, 255);
215
- display: block;
216
- }
217
- span.run17 {
218
- background-color: rgb(178, 251, 255);
219
- display: block;
220
- }
221
- span.run18 {
222
- background-color: rgb(178, 253, 255);
223
- display: block;
224
- }
225
- span.run19 {
226
- background-color: rgb(178, 255, 253);
227
- display: block;
228
- }
229
- span.run20 {
230
- background-color: rgb(178, 255, 249);
231
- display: block;
232
- }
233
- span.run21 {
234
- background-color: rgb(178, 255, 247);
235
- display: block;
236
- }
237
- span.run22 {
238
- background-color: rgb(178, 255, 244);
239
- display: block;
240
- }
241
- span.run23 {
242
- background-color: rgb(178, 255, 242);
243
- display: block;
244
- }
245
- span.run24 {
246
- background-color: rgb(178, 255, 239);
247
- display: block;
248
- }
249
- span.run25 {
250
- background-color: rgb(178, 255, 235);
251
- display: block;
252
- }
253
- span.run26 {
254
- background-color: rgb(178, 255, 233);
255
- display: block;
256
- }
257
- span.run27 {
258
- background-color: rgb(178, 255, 230);
259
- display: block;
260
- }
261
- span.run28 {
262
- background-color: rgb(178, 255, 228);
263
- display: block;
264
- }
265
- span.run29 {
266
- background-color: rgb(178, 255, 225);
267
- display: block;
268
- }
269
- span.run30 {
270
- background-color: rgb(178, 255, 221);
271
- display: block;
272
- }
273
- span.run31 {
274
- background-color: rgb(178, 255, 219);
275
- display: block;
276
- }
277
- span.run32 {
278
- background-color: rgb(178, 255, 216);
279
- display: block;
280
- }
281
- span.run33 {
282
- background-color: rgb(178, 255, 214);
283
- display: block;
284
- }
285
- span.run34 {
286
- background-color: rgb(178, 255, 211);
287
- display: block;
288
- }
289
- span.run35 {
290
- background-color: rgb(178, 255, 207);
291
- display: block;
292
- }
293
- span.run36 {
294
- background-color: rgb(178, 255, 205);
295
- display: block;
296
- }
297
- span.run37 {
298
- background-color: rgb(178, 255, 202);
299
- display: block;
300
- }
301
- span.run38 {
302
- background-color: rgb(178, 255, 200);
303
- display: block;
304
- }
305
- span.run39 {
306
- background-color: rgb(178, 255, 197);
307
- display: block;
308
- }
309
- span.run40 {
310
- background-color: rgb(178, 255, 193);
311
- display: block;
312
- }
313
- span.run41 {
314
- background-color: rgb(178, 255, 191);
315
- display: block;
316
- }
317
- span.run42 {
318
- background-color: rgb(178, 255, 188);
319
- display: block;
320
- }
321
- span.run43 {
322
- background-color: rgb(178, 255, 186);
323
- display: block;
324
- }
325
- span.run44 {
326
- background-color: rgb(178, 255, 183);
327
- display: block;
328
- }
329
- span.run45 {
330
- background-color: rgb(178, 255, 179);
331
- display: block;
332
- }
333
- span.run46 {
334
- background-color: rgb(179, 255, 178);
335
- display: block;
336
- }
337
- span.run47 {
338
- background-color: rgb(182, 255, 178);
339
- display: block;
340
- }
341
- span.run48 {
342
- background-color: rgb(184, 255, 178);
343
- display: block;
344
- }
345
- span.run49 {
346
- background-color: rgb(187, 255, 178);
347
- display: block;
348
- }
349
- span.run50 {
350
- background-color: rgb(191, 255, 178);
351
- display: block;
352
- }
353
- span.run51 {
354
- background-color: rgb(193, 255, 178);
355
- display: block;
356
- }
357
- span.run52 {
358
- background-color: rgb(196, 255, 178);
359
- display: block;
360
- }
361
- span.run53 {
362
- background-color: rgb(198, 255, 178);
363
- display: block;
364
- }
365
- span.run54 {
366
- background-color: rgb(201, 255, 178);
367
- display: block;
368
- }
369
- span.run55 {
370
- background-color: rgb(205, 255, 178);
371
- display: block;
372
- }
373
- span.run56 {
374
- background-color: rgb(207, 255, 178);
375
- display: block;
376
- }
377
- span.run57 {
378
- background-color: rgb(210, 255, 178);
379
- display: block;
380
- }
381
- span.run58 {
382
- background-color: rgb(212, 255, 178);
383
- display: block;
384
- }
385
- span.run59 {
386
- background-color: rgb(215, 255, 178);
387
- display: block;
388
- }
389
- span.run60 {
390
- background-color: rgb(219, 255, 178);
391
- display: block;
392
- }
393
- span.run61 {
394
- background-color: rgb(221, 255, 178);
395
- display: block;
396
- }
397
- span.run62 {
398
- background-color: rgb(224, 255, 178);
399
- display: block;
400
- }
401
- span.run63 {
402
- background-color: rgb(226, 255, 178);
403
- display: block;
404
- }
405
- span.run64 {
406
- background-color: rgb(229, 255, 178);
407
- display: block;
408
- }
409
- span.run65 {
410
- background-color: rgb(233, 255, 178);
411
- display: block;
412
- }
413
- span.run66 {
414
- background-color: rgb(235, 255, 178);
415
- display: block;
416
- }
417
- span.run67 {
418
- background-color: rgb(238, 255, 178);
419
- display: block;
420
- }
421
- span.run68 {
422
- background-color: rgb(240, 255, 178);
423
- display: block;
424
- }
425
- span.run69 {
426
- background-color: rgb(243, 255, 178);
427
- display: block;
428
- }
429
- span.run70 {
430
- background-color: rgb(247, 255, 178);
431
- display: block;
432
- }
433
- span.run71 {
434
- background-color: rgb(249, 255, 178);
435
- display: block;
436
- }
437
- span.run72 {
438
- background-color: rgb(252, 255, 178);
439
- display: block;
440
- }
441
- span.run73 {
442
- background-color: rgb(255, 255, 178);
443
- display: block;
444
- }
445
- span.run74 {
446
- background-color: rgb(255, 252, 178);
447
- display: block;
448
- }
449
- span.run75 {
450
- background-color: rgb(255, 248, 178);
451
- display: block;
452
- }
453
- span.run76 {
454
- background-color: rgb(255, 246, 178);
455
- display: block;
456
- }
457
- span.run77 {
458
- background-color: rgb(255, 243, 178);
459
- display: block;
460
- }
461
- span.run78 {
462
- background-color: rgb(255, 240, 178);
463
- display: block;
464
- }
465
- span.run79 {
466
- background-color: rgb(255, 238, 178);
467
- display: block;
468
- }
469
- span.run80 {
470
- background-color: rgb(255, 234, 178);
471
- display: block;
472
- }
473
- span.run81 {
474
- background-color: rgb(255, 232, 178);
475
- display: block;
476
- }
477
- span.run82 {
478
- background-color: rgb(255, 229, 178);
479
- display: block;
480
- }
481
- span.run83 {
482
- background-color: rgb(255, 226, 178);
483
- display: block;
484
- }
485
- span.run84 {
486
- background-color: rgb(255, 224, 178);
487
- display: block;
488
- }
489
- span.run85 {
490
- background-color: rgb(255, 220, 178);
491
- display: block;
492
- }
493
- span.run86 {
494
- background-color: rgb(255, 218, 178);
495
- display: block;
496
- }
497
- span.run87 {
498
- background-color: rgb(255, 215, 178);
499
- display: block;
500
- }
501
- span.run88 {
502
- background-color: rgb(255, 212, 178);
503
- display: block;
504
- }
505
- span.run89 {
506
- background-color: rgb(255, 210, 178);
507
- display: block;
508
- }
509
- span.run90 {
510
- background-color: rgb(255, 206, 178);
511
- display: block;
512
- }
513
- span.run91 {
514
- background-color: rgb(255, 204, 178);
515
- display: block;
516
- }
517
- span.run92 {
518
- background-color: rgb(255, 201, 178);
519
- display: block;
520
- }
521
- span.run93 {
522
- background-color: rgb(255, 198, 178);
523
- display: block;
524
- }
525
- span.run94 {
526
- background-color: rgb(255, 196, 178);
527
- display: block;
528
- }
529
- span.run95 {
530
- background-color: rgb(255, 192, 178);
531
- display: block;
532
- }
533
- span.run96 {
534
- background-color: rgb(255, 189, 178);
535
- display: block;
536
- }
537
- span.run97 {
538
- background-color: rgb(255, 187, 178);
539
- display: block;
540
- }
541
- span.run98 {
542
- background-color: rgb(255, 184, 178);
543
- display: block;
544
- }
545
- span.run99 {
546
- background-color: rgb(255, 182, 178);
547
- display: block;
548
- }
549
- span.run100 {
550
- background-color: rgb(255, 178, 178);
551
- display: block;
552
- }
553
- </style>
554
- </head>
555
- <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Dec 16 16:57:16 -0200 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.3</a>
557
- </p>
558
- <hr/>
559
- <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
560
- </span><span class='marked1'>and this: this line is also marked as covered.
561
- </span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
562
- </span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
563
- </span><span class='uncovered0'>Finally, here&apos;s a line marked as not executed.
564
- </span></pre>
565
- <table class='report'><thead><tr><td class='heading'>Name</td>
566
- <td class='heading'>Total lines</td>
567
- <td class='heading'>Lines of code</td>
568
- <td class='heading'>Total coverage</td>
569
- <td class='heading'>Code coverage</td>
570
- </tr>
571
- </thead>
572
- <tbody><tr class='light'><td><a href='lib-friendly_id-sluggable_instance_methods_rb.html'>lib/friendly_id/sluggable_instance_methods.rb</a>
573
- </td>
574
- <td class='lines_total'><tt>105</tt>
575
- </td>
576
- <td class='lines_code'><tt>74</tt>
577
- </td>
578
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
579
- &nbsp;</td>
580
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
581
- <td class='uncovered' width='0'/>
582
- </tr>
583
- </table>
584
- </td>
585
- </tr>
586
- </table>
587
- </td>
588
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
589
- &nbsp;</td>
590
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
591
- <td class='uncovered' width='0'/>
592
- </tr>
593
- </table>
594
- </td>
595
- </tr>
596
- </table>
597
- </td>
598
- </tr>
599
- </tbody>
600
- </table>
601
- <pre><span class="marked1"><a name="line1"></a> 1 module FriendlyId::SluggableInstanceMethods
602
- </span><span class="inferred0"><a name="line2"></a> 2
603
- </span><span class="marked1"><a name="line3"></a> 3 NUM_CHARS_RESERVED_FOR_FRIENDLY_ID_EXTENSION = 2
604
- </span><span class="inferred0"><a name="line4"></a> 4
605
- </span><span class="marked1"><a name="line5"></a> 5 attr :finder_slug
606
- </span><span class="marked0"><a name="line6"></a> 6 attr_accessor :finder_slug_name
607
- </span><span class="inferred1"><a name="line7"></a> 7
608
- </span><span class="marked0"><a name="line8"></a> 8 def finder_slug
609
- </span><span class="marked1"><a name="line9"></a> 9 @finder_slug ||= init_finder_slug
610
- </span><span class="marked0"><a name="line10"></a> 10 end
611
- </span><span class="inferred1"><a name="line11"></a> 11
612
- </span><span class="inferred0"><a name="line12"></a> 12 # Was the record found using one of its friendly ids?
613
- </span><span class="marked1"><a name="line13"></a> 13 def found_using_friendly_id?
614
- </span><span class="marked0"><a name="line14"></a> 14 finder_slug
615
- </span><span class="marked1"><a name="line15"></a> 15 end
616
- </span><span class="inferred0"><a name="line16"></a> 16
617
- </span><span class="inferred1"><a name="line17"></a> 17 # Was the record found using its numeric id?
618
- </span><span class="marked0"><a name="line18"></a> 18 def found_using_numeric_id?
619
- </span><span class="marked1"><a name="line19"></a> 19 !found_using_friendly_id?
620
- </span><span class="marked0"><a name="line20"></a> 20 end
621
- </span><span class="inferred1"><a name="line21"></a> 21
622
- </span><span class="inferred0"><a name="line22"></a> 22 # Was the record found using an old friendly id?
623
- </span><span class="marked1"><a name="line23"></a> 23 def found_using_outdated_friendly_id?
624
- </span><span class="marked0"><a name="line24"></a> 24 finder_slug.id != slug.id
625
- </span><span class="marked1"><a name="line25"></a> 25 end
626
- </span><span class="inferred0"><a name="line26"></a> 26
627
- </span><span class="inferred1"><a name="line27"></a> 27 # Was the record found using an old friendly id, or its numeric id?
628
- </span><span class="marked0"><a name="line28"></a> 28 def has_better_id?
629
- </span><span class="marked1"><a name="line29"></a> 29 slug and found_using_numeric_id? || found_using_outdated_friendly_id?
630
- </span><span class="marked0"><a name="line30"></a> 30 end
631
- </span><span class="inferred1"><a name="line31"></a> 31
632
- </span><span class="inferred0"><a name="line32"></a> 32 # Returns the friendly id.
633
- </span><span class="marked1"><a name="line33"></a> 33 def friendly_id
634
- </span><span class="marked0"><a name="line34"></a> 34 slug(true).to_friendly_id
635
- </span><span class="marked1"><a name="line35"></a> 35 end
636
- </span><span class="marked0"><a name="line36"></a> 36 alias best_id friendly_id
637
- </span><span class="inferred1"><a name="line37"></a> 37
638
- </span><span class="inferred0"><a name="line38"></a> 38 # Has the basis of our friendly id changed, requiring the generation of a
639
- </span><span class="inferred1"><a name="line39"></a> 39 # new slug?
640
- </span><span class="marked0"><a name="line40"></a> 40 def new_slug_needed?
641
- </span><span class="marked1"><a name="line41"></a> 41 !slug || slug_text != slug.name
642
- </span><span class="marked0"><a name="line42"></a> 42 end
643
- </span><span class="inferred1"><a name="line43"></a> 43
644
- </span><span class="inferred0"><a name="line44"></a> 44 # Returns the most recent slug, which is used to determine the friendly
645
- </span><span class="inferred1"><a name="line45"></a> 45 # id.
646
- </span><span class="marked0"><a name="line46"></a> 46 def slug(reload = false)
647
- </span><span class="marked1"><a name="line47"></a> 47 @most_recent_slug = nil if reload
648
- </span><span class="marked0"><a name="line48"></a> 48 @most_recent_slug ||= slugs.first
649
- </span><span class="inferred1"><a name="line49"></a> 49 end
650
- </span><span class="inferred0"><a name="line50"></a> 50
651
- </span><span class="inferred1"><a name="line51"></a> 51 # Returns the friendly id, or if none is available, the numeric id.
652
- </span><span class="marked0"><a name="line52"></a> 52 def to_param
653
- </span><span class="marked1"><a name="line53"></a> 53 slug ? slug.to_friendly_id : id.to_s
654
- </span><span class="marked0"><a name="line54"></a> 54 end
655
- </span><span class="inferred1"><a name="line55"></a> 55
656
- </span><span class="inferred0"><a name="line56"></a> 56 # Set the slug using the generated friendly id.
657
- </span><span class="marked1"><a name="line57"></a> 57 def set_slug
658
- </span><span class="marked0"><a name="line58"></a> 58 if self.class.friendly_id_options[:use_slug] &amp;&amp; new_slug_needed?
659
- </span><span class="marked1"><a name="line59"></a> 59 @most_recent_slug = nil
660
- </span><span class="marked0"><a name="line60"></a> 60 slug_attributes = {:name =&gt; slug_text}
661
- </span><span class="marked1"><a name="line61"></a> 61 if friendly_id_options[:scope]
662
- </span><span class="marked0"><a name="line62"></a> 62 scope = send(friendly_id_options[:scope])
663
- </span><span class="marked1"><a name="line63"></a> 63 slug_attributes[:scope] = scope.respond_to?(:to_param) ? scope.to_param : scope.to_s
664
- </span><span class="inferred0"><a name="line64"></a> 64 end
665
- </span><span class="inferred1"><a name="line65"></a> 65 # If we're renaming back to a previously used friendly_id, delete the
666
- </span><span class="inferred0"><a name="line66"></a> 66 # slug so that we can recycle the name without having to use a sequence.
667
- </span><span class="marked1"><a name="line67"></a> 67 slugs.find(:all, :conditions =&gt; {:name =&gt; slug_text, :scope =&gt; scope}).each { |s| s.destroy }
668
- </span><span class="marked0"><a name="line68"></a> 68 s = slugs.build slug_attributes
669
- </span><span class="marked1"><a name="line69"></a> 69 s.send(:set_sequence)
670
- </span><span class="inferred0"><a name="line70"></a> 70 end
671
- </span><span class="marked1"><a name="line71"></a> 71 end
672
- </span><span class="inferred0"><a name="line72"></a> 72
673
- </span><span class="inferred1"><a name="line73"></a> 73 # Get the processed string used as the basis of the friendly id.
674
- </span><span class="marked0"><a name="line74"></a> 74 def slug_text
675
- </span><span class="marked1"><a name="line75"></a> 75 base = send friendly_id_options[:column]
676
- </span><span class="marked0"><a name="line76"></a> 76 if self.friendly_id_options[:strip_diacritics]
677
- </span><span class="marked1"><a name="line77"></a> 77 base = Slug::normalize(Slug::strip_diacritics(base))
678
- </span><span class="inferred0"><a name="line78"></a> 78 else
679
- </span><span class="marked1"><a name="line79"></a> 79 base = Slug::normalize(base)
680
- </span><span class="inferred0"><a name="line80"></a> 80 end
681
- </span><span class="marked1"><a name="line81"></a> 81 if base.length &gt; friendly_id_options[:max_length]
682
- </span><span class="marked0"><a name="line82"></a> 82 base = base[0...friendly_id_options[:max_length]]
683
- </span><span class="inferred1"><a name="line83"></a> 83 end
684
- </span><span class="marked0"><a name="line84"></a> 84 if friendly_id_options[:reserved].include?(base)
685
- </span><span class="marked1"><a name="line85"></a> 85 raise FriendlyId::SlugGenerationError.new(&quot;The slug text is a reserved value&quot;)
686
- </span><span class="inferred0"><a name="line86"></a> 86 end
687
- </span><span class="marked1"><a name="line87"></a> 87 return base
688
- </span><span class="inferred0"><a name="line88"></a> 88 end
689
- </span><span class="inferred1"><a name="line89"></a> 89
690
- </span><span class="marked0"><a name="line90"></a> 90 private
691
- </span><span class="inferred1"><a name="line91"></a> 91
692
- </span><span class="marked0"><a name="line92"></a> 92 def finder_slug=(finder_slug)
693
- </span><span class="marked1"><a name="line93"></a> 93 @finder_slug_name = finder_slug.name
694
- </span><span class="marked0"><a name="line94"></a> 94 slug = finder_slug
695
- </span><span class="marked1"><a name="line95"></a> 95 slug.sluggable = self
696
- </span><span class="marked0"><a name="line96"></a> 96 slug
697
- </span><span class="inferred1"><a name="line97"></a> 97 end
698
- </span><span class="inferred0"><a name="line98"></a> 98
699
- </span><span class="marked1"><a name="line99"></a> 99 def init_finder_slug
700
- </span><span class="marked0"><a name="line100"></a>100 return false if !@finder_slug_name
701
- </span><span class="marked1"><a name="line101"></a>101 slug = Slug.find(:first, :conditions =&gt; {:sluggable_id =&gt; id, :name =&gt; @finder_slug_name})
702
- </span><span class="marked0"><a name="line102"></a>102 finder_slug = slug
703
- </span><span class="inferred1"><a name="line103"></a>103 end
704
- </span><span class="inferred0"><a name="line104"></a>104
705
- </span><span class="inferred1"><a name="line105"></a>105 end
706
- </span></pre><hr/>
707
- <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
708
- version 0.8.1.3.</p>
709
- </body>
710
- </html>