friendly_id 2.3.2 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog.md CHANGED
@@ -6,6 +6,12 @@ suggestions, ideas and improvements to FriendlyId.
6
6
  * Table of Contents
7
7
  {:toc}
8
8
 
9
+ ## 2.3.3 (2010-03-10)
10
+
11
+ * Fixed sequence regexp to grab all trailing digits. (Nash Kabbara)
12
+ * Block param now warns, not raises. (Kamal Fariz Mahyuddin)
13
+ * Misc doc fixes. (Kamal Fariz Mahyuddin)
14
+
9
15
  ## 2.3.2 (2010-02-14)
10
16
 
11
17
  * Fixed finding by old slug when using cached slugs.
data/lib/friendly_id.rb CHANGED
@@ -61,7 +61,7 @@ end
61
61
  class String
62
62
  def parse_friendly_id(separator = nil)
63
63
  separator ||= FriendlyId::Configuration::DEFAULTS[:sequence_separator]
64
- name, sequence = split(/#{Regexp.escape(separator)}(\d)*\z/)
64
+ name, sequence = split(/#{Regexp.escape(separator)}(\d+)*\z/)
65
65
  return name, sequence ||= "1"
66
66
  end
67
67
  end
@@ -87,7 +87,7 @@ module FriendlyId
87
87
 
88
88
  def normalizer=(arg)
89
89
  return if arg.nil?
90
- raise("passing a block to has_friendly_id is deprecated and will be removed from 3.0. Please override #friendly_id_normalizer.")
90
+ warn("passing a block to has_friendly_id is deprecated and will be removed from 3.0. Please override #normalize_friendly_id.")
91
91
  @normalizer = arg
92
92
  end
93
93
 
@@ -257,7 +257,7 @@ module FriendlyId
257
257
  # Replaces whitespace with dashes ("-").
258
258
  # @return String
259
259
  def with_dashes!
260
- @wrapped_string = @wrapped_string.gsub(/\s+/u, '-')
260
+ @wrapped_string = @wrapped_string.gsub(/[\s\-]+/u, '-')
261
261
  end
262
262
 
263
263
  %w[approximate_ascii clean downcase word_chars normalize normalize_for to_ascii
@@ -2,7 +2,7 @@ module FriendlyId
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 3
5
- TINY = 2
5
+ TINY = 3
6
6
  STRING = [MAJOR, MINOR, TINY].join('.')
7
7
  end
8
8
  end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ module FriendlyId
4
+ module Test
5
+ module ActiveRecord2
6
+
7
+ class DeprecatedTest < ::Test::Unit::TestCase
8
+
9
+ include FriendlyId::Test::Generic
10
+ include FriendlyId::Test::Slugged
11
+ include FriendlyId::Test::ActiveRecord2::Slugged
12
+ include FriendlyId::Test::ActiveRecord2::Core
13
+
14
+ def klass
15
+ Block
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+
@@ -65,6 +65,11 @@ class CreateSupportModels < ActiveRecord::Migration
65
65
  t.index :name, :unique => true
66
66
  end
67
67
 
68
+ create_table :blocks do |t|
69
+ t.string :name
70
+ t.string :note
71
+ end
72
+
68
73
  end
69
74
 
70
75
  def self.down
@@ -104,4 +104,11 @@ end
104
104
  # A model with no table
105
105
  class Question < ActiveRecord::Base
106
106
  has_friendly_id :name, :use_slug => true
107
- end
107
+ end
108
+
109
+ # A model using the deprecated block syntax
110
+ class Block < ActiveRecord::Base
111
+ has_friendly_id :name, :use_slug => true do |text|
112
+ FriendlyId::SlugString.new(text).clean.with_dashes
113
+ end
114
+ end
@@ -10,6 +10,18 @@ module FriendlyId
10
10
  assert_equal ["test", "2"], "test--2".parse_friendly_id
11
11
  end
12
12
 
13
+ test "should parse a friendly_id name and 10 as a sequence" do
14
+ assert_equal ["test", "10"], "test--10".parse_friendly_id
15
+ end
16
+
17
+ test "should parse a friendly_id name and 11 as a sequence" do
18
+ assert_equal ["test", "11"], "test--11".parse_friendly_id
19
+ end
20
+
21
+ test "should parse a friendly_id name and 29 as a sequence" do
22
+ assert_equal ["test", "29"], "test--29".parse_friendly_id
23
+ end
24
+
13
25
  test "should parse with a default sequence of 1" do
14
26
  assert_equal ["test", "1"], "test".parse_friendly_id
15
27
  end
@@ -18,6 +30,10 @@ module FriendlyId
18
30
  assert_equal ["test", "2"], "test:2".parse_friendly_id(":")
19
31
  end
20
32
 
33
+ test "should be parseable with a custom separator and a double digit sequence" do
34
+ assert_equal ["test", "12"], "test:12".parse_friendly_id(":")
35
+ end
36
+
21
37
  test "should parse when default sequence separator occurs in friendly_id name" do
22
38
  assert_equal ["test--test", "2"], "test--test--2".parse_friendly_id
23
39
  end
@@ -34,6 +50,11 @@ module FriendlyId
34
50
  assert_equal ["test--2--test", "2"], "test--2--test--2".parse_friendly_id
35
51
  end
36
52
 
53
+ test "should parse when double digit sequence separator, number and sequence occur in friendly_id name" do
54
+ assert_equal ["test--2--test", "12"], "test--2--test--12".parse_friendly_id
55
+ end
56
+
57
+
37
58
  end
38
59
  end
39
60
  end
@@ -37,6 +37,10 @@ module FriendlyId
37
37
  assert_equal "a-b", SlugString.new("a b").clean.with_dashes
38
38
  end
39
39
 
40
+ test "should replace multiple dashes with 1 dash" do
41
+ assert_equal "male-female", SlugString.new("male - female").with_dashes
42
+ end
43
+
40
44
  test "should strip trailing space" do
41
45
  assert_equal "ab", SlugString.new("ab ").clean
42
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friendly_id
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Norman Clarke
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2010-02-14 00:00:00 -08:00
14
+ date: 2010-03-10 00:00:00 -03:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -46,57 +46,58 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
 
48
48
  files:
49
- - lib/friendly_id/active_record2/configuration.rb
50
- - lib/friendly_id/active_record2/finders.rb
51
- - lib/friendly_id/active_record2/simple_model.rb
52
- - lib/friendly_id/active_record2/slug.rb
53
- - lib/friendly_id/active_record2/slugged_model.rb
54
- - lib/friendly_id/active_record2/tasks.rb
55
- - lib/friendly_id/active_record2.rb
56
- - lib/friendly_id/configuration.rb
49
+ - lib/friendly_id/test.rb
57
50
  - lib/friendly_id/finders.rb
51
+ - lib/friendly_id/configuration.rb
58
52
  - lib/friendly_id/slug_string.rb
59
- - lib/friendly_id/slugged.rb
60
53
  - lib/friendly_id/status.rb
61
- - lib/friendly_id/test.rb
62
54
  - lib/friendly_id/version.rb
55
+ - lib/friendly_id/slugged.rb
56
+ - lib/friendly_id/active_record2.rb
57
+ - lib/friendly_id/active_record2/finders.rb
58
+ - lib/friendly_id/active_record2/configuration.rb
59
+ - lib/friendly_id/active_record2/tasks.rb
60
+ - lib/friendly_id/active_record2/slugged_model.rb
61
+ - lib/friendly_id/active_record2/slug.rb
62
+ - lib/friendly_id/active_record2/simple_model.rb
63
63
  - lib/friendly_id.rb
64
64
  - lib/friendly_id/active_record2/tasks/friendly_id.rake
65
- - Changelog.md
66
- - Contributors.md
67
65
  - Guide.md
68
66
  - README.md
67
+ - Changelog.md
68
+ - Contributors.md
69
69
  - LICENSE
70
70
  - Rakefile
71
71
  - rails/init.rb
72
72
  - generators/friendly_id/friendly_id_generator.rb
73
73
  - generators/friendly_id/templates/create_slugs.rb
74
- - test/active_record2/basic_slugged_model_test.rb
74
+ - test/slug_string_test.rb
75
+ - test/test_helper.rb
76
+ - test/active_record2/deprecated_test.rb
75
77
  - test/active_record2/cached_slug_test.rb
76
- - test/active_record2/core.rb
77
- - test/active_record2/custom_normalizer_test.rb
78
+ - test/active_record2/tasks_test.rb
79
+ - test/active_record2/basic_slugged_model_test.rb
78
80
  - test/active_record2/custom_table_name_test.rb
79
- - test/active_record2/scoped_model_test.rb
80
- - test/active_record2/simple_test.rb
81
- - test/active_record2/slug_test.rb
82
- - test/active_record2/slugged.rb
83
- - test/active_record2/slugged_status_test.rb
84
- - test/active_record2/sti_test.rb
85
- - test/active_record2/support/database.mysql.yml
86
- - test/active_record2/support/database.postgres.yml
87
81
  - test/active_record2/support/database.sqlite3.yml
82
+ - test/active_record2/support/database.mysql.yml
88
83
  - test/active_record2/support/models.rb
89
- - test/active_record2/tasks_test.rb
84
+ - test/active_record2/support/database.postgres.yml
85
+ - test/active_record2/slug_test.rb
86
+ - test/active_record2/scoped_model_test.rb
87
+ - test/active_record2/custom_normalizer_test.rb
88
+ - test/active_record2/slugged.rb
90
89
  - test/active_record2/test_helper.rb
90
+ - test/active_record2/core.rb
91
+ - test/active_record2/sti_test.rb
92
+ - test/active_record2/slugged_status_test.rb
93
+ - test/active_record2/simple_test.rb
91
94
  - test/friendly_id_test.rb
92
- - test/slug_string_test.rb
93
- - test/test_helper.rb
94
- - extras/bench.rb
95
95
  - extras/extras.rb
96
96
  - extras/prof.rb
97
- - extras/README.txt
98
- - extras/template-gem.rb
99
97
  - extras/template-plugin.rb
98
+ - extras/template-gem.rb
99
+ - extras/bench.rb
100
+ - extras/README.txt
100
101
  has_rdoc: true
101
102
  homepage: http://norman.github.com/friendly_id
102
103
  licenses: []
@@ -138,15 +139,16 @@ signing_key:
138
139
  specification_version: 3
139
140
  summary: A comprehensive slugging and pretty-URL plugin.
140
141
  test_files:
141
- - test/active_record2/basic_slugged_model_test.rb
142
+ - test/slug_string_test.rb
143
+ - test/active_record2/deprecated_test.rb
142
144
  - test/active_record2/cached_slug_test.rb
143
- - test/active_record2/custom_normalizer_test.rb
145
+ - test/active_record2/tasks_test.rb
146
+ - test/active_record2/basic_slugged_model_test.rb
144
147
  - test/active_record2/custom_table_name_test.rb
145
- - test/active_record2/scoped_model_test.rb
146
- - test/active_record2/simple_test.rb
147
148
  - test/active_record2/slug_test.rb
148
- - test/active_record2/slugged_status_test.rb
149
+ - test/active_record2/scoped_model_test.rb
150
+ - test/active_record2/custom_normalizer_test.rb
149
151
  - test/active_record2/sti_test.rb
150
- - test/active_record2/tasks_test.rb
152
+ - test/active_record2/slugged_status_test.rb
153
+ - test/active_record2/simple_test.rb
151
154
  - test/friendly_id_test.rb
152
- - test/slug_string_test.rb