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,695 +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/slug.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-slug_rb.html'>lib/slug.rb</a>
573
- </td>
574
- <td class='lines_total'><tt>90</tt>
575
- </td>
576
- <td class='lines_code'><tt>54</tt>
577
- </td>
578
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>95.6%</tt>
579
- &nbsp;</td>
580
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='96'/>
581
- <td class='uncovered' width='4'/>
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'>92.6%</tt>
589
- &nbsp;</td>
590
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='93'/>
591
- <td class='uncovered' width='7'/>
592
- </tr>
593
- </table>
594
- </td>
595
- </tr>
596
- </table>
597
- </td>
598
- </tr>
599
- </tbody>
600
- </table>
601
- <pre><span class="inferred1"><a name="line1"></a> 1 # A Slug is a unique, human-friendly identifier for an ActiveRecord.
602
- </span><span class="marked0"><a name="line2"></a> 2 class Slug &lt; ActiveRecord::Base
603
- </span><span class="inferred1"><a name="line3"></a> 3
604
- </span><span class="marked0"><a name="line4"></a> 4 belongs_to :sluggable, :polymorphic =&gt; true
605
- </span><span class="marked1"><a name="line5"></a> 5 validates_uniqueness_of :name, :scope =&gt; [:sluggable_type, :scope, :sequence]
606
- </span><span class="marked0"><a name="line6"></a> 6 before_create :set_sequence
607
- </span><span class="marked1"><a name="line7"></a> 7 before_save :check_for_blank_name
608
- </span><span class="inferred0"><a name="line8"></a> 8
609
- </span><span class="marked1"><a name="line9"></a> 9 class &lt;&lt; self
610
- </span><span class="inferred0"><a name="line10"></a>10
611
- </span><span class="inferred1"><a name="line11"></a>11 # Sanitizes and dasherizes string to make it safe for URL's.
612
- </span><span class="inferred0"><a name="line12"></a>12 #
613
- </span><span class="inferred1"><a name="line13"></a>13 # Example:
614
- </span><span class="inferred0"><a name="line14"></a>14 #
615
- </span><span class="inferred1"><a name="line15"></a>15 # slug.normalize('This... is an example!') # =&gt; &quot;this-is-an-example&quot;
616
- </span><span class="inferred0"><a name="line16"></a>16 #
617
- </span><span class="inferred1"><a name="line17"></a>17 # Note that Rails 2.2.x offers a parameterize method for this. It's not
618
- </span><span class="inferred0"><a name="line18"></a>18 # used here because it assumes you want to strip away accented characters,
619
- </span><span class="inferred1"><a name="line19"></a>19 # and this may not always be your desire.
620
- </span><span class="inferred0"><a name="line20"></a>20 #
621
- </span><span class="inferred1"><a name="line21"></a>21 # At the time of writing, it also handles several characters incorrectly,
622
- </span><span class="inferred0"><a name="line22"></a>22 # for instance replacing Icelandic's &quot;thorn&quot; character with &quot;y&quot; rather
623
- </span><span class="inferred1"><a name="line23"></a>23 # than &quot;d.&quot; This might be pedantic, but I don't want to piss off the
624
- </span><span class="inferred0"><a name="line24"></a>24 # Vikings. The last time anyone pissed them off, they uleashed a wave of
625
- </span><span class="inferred1"><a name="line25"></a>25 # terror in Europe unlike anything ever seen before or after. I'm not
626
- </span><span class="inferred0"><a name="line26"></a>26 # taking any chances.
627
- </span><span class="marked1"><a name="line27"></a>27 def normalize(slug_text)
628
- </span><span class="marked0"><a name="line28"></a>28 return &quot;&quot; if slug_text.blank?
629
- </span><span class="marked1"><a name="line29"></a>29 slug_text.
630
- </span><span class="marked0"><a name="line30"></a>30 send(chars_func).
631
- </span><span class="inferred1"><a name="line31"></a>31 # For some reason Spanish ¡ and ¿ are not detected as non-word
632
- </span><span class="inferred0"><a name="line32"></a>32 # characters. Bug in Ruby?
633
- </span><span class="inferred1"><a name="line33"></a>33 normalize.gsub(/[\W|¡|¿]/u, ' ').
634
- </span><span class="inferred0"><a name="line34"></a>34 strip.
635
- </span><span class="inferred1"><a name="line35"></a>35 gsub(/\s+/u, '-').
636
- </span><span class="inferred0"><a name="line36"></a>36 gsub(/-\z/u, '').
637
- </span><span class="inferred1"><a name="line37"></a>37 downcase.
638
- </span><span class="inferred0"><a name="line38"></a>38 to_s
639
- </span><span class="inferred1"><a name="line39"></a>39 end
640
- </span><span class="inferred0"><a name="line40"></a>40
641
- </span><span class="marked1"><a name="line41"></a>41 def parse(friendly_id)
642
- </span><span class="marked0"><a name="line42"></a>42 name, sequence = friendly_id.split(/--/)
643
- </span><span class="marked1"><a name="line43"></a>43 sequence ||= &quot;1&quot;
644
- </span><span class="marked0"><a name="line44"></a>44 return name, sequence
645
- </span><span class="inferred1"><a name="line45"></a>45 end
646
- </span><span class="inferred0"><a name="line46"></a>46
647
- </span><span class="inferred1"><a name="line47"></a>47 # Remove diacritics (accents, umlauts, etc.) from the string.
648
- </span><span class="marked0"><a name="line48"></a>48 def strip_diacritics(string)
649
- </span><span class="marked1"><a name="line49"></a>49 require 'unicode'
650
- </span><span class="marked0"><a name="line50"></a>50 Unicode::normalize_KD(string).unpack('U*').select { |cp|
651
- </span><span class="marked1"><a name="line51"></a>51 cp &lt; 0x300 || cp &gt; 0x036F
652
- </span><span class="uncovered0"><a name="line52"></a>52 }.pack('U*')
653
- </span><span class="uncovered1"><a name="line53"></a>53 end
654
- </span><span class="inferred0"><a name="line54"></a>54
655
- </span><span class="marked1"><a name="line55"></a>55 private
656
- </span><span class="inferred0"><a name="line56"></a>56
657
- </span><span class="marked1"><a name="line57"></a>57 def chars_func
658
- </span><span class="marked0"><a name="line58"></a>58 Rails.version =~ /2.2.[\d]*/ ? :mb_chars : :chars
659
- </span><span class="uncovered1"><a name="line59"></a>59 rescue NoMethodError
660
- </span><span class="uncovered0"><a name="line60"></a>60 :chars
661
- </span><span class="marked1"><a name="line61"></a>61 end
662
- </span><span class="inferred0"><a name="line62"></a>62
663
- </span><span class="inferred1"><a name="line63"></a>63 end
664
- </span><span class="inferred0"><a name="line64"></a>64
665
- </span><span class="inferred1"><a name="line65"></a>65 # Whether or not this slug is the most recent of its owner's slugs.
666
- </span><span class="marked0"><a name="line66"></a>66 def is_most_recent?
667
- </span><span class="marked1"><a name="line67"></a>67 sluggable.slug == self
668
- </span><span class="marked0"><a name="line68"></a>68 end
669
- </span><span class="inferred1"><a name="line69"></a>69
670
- </span><span class="marked0"><a name="line70"></a>70 def to_friendly_id
671
- </span><span class="marked1"><a name="line71"></a>71 sequence &gt; 1 ? &quot;#{name}--#{sequence}&quot; : name
672
- </span><span class="marked0"><a name="line72"></a>72 end
673
- </span><span class="inferred1"><a name="line73"></a>73
674
- </span><span class="marked0"><a name="line74"></a>74 protected
675
- </span><span class="inferred1"><a name="line75"></a>75
676
- </span><span class="inferred0"><a name="line76"></a>76 # Raise a FriendlyId::SlugGenerationError if the slug name is blank.
677
- </span><span class="marked1"><a name="line77"></a>77 def check_for_blank_name #:nodoc:#
678
- </span><span class="marked0"><a name="line78"></a>78 if name.blank?
679
- </span><span class="marked1"><a name="line79"></a>79 raise FriendlyId::SlugGenerationError.new(&quot;The slug text is blank.&quot;)
680
- </span><span class="inferred0"><a name="line80"></a>80 end
681
- </span><span class="marked1"><a name="line81"></a>81 end
682
- </span><span class="inferred0"><a name="line82"></a>82
683
- </span><span class="marked1"><a name="line83"></a>83 def set_sequence
684
- </span><span class="marked0"><a name="line84"></a>84 last = Slug.find(:first, :conditions =&gt; { :name =&gt; name, :scope =&gt; scope,
685
- </span><span class="marked1"><a name="line85"></a>85 :sluggable_type =&gt; sluggable_type}, :order =&gt; &quot;sequence DESC&quot;,
686
- </span><span class="inferred0"><a name="line86"></a>86 :select =&gt; 'sequence')
687
- </span><span class="marked1"><a name="line87"></a>87 self.sequence = last.sequence + 1 if last
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 end
691
- </span></pre><hr/>
692
- <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
693
- version 0.8.1.3.</p>
694
- </body>
695
- </html>