permalink 1.2.0 → 2.1.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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.github/FUNDING.yml +3 -0
  3. data/.gitignore +3 -1
  4. data/.rubocop.yml +13 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +3 -1
  7. data/README.md +118 -0
  8. data/Rakefile +14 -4
  9. data/lib/permalink.rb +38 -8
  10. data/lib/permalink/active_record.rb +127 -0
  11. data/lib/permalink/normalizations/contraction.rb +11 -0
  12. data/lib/permalink/normalizations/downcase.rb +11 -0
  13. data/lib/permalink/normalizations/leading_trailing_dashes.rb +11 -0
  14. data/lib/permalink/normalizations/multiple_dashes.rb +11 -0
  15. data/lib/permalink/normalizations/non_alphanumeric.rb +12 -0
  16. data/lib/permalink/normalizations/transliteration.rb +14 -0
  17. data/lib/permalink/version.rb +4 -2
  18. data/permalink.gemspec +15 -13
  19. data/test/permalink/active_record_test.rb +175 -0
  20. data/test/permalink/normalizations_test.rb +48 -0
  21. data/test/permalink/permalink_test.rb +22 -0
  22. data/test/support/post.rb +5 -0
  23. data/test/support/schema.rb +11 -0
  24. data/test/support/user.rb +5 -0
  25. data/test/test_helper.rb +17 -0
  26. metadata +94 -106
  27. data/.rspec +0 -1
  28. data/Gemfile.lock +0 -79
  29. data/README.markdown +0 -79
  30. data/lib/permalink/orm/active_record.rb +0 -26
  31. data/lib/permalink/orm/base.rb +0 -83
  32. data/lib/permalink/orm/mongo_mapper.rb +0 -28
  33. data/lib/permalink/orm/mongoid.rb +0 -24
  34. data/lib/permalink/string_ext.rb +0 -12
  35. data/spec/permalink/active_record_spec.rb +0 -13
  36. data/spec/permalink/mongo_mapper_spec.rb +0 -13
  37. data/spec/permalink/mongoid_spec.rb +0 -13
  38. data/spec/permalink/string_spec.rb +0 -23
  39. data/spec/spec_helper.rb +0 -24
  40. data/spec/support/article.rb +0 -4
  41. data/spec/support/page.rb +0 -5
  42. data/spec/support/post.rb +0 -2
  43. data/spec/support/schema.rb +0 -5
  44. data/spec/support/shared.rb +0 -95
@@ -1,6 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "permalink/version"
1
+ # frozen_string_literal: true
2
+
3
+ require "./lib/permalink/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "permalink"
@@ -9,21 +9,23 @@ Gem::Specification.new do |s|
9
9
  s.authors = ["Nando Vieira"]
10
10
  s.email = ["fnando.vieira@gmail.com"]
11
11
  s.homepage = "http://rubygems.org/gems/permalink"
12
- s.summary = "Generate permalink attributes on ActiveRecord"
12
+ s.summary = "Generate permalink attributes on ActiveModel/ActiveRecord"
13
13
  s.description = s.summary
14
+ s.license = "MIT"
15
+ s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
14
16
 
15
17
  s.files = `git ls-files`.split("\n")
16
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.executables = `git ls-files -- bin/*`
20
+ .split("\n")
21
+ .map {|f| File.basename(f) }
18
22
  s.require_paths = ["lib"]
19
23
 
20
- s.add_development_dependency "activerecord"
21
- s.add_development_dependency "sqlite3-ruby"
22
- s.add_development_dependency "test-unit"
23
- s.add_development_dependency "rspec", "~> 2.7"
24
- s.add_development_dependency "mongoid", "~> 2.3"
25
- s.add_development_dependency "mongo_mapper", "~> 0.9"
26
- s.add_development_dependency "bson_ext"
27
- s.add_development_dependency "pry"
24
+ s.add_dependency "activerecord"
25
+ s.add_development_dependency "minitest-utils"
28
26
  s.add_development_dependency "rake"
27
+ s.add_development_dependency "rubocop"
28
+ s.add_development_dependency "rubocop-fnando"
29
+ s.add_development_dependency "simplecov"
30
+ s.add_development_dependency "sqlite3"
29
31
  end
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class ActiveRecordTest < Minitest::Test
6
+ let(:model) { Post }
7
+
8
+ setup do
9
+ model.delete_all
10
+ model.permalink :title
11
+ end
12
+
13
+ test "responds to options" do
14
+ assert model.respond_to?(:permalink_options)
15
+ end
16
+
17
+ test "uses default options" do
18
+ model.permalink :title
19
+ record = model.create(title: "Some nice post")
20
+ assert_equal "some-nice-post", record.permalink
21
+ end
22
+
23
+ test "uses custom attribute" do
24
+ model.permalink :title, to: :slug
25
+ record = model.create(title: "Some nice post")
26
+ assert_equal "some-nice-post", record.slug
27
+ end
28
+
29
+ test "sets permalink before_save" do
30
+ record = model.new(title: "Some nice post")
31
+ assert_nil record.permalink
32
+ record.valid?
33
+ assert_equal "some-nice-post", record.permalink
34
+ end
35
+
36
+ test "creates unique permalinks" do
37
+ model.permalink :title, unique: true
38
+
39
+ record = model.create(title: "Some nice post")
40
+ assert_equal "some-nice-post", record.permalink
41
+
42
+ record = model.create(title: "Some nice post")
43
+ assert_equal "some-nice-post-2", record.permalink
44
+
45
+ record = model.create(title: "Some nice post")
46
+ assert_equal "some-nice-post-3", record.permalink
47
+ end
48
+
49
+ test "creates unique permalinks with custom separator" do
50
+ model.permalink :title, unique: true, separator: "_"
51
+
52
+ record = model.create(title: "Some nice post")
53
+ assert_equal "some_nice_post", record.permalink
54
+
55
+ record = model.create(title: "Some nice post")
56
+ assert_equal "some_nice_post_2", record.permalink
57
+ end
58
+
59
+ test "creates unique permalinks based on scope" do
60
+ model.permalink :title, unique: true, scope: :user_id
61
+
62
+ user = User.create!
63
+ another_user = User.create!
64
+
65
+ # Create posts for user
66
+ record = model.create(title: "Some nice post", user: user)
67
+ assert_equal "some-nice-post", record.permalink
68
+
69
+ record = model.create(title: "Some nice post", user: user)
70
+ assert_equal "some-nice-post-2", record.permalink
71
+
72
+ # Create posts for another user
73
+ record = model.create(title: "Some nice post", user: another_user)
74
+ assert_equal "some-nice-post", record.permalink
75
+
76
+ record = model.create(title: "Some nice post", user: another_user)
77
+ assert_equal "some-nice-post-2", record.permalink
78
+ end
79
+
80
+ test "returns param for unique permalink" do
81
+ model.permalink :title, to_param: :permalink, unique: true
82
+
83
+ record = model.create(title: "Ruby")
84
+ assert_equal "ruby", record.to_param
85
+
86
+ record = model.create(title: "Ruby")
87
+ assert_equal "ruby-2", record.to_param
88
+ end
89
+
90
+ test "overrides to_param with custom fields" do
91
+ model.permalink :title, to: :slug, to_param: [:slug, :id, "page"]
92
+
93
+ record = model.create(title: "Some nice post")
94
+ assert_equal "some-nice-post-#{record.id}-page", record.to_param
95
+ end
96
+
97
+ test "ignores blank attributes from to_param" do
98
+ model.permalink :title, to_param: [:id, " ", nil, "\t", :permalink]
99
+
100
+ record = model.create(title: "Some nice post")
101
+ assert_equal "#{record.id}-some-nice-post", record.to_param
102
+ end
103
+
104
+ test "sets permalink if permalink is blank" do
105
+ record = model.create(title: "Some nice post", permalink: " ")
106
+ assert_equal "some-nice-post", record.permalink
107
+ end
108
+
109
+ test "keeps defined permalink" do
110
+ record = model.create(title: "Some nice post", permalink: "awesome-post")
111
+ assert_equal "awesome-post", record.permalink
112
+ end
113
+
114
+ test "creates unique permalinks for number-ended titles" do
115
+ model.permalink :title, unique: true
116
+
117
+ record = model.create(title: "Rails 3")
118
+ assert_equal "rails-3", record.permalink
119
+
120
+ record = model.create(title: "Rails 3")
121
+ assert_equal "rails-3-2", record.permalink
122
+ end
123
+
124
+ test "forces permalink" do
125
+ model.permalink :title, force: true
126
+
127
+ record = model.create(title: "Some nice post")
128
+ record.update title: "Awesome post"
129
+
130
+ assert_equal "awesome-post", record.permalink
131
+ end
132
+
133
+ test "forces permalink and keep unique" do
134
+ model.permalink :title, force: true, unique: true
135
+
136
+ record = model.create(title: "Some nice post")
137
+
138
+ record.update title: "Awesome post"
139
+ assert_equal "awesome-post", record.permalink
140
+
141
+ record = model.create(title: "Awesome post")
142
+ assert_equal "awesome-post-2", record.permalink
143
+ end
144
+
145
+ test "keeps same permalink when another field changes" do
146
+ model.permalink :title, force: true, unique: true
147
+
148
+ record = model.create(title: "Some nice post")
149
+ record.update description: "some description"
150
+
151
+ assert_equal "some-nice-post", record.permalink
152
+ end
153
+
154
+ test "overrides to_param method" do
155
+ model.permalink :title
156
+
157
+ record = model.create(title: "Some nice post")
158
+ assert_equal "#{record.id}-some-nice-post", record.to_param
159
+ end
160
+
161
+ test "uses custom separator" do
162
+ model.permalink :title, separator: "_"
163
+ record = model.create(title: "Some nice post")
164
+
165
+ assert_equal "#{record.id}_some_nice_post", record.to_param
166
+ end
167
+
168
+ test "uses custom normalization" do
169
+ model.permalink :title,
170
+ normalizations: [->(input, _options) { input.to_s.reverse }]
171
+ record = model.create(title: "Some nice post")
172
+
173
+ assert_equal "Some nice post".reverse, record.permalink
174
+ end
175
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class NormalizationsTest < Minitest::Test
6
+ test "applies contraction replacement" do
7
+ assert_equal "its", Permalink::Normalizations::Contraction.call("it's")
8
+ assert_equal "aint", Permalink::Normalizations::Contraction.call("ain’t")
9
+ end
10
+
11
+ test "applies transliteration" do
12
+ assert_equal "aeiou",
13
+ Permalink::Normalizations::Transliteration.call("áéíóú")
14
+ end
15
+
16
+ test "applies downcasing" do
17
+ assert_equal "test", Permalink::Normalizations::Downcase.call("TEST")
18
+ end
19
+
20
+ test "applies lead/trailing dashes replacement" do
21
+ permalink = Permalink::Normalizations::LeadingTrailingDashes.call("-test-")
22
+ assert_equal "test", permalink
23
+ end
24
+
25
+ test "applies multiple dashes replacement" do
26
+ permalink =
27
+ Permalink::Normalizations::MultipleDashes.call("nice----permalink")
28
+ assert_equal "nice-permalink", permalink
29
+ end
30
+
31
+ test "applies multiple dashes replacement with custom separator" do
32
+ permalink = Permalink::Normalizations::MultipleDashes
33
+ .call("nice----permalink", separator: "_")
34
+ assert_equal "nice_permalink", permalink
35
+ end
36
+
37
+ test "applies non-alphanumeric replacement" do
38
+ permalink =
39
+ Permalink::Normalizations::NonAlphanumeric.call("nice-permalink!")
40
+ assert_equal "nice-permalink-", permalink
41
+ end
42
+
43
+ test "applies non-alphanumeric replacement with custom separator" do
44
+ permalink = Permalink::Normalizations::NonAlphanumeric
45
+ .call("nice-permalink!", separator: "_")
46
+ assert_equal "nice_permalink_", permalink
47
+ end
48
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class PermalinkTest < Minitest::Test
6
+ {
7
+ "This IS a Tripped out title!!.!1 (well/ not really)" => "this-is-a-tripped-out-title-1-well-not-really", # rubocop:disable Layout/LineLength
8
+ '////// meph1sto r0x ! \\\\\\' => "meph1sto-r0x",
9
+ "āčēģīķļņū" => "acegiklnu",
10
+ "中文測試 chinese text" => "chinese-text",
11
+ 'some-)()()-ExtRa!/// .data==?> to \/\/test' => "some-extra-data-to-test",
12
+ "http://simplesideias.com.br/tags/" => "http-simplesideias-com-br-tags",
13
+ "Don't Repeat Yourself (DRY)" => "dont-repeat-yourself-dry",
14
+ "Text\nwith\nline\n\n\tbreaks" => "text-with-line-breaks",
15
+ "can't do it" => "cant-do-it",
16
+ "i'm a dog" => "im-a-dog"
17
+ }.each do |from, to|
18
+ test "creates permalink for #{from}" do
19
+ assert_equal to, Permalink.generate(from)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Post < ActiveRecord::Base
4
+ belongs_to :user
5
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ ActiveRecord::Schema.define(version: 0) do
4
+ create_table :posts do |t|
5
+ t.string :title, :permalink, :description, :slug
6
+ t.belongs_to :user
7
+ end
8
+
9
+ create_table :users do |t|
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User < ActiveRecord::Base
4
+ has_many :posts
5
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "bundler/setup"
7
+ require "permalink"
8
+
9
+ require "minitest/utils"
10
+ require "minitest/autorun"
11
+
12
+ ActiveRecord::Base
13
+ .establish_connection(adapter: "sqlite3", database: ":memory:")
14
+
15
+ load("support/schema.rb")
16
+ require "support/user"
17
+ require "support/post"
metadata CHANGED
@@ -1,184 +1,172 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: permalink
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 2.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nando Vieira
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-10-21 00:00:00.000000000 Z
11
+ date: 2020-09-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
- requirement: &70099538008620 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
- type: :development
20
+ type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70099538008620
25
- - !ruby/object:Gem::Dependency
26
- name: sqlite3-ruby
27
- requirement: &70099537997320 !ruby/object:Gem::Requirement
28
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
29
23
  requirements:
30
- - - ! '>='
24
+ - - ">="
31
25
  - !ruby/object:Gem::Version
32
26
  version: '0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: *70099537997320
36
27
  - !ruby/object:Gem::Dependency
37
- name: test-unit
38
- requirement: &70099538001440 !ruby/object:Gem::Requirement
39
- none: false
28
+ name: minitest-utils
29
+ requirement: !ruby/object:Gem::Requirement
40
30
  requirements:
41
- - - ! '>='
31
+ - - ">="
42
32
  - !ruby/object:Gem::Version
43
33
  version: '0'
44
34
  type: :development
45
35
  prerelease: false
46
- version_requirements: *70099538001440
47
- - !ruby/object:Gem::Dependency
48
- name: rspec
49
- requirement: &70099537985380 !ruby/object:Gem::Requirement
50
- none: false
36
+ version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - ~>
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '2.7'
55
- type: :development
56
- prerelease: false
57
- version_requirements: *70099537985380
40
+ version: '0'
58
41
  - !ruby/object:Gem::Dependency
59
- name: mongoid
60
- requirement: &70099537969500 !ruby/object:Gem::Requirement
61
- none: false
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
62
44
  requirements:
63
- - - ~>
45
+ - - ">="
64
46
  - !ruby/object:Gem::Version
65
- version: '2.3'
47
+ version: '0'
66
48
  type: :development
67
49
  prerelease: false
68
- version_requirements: *70099537969500
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: mongo_mapper
71
- requirement: &70099537975840 !ruby/object:Gem::Requirement
72
- none: false
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
73
58
  requirements:
74
- - - ~>
59
+ - - ">="
75
60
  - !ruby/object:Gem::Version
76
- version: '0.9'
61
+ version: '0'
77
62
  type: :development
78
63
  prerelease: false
79
- version_requirements: *70099537975840
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
80
69
  - !ruby/object:Gem::Dependency
81
- name: bson_ext
82
- requirement: &70099537055460 !ruby/object:Gem::Requirement
83
- none: false
70
+ name: rubocop-fnando
71
+ requirement: !ruby/object:Gem::Requirement
84
72
  requirements:
85
- - - ! '>='
73
+ - - ">="
86
74
  - !ruby/object:Gem::Version
87
75
  version: '0'
88
76
  type: :development
89
77
  prerelease: false
90
- version_requirements: *70099537055460
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
91
83
  - !ruby/object:Gem::Dependency
92
- name: pry
93
- requirement: &70099537034980 !ruby/object:Gem::Requirement
94
- none: false
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
95
86
  requirements:
96
- - - ! '>='
87
+ - - ">="
97
88
  - !ruby/object:Gem::Version
98
89
  version: '0'
99
90
  type: :development
100
91
  prerelease: false
101
- version_requirements: *70099537034980
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
102
97
  - !ruby/object:Gem::Dependency
103
- name: rake
104
- requirement: &70099537034280 !ruby/object:Gem::Requirement
105
- none: false
98
+ name: sqlite3
99
+ requirement: !ruby/object:Gem::Requirement
106
100
  requirements:
107
- - - ! '>='
101
+ - - ">="
108
102
  - !ruby/object:Gem::Version
109
103
  version: '0'
110
104
  type: :development
111
105
  prerelease: false
112
- version_requirements: *70099537034280
113
- description: Generate permalink attributes on ActiveRecord
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Generate permalink attributes on ActiveModel/ActiveRecord
114
112
  email:
115
113
  - fnando.vieira@gmail.com
116
114
  executables: []
117
115
  extensions: []
118
116
  extra_rdoc_files: []
119
117
  files:
120
- - .gitignore
121
- - .rspec
118
+ - ".github/FUNDING.yml"
119
+ - ".gitignore"
120
+ - ".rubocop.yml"
121
+ - ".travis.yml"
122
122
  - Gemfile
123
- - Gemfile.lock
124
- - README.markdown
123
+ - README.md
125
124
  - Rakefile
126
125
  - lib/permalink.rb
127
- - lib/permalink/orm/active_record.rb
128
- - lib/permalink/orm/base.rb
129
- - lib/permalink/orm/mongo_mapper.rb
130
- - lib/permalink/orm/mongoid.rb
131
- - lib/permalink/string_ext.rb
126
+ - lib/permalink/active_record.rb
127
+ - lib/permalink/normalizations/contraction.rb
128
+ - lib/permalink/normalizations/downcase.rb
129
+ - lib/permalink/normalizations/leading_trailing_dashes.rb
130
+ - lib/permalink/normalizations/multiple_dashes.rb
131
+ - lib/permalink/normalizations/non_alphanumeric.rb
132
+ - lib/permalink/normalizations/transliteration.rb
132
133
  - lib/permalink/version.rb
133
134
  - permalink.gemspec
134
- - spec/permalink/active_record_spec.rb
135
- - spec/permalink/mongo_mapper_spec.rb
136
- - spec/permalink/mongoid_spec.rb
137
- - spec/permalink/string_spec.rb
138
- - spec/spec_helper.rb
139
- - spec/support/article.rb
140
- - spec/support/page.rb
141
- - spec/support/post.rb
142
- - spec/support/schema.rb
143
- - spec/support/shared.rb
135
+ - test/permalink/active_record_test.rb
136
+ - test/permalink/normalizations_test.rb
137
+ - test/permalink/permalink_test.rb
138
+ - test/support/post.rb
139
+ - test/support/schema.rb
140
+ - test/support/user.rb
141
+ - test/test_helper.rb
144
142
  homepage: http://rubygems.org/gems/permalink
145
- licenses: []
146
- post_install_message:
143
+ licenses:
144
+ - MIT
145
+ metadata: {}
146
+ post_install_message:
147
147
  rdoc_options: []
148
148
  require_paths:
149
149
  - lib
150
150
  required_ruby_version: !ruby/object:Gem::Requirement
151
- none: false
152
151
  requirements:
153
- - - ! '>='
152
+ - - ">="
154
153
  - !ruby/object:Gem::Version
155
- version: '0'
156
- segments:
157
- - 0
158
- hash: 232250411774848879
154
+ version: 2.5.0
159
155
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
156
  requirements:
162
- - - ! '>='
157
+ - - ">="
163
158
  - !ruby/object:Gem::Version
164
159
  version: '0'
165
- segments:
166
- - 0
167
- hash: 232250411774848879
168
160
  requirements: []
169
- rubyforge_project:
170
- rubygems_version: 1.8.10
171
- signing_key:
172
- specification_version: 3
173
- summary: Generate permalink attributes on ActiveRecord
161
+ rubygems_version: 3.1.2
162
+ signing_key:
163
+ specification_version: 4
164
+ summary: Generate permalink attributes on ActiveModel/ActiveRecord
174
165
  test_files:
175
- - spec/permalink/active_record_spec.rb
176
- - spec/permalink/mongo_mapper_spec.rb
177
- - spec/permalink/mongoid_spec.rb
178
- - spec/permalink/string_spec.rb
179
- - spec/spec_helper.rb
180
- - spec/support/article.rb
181
- - spec/support/page.rb
182
- - spec/support/post.rb
183
- - spec/support/schema.rb
184
- - spec/support/shared.rb
166
+ - test/permalink/active_record_test.rb
167
+ - test/permalink/normalizations_test.rb
168
+ - test/permalink/permalink_test.rb
169
+ - test/support/post.rb
170
+ - test/support/schema.rb
171
+ - test/support/user.rb
172
+ - test/test_helper.rb