acts_as_slugable 1.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 80110bad591bcd25acb0b28037087a883b3e53c9a2a90a1a67b87c13ea57c23b
4
+ data.tar.gz: 6fcfd2619b7b7aac5d8196bd726ca9fad562a3c526d4d78c90fb58ecf630a486
5
+ SHA512:
6
+ metadata.gz: d68c16da042d33e5bde332ceea03a7316c0bbf99329c81103aff854d238a0f98bf2ec0675107a73afbf85d09d3419f181ba4c142829028ccf0dbe29be96e314f
7
+ data.tar.gz: 2b2c8658b6ac15ad4481d06164ad0b901f1a13f7995bc16b8a591dc8b24d618a0ddcd390f70388123a19382b83ba0240b8a8f4cf6149546ef607fd4b28b4f0cf
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,56 @@
1
+ = Acts as slugable readme
2
+
3
+ Generates a URL slug based on a specific fields (e.g. title).
4
+
5
+ A url slug is a string derived from a specific field which can the be used in a URL. For instance, a page with the title <tt>My page</tt> would have a URL slug of <tt>my-page</tt>.
6
+
7
+ The slug is generated on save and create actions. If the field has an existing URL slug (like when editing an existing record) the URL slug is preserved.
8
+
9
+ URL slugs are unique within the specified scope (or all records if no scope is defined). If the slug already exists within the scope, <tt>-n</tt> is added (e.g. <tt>my-page-0</tt>, <tt>my-page-1</tt>, etc...
10
+
11
+
12
+ == Installation
13
+ Add this to your Gemfile:
14
+
15
+ <tt>gem 'acts_as_slugable', git: 'https://github.com/coding-bunny/acts_as_slugable.git', tag: "1.0.1"</tt>
16
+
17
+
18
+ == Usage examples
19
+
20
+ In your target table, add a column to hold the URL slug.
21
+
22
+
23
+ === With scope
24
+
25
+ class Page < ActiveRecord::Base
26
+ acts_as_slugable :source_column => :title, :slug_column => :url_slug, :scope => :parent
27
+ end
28
+
29
+ === Without scope
30
+
31
+ class Post < ActiveRecord::Base
32
+ acts_as_slugable :source_column => :title, :slug_column => :url_slug
33
+ end
34
+
35
+ === A sample link
36
+
37
+ link_to @page.title, :action => 'show', :url_slug => @page.url_slug
38
+
39
+
40
+ == Testing
41
+
42
+ The unit tests for this plugin use an in-memory sqlite3 database (http://www.sqlite.org/).
43
+
44
+ To execute the unit tests run the default rake task (<tt>rake</tt>). To execute the unit tests but preserve to debug log run <tt>rake test</tt>.
45
+
46
+ == Credits
47
+
48
+ Created by Alex Dunae (http://dunae.ca/), 2006-09, though it takes a village to raise a plugin:
49
+
50
+ Thanks to Andrew White (http://pixeltrix.co.uk/) for fixing a conflict with <tt>acts_as_list</tt>.
51
+
52
+ Thanks to Philip Hallstrom (http://pjkh.com/) for pointing out some redundant code.
53
+
54
+ Thanks to Arne De Herdt (https://github.com/coding-bunny) for making this a gem.
55
+
56
+ Thanks to Isoptope (http://isotopedev.com/) on Stackoverflow for resolving the query Issue.
@@ -0,0 +1,29 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'ActsAsSlugable'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ Bundler::GemHelper.install_tasks
18
+
19
+ require 'rake/testtask'
20
+
21
+ Rake::TestTask.new(:test) do |t|
22
+ t.libs << 'lib'
23
+ t.libs << 'test'
24
+ t.pattern = 'test/**/*_test.rb'
25
+ t.verbose = false
26
+ end
27
+
28
+
29
+ task default: :test
@@ -0,0 +1,91 @@
1
+ module Slugable
2
+ module ActsAsSlugable
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ after_validation :create_slug
7
+ end
8
+
9
+ module ClassMethods
10
+ def acts_as_slugable(options = {})
11
+ configuration = {source_column: 'name', slug_column: 'url_slug', scope: nil}
12
+ configuration.update(options) if options.is_a?(Hash)
13
+
14
+ configuration[:scope] = "#{configuration[:scope]}_id".intern if configuration[:scope].is_a?(Symbol) && configuration[:scope].to_s !~/_id$/
15
+
16
+ if configuration[:scope].is_a?(Symbol)
17
+ scope_condition_method = %(
18
+ def slug_scope_condition
19
+ if #{configuration[:scope].to_s}.nil?
20
+ "#{configuration[:scope].to_s} IS NULL"
21
+ else
22
+ "#{configuration[:scope].to_s} = \#{#{configuration[:scope].to_s}}"
23
+ end
24
+ end
25
+ )
26
+ elsif configuration[:scope].nil?
27
+ scope_condition_method = "def slug_scope_condition() \"1 = 1\" end"
28
+ else
29
+ scope_condition_method = "def slug_scope_condition() \"#{configuration[:scope]}\" end"
30
+ end
31
+
32
+ class_eval <<-EOV
33
+ include Slugable::ActsAsSlugable::LocalInstanceMethods
34
+
35
+ def acts_as_slugable_class
36
+ ::#{self.name}
37
+ end
38
+
39
+ def source_column
40
+ "#{configuration[:source_column]}"
41
+ end
42
+
43
+ def slug_column
44
+ "#{configuration[:slug_column]}"
45
+ end
46
+
47
+ #{scope_condition_method}
48
+ EOV
49
+
50
+ include Slugable::ActsAsSlugable::LocalInstanceMethods
51
+ end
52
+ end
53
+
54
+ module LocalInstanceMethods
55
+ private
56
+
57
+ def create_slug
58
+ return if self.errors.count > 0
59
+
60
+ if self[slug_column].to_s.empty?
61
+ test_string = self[source_column]
62
+
63
+ proposed_slug = test_string.strip.downcase.gsub(/['"#\$,.!?%@()]+/, '')
64
+ proposed_slug = proposed_slug.gsub(/&/, 'and')
65
+ proposed_slug = proposed_slug.gsub(/[\W]+/, '-')
66
+ proposed_slug = proposed_slug.gsub(/-{2}/, '-')
67
+
68
+ suffix = ''
69
+ existing = true
70
+
71
+ acts_as_slugable_class.transaction do
72
+ while existing != nil
73
+ existing = acts_as_slugable_class.where(["#{slug_column} = ? and #{slug_scope_condition}", proposed_slug + suffix]).first
74
+ if existing
75
+ if suffix.empty?
76
+ suffix = "-0"
77
+ else
78
+ suffix.succ!
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ self[slug_column] = proposed_slug + suffix
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+
91
+ ActiveRecord::Base.send(:include, Slugable::ActsAsSlugable)
@@ -0,0 +1,3 @@
1
+ module Slugable
2
+ VERSION = "1.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :acts_as_slugable do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,3 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: ":memory:"
@@ -0,0 +1,293 @@
1
+ # Logfile created on 2019-05-21 11:54:19 +0200 by logger.rb/44203
2
+ D, [2019-05-21T12:02:28.071939 #16166] DEBUG -- :  (0.1ms) CREATE TABLE "pages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "parent_id" integer, "title" varchar NOT NULL, "url_slug" varchar NOT NULL) 
3
+ D, [2019-05-21T12:02:28.079515 #16166] DEBUG -- :  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
4
+ D, [2019-05-21T12:02:28.079637 #16166] DEBUG -- :  (0.0ms) select sqlite_version(*)
5
+ D, [2019-05-21T12:02:28.080188 #16166] DEBUG -- :  (0.4ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
6
+ D, [2019-05-21T12:02:28.080303 #16166] DEBUG -- :  (0.0ms) SELECT version FROM "schema_migrations"
7
+ D, [2019-05-21T12:02:28.080397 #16166] DEBUG -- :  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
8
+ D, [2019-05-21T12:02:28.086537 #16166] DEBUG -- :  (0.0ms) begin transaction
9
+ D, [2019-05-21T12:02:28.088027 #16166] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
10
+ D, [2019-05-21T12:02:28.089104 #16166] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title"], ["url_slug", "title"]]
11
+ D, [2019-05-21T12:02:28.089256 #16166] DEBUG -- :  (0.0ms) commit transaction
12
+ D, [2019-05-21T12:02:28.089433 #16166] DEBUG -- :  (0.0ms) begin transaction
13
+ D, [2019-05-21T12:02:28.089686 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-and-some-spaces' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
14
+ D, [2019-05-21T12:02:28.089876 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title and some spaces"], ["url_slug", "title-and-some-spaces"]]
15
+ D, [2019-05-21T12:02:28.089989 #16166] DEBUG -- :  (0.0ms) commit transaction
16
+ D, [2019-05-21T12:02:28.090125 #16166] DEBUG -- :  (0.0ms) begin transaction
17
+ D, [2019-05-21T12:02:28.090345 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-dashes' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
18
+ D, [2019-05-21T12:02:28.090527 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with-dashes"], ["url_slug", "title-with-dashes"]]
19
+ D, [2019-05-21T12:02:28.090643 #16166] DEBUG -- :  (0.0ms) commit transaction
20
+ D, [2019-05-21T12:02:28.090780 #16166] DEBUG -- :  (0.0ms) begin transaction
21
+ D, [2019-05-21T12:02:28.091003 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-symbols' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
22
+ D, [2019-05-21T12:02:28.091186 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with'-$#)(*%symbols"], ["url_slug", "title-with-symbols"]]
23
+ D, [2019-05-21T12:02:28.091299 #16166] DEBUG -- :  (0.0ms) commit transaction
24
+ D, [2019-05-21T12:02:28.091434 #16166] DEBUG -- :  (0.0ms) begin transaction
25
+ D, [2019-05-21T12:02:28.091706 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = '-urltitle-' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
26
+ D, [2019-05-21T12:02:28.091892 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "/urltitle/"], ["url_slug", "-urltitle-"]]
27
+ D, [2019-05-21T12:02:28.092001 #16166] DEBUG -- :  (0.0ms) commit transaction
28
+ D, [2019-05-21T12:02:28.092137 #16166] DEBUG -- :  (0.0ms) begin transaction
29
+ D, [2019-05-21T12:02:28.092426 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'calcul-en-fran-aise' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
30
+ D, [2019-05-21T12:02:28.092614 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "calculé en française"], ["url_slug", "calcul-en-fran-aise"]]
31
+ D, [2019-05-21T12:02:28.092724 #16166] DEBUG -- :  (0.0ms) commit transaction
32
+ D, [2019-05-21T12:02:28.092933 #16166] DEBUG -- :  (0.0ms) begin transaction
33
+ D, [2019-05-21T12:02:28.093159 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'new-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
34
+ D, [2019-05-21T12:02:28.093344 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "New Page"], ["url_slug", "new-page"]]
35
+ D, [2019-05-21T12:02:28.093454 #16166] DEBUG -- :  (0.0ms) commit transaction
36
+ D, [2019-05-21T12:02:28.093615 #16166] DEBUG -- :  (0.0ms) begin transaction
37
+ D, [2019-05-21T12:02:28.093800 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Test override"], ["url_slug", "something-different"]]
38
+ D, [2019-05-21T12:02:28.093911 #16166] DEBUG -- :  (0.0ms) commit transaction
39
+ D, [2019-05-21T12:02:28.094112 #16166] DEBUG -- :  (0.0ms) begin transaction
40
+ D, [2019-05-21T12:02:28.099277 #16166] DEBUG -- :  (0.0ms) rollback transaction
41
+ D, [2019-05-21T12:02:28.099907 #16166] DEBUG -- :  (0.0ms) begin transaction
42
+ D, [2019-05-21T12:02:28.100364 #16166] DEBUG -- :  (0.0ms) rollback transaction
43
+ D, [2019-05-21T12:02:28.100959 #16166] DEBUG -- :  (0.0ms) begin transaction
44
+ D, [2019-05-21T12:02:28.101323 #16166] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
45
+ D, [2019-05-21T12:02:28.101629 #16166] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 1], ["url_slug", "unique-scoped-title"]]
46
+ D, [2019-05-21T12:02:28.101766 #16166] DEBUG -- :  (0.0ms) commit transaction
47
+ D, [2019-05-21T12:02:28.101921 #16166] DEBUG -- :  (0.0ms) begin transaction
48
+ D, [2019-05-21T12:02:28.102164 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 2) ORDER BY "pages"."id" ASC LIMIT 1
49
+ D, [2019-05-21T12:02:28.102363 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 2], ["url_slug", "unique-scoped-title"]]
50
+ D, [2019-05-21T12:02:28.102477 #16166] DEBUG -- :  (0.0ms) commit transaction
51
+ D, [2019-05-21T12:02:28.102697 #16166] DEBUG -- :  (0.0ms) begin transaction
52
+ D, [2019-05-21T12:02:28.102928 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
53
+ D, [2019-05-21T12:02:28.103313 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title"]]
54
+ D, [2019-05-21T12:02:28.103426 #16166] DEBUG -- :  (0.0ms) commit transaction
55
+ D, [2019-05-21T12:02:28.107074 #16166] DEBUG -- :  (0.0ms) begin transaction
56
+ D, [2019-05-21T12:02:28.107702 #16166] DEBUG -- : Page Load (0.4ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
57
+ D, [2019-05-21T12:02:28.108276 #16166] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title-0' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
58
+ D, [2019-05-21T12:02:28.108536 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title-0"]]
59
+ D, [2019-05-21T12:02:28.108667 #16166] DEBUG -- :  (0.0ms) commit transaction
60
+ D, [2019-05-21T12:02:28.108998 #16166] DEBUG -- :  (0.0ms) begin transaction
61
+ D, [2019-05-21T12:02:28.109423 #16166] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'original-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
62
+ D, [2019-05-21T12:02:28.109631 #16166] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Original Page"], ["url_slug", "original-page"]]
63
+ D, [2019-05-21T12:02:28.109747 #16166] DEBUG -- :  (0.0ms) commit transaction
64
+ D, [2019-05-21T12:02:28.109870 #16166] DEBUG -- :  (0.0ms) begin transaction
65
+ D, [2019-05-21T12:02:28.111183 #16166] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ? WHERE "pages"."id" = ? [["title", "Updated title only"], ["id", 13]]
66
+ D, [2019-05-21T12:02:28.111292 #16166] DEBUG -- :  (0.0ms) commit transaction
67
+ D, [2019-05-21T12:02:28.111366 #16166] DEBUG -- :  (0.0ms) begin transaction
68
+ D, [2019-05-21T12:02:28.111657 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-nil' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
69
+ D, [2019-05-21T12:02:28.111924 #16166] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to nil"], ["url_slug", "updated-title-and-slug-to-nil"], ["id", 13]]
70
+ D, [2019-05-21T12:02:28.112019 #16166] DEBUG -- :  (0.0ms) commit transaction
71
+ D, [2019-05-21T12:02:28.112087 #16166] DEBUG -- :  (0.0ms) begin transaction
72
+ D, [2019-05-21T12:02:28.112350 #16166] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-empty' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
73
+ D, [2019-05-21T12:02:28.112586 #16166] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to empty"], ["url_slug", "updated-title-and-slug-to-empty"], ["id", 13]]
74
+ D, [2019-05-21T12:02:28.112678 #16166] DEBUG -- :  (0.0ms) commit transaction
75
+ D, [2019-05-21T12:03:17.796707 #16267] DEBUG -- :  (0.1ms) CREATE TABLE "pages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "parent_id" integer, "title" varchar NOT NULL, "url_slug" varchar NOT NULL) 
76
+ D, [2019-05-21T12:03:17.809178 #16267] DEBUG -- :  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
77
+ D, [2019-05-21T12:03:17.809312 #16267] DEBUG -- :  (0.0ms) select sqlite_version(*)
78
+ D, [2019-05-21T12:03:17.809527 #16267] DEBUG -- :  (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
79
+ D, [2019-05-21T12:03:17.809634 #16267] DEBUG -- :  (0.0ms) SELECT version FROM "schema_migrations"
80
+ D, [2019-05-21T12:03:17.809718 #16267] DEBUG -- :  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
81
+ D, [2019-05-21T12:03:17.815519 #16267] DEBUG -- :  (0.0ms) begin transaction
82
+ D, [2019-05-21T12:03:17.816775 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
83
+ D, [2019-05-21T12:03:17.817673 #16267] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title"], ["url_slug", "title"]]
84
+ D, [2019-05-21T12:03:17.817827 #16267] DEBUG -- :  (0.0ms) commit transaction
85
+ D, [2019-05-21T12:03:17.818006 #16267] DEBUG -- :  (0.0ms) begin transaction
86
+ D, [2019-05-21T12:03:17.818270 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-and-some-spaces' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
87
+ D, [2019-05-21T12:03:17.818466 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title and some spaces"], ["url_slug", "title-and-some-spaces"]]
88
+ D, [2019-05-21T12:03:17.818578 #16267] DEBUG -- :  (0.0ms) commit transaction
89
+ D, [2019-05-21T12:03:17.818764 #16267] DEBUG -- :  (0.0ms) begin transaction
90
+ D, [2019-05-21T12:03:17.818990 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-dashes' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
91
+ D, [2019-05-21T12:03:17.819175 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with-dashes"], ["url_slug", "title-with-dashes"]]
92
+ D, [2019-05-21T12:03:17.819286 #16267] DEBUG -- :  (0.0ms) commit transaction
93
+ D, [2019-05-21T12:03:17.819423 #16267] DEBUG -- :  (0.0ms) begin transaction
94
+ D, [2019-05-21T12:03:17.819645 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-symbols' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
95
+ D, [2019-05-21T12:03:17.819828 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with'-$#)(*%symbols"], ["url_slug", "title-with-symbols"]]
96
+ D, [2019-05-21T12:03:17.819938 #16267] DEBUG -- :  (0.0ms) commit transaction
97
+ D, [2019-05-21T12:03:17.820074 #16267] DEBUG -- :  (0.0ms) begin transaction
98
+ D, [2019-05-21T12:03:17.820309 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = '-urltitle-' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
99
+ D, [2019-05-21T12:03:17.820495 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "/urltitle/"], ["url_slug", "-urltitle-"]]
100
+ D, [2019-05-21T12:03:17.820606 #16267] DEBUG -- :  (0.0ms) commit transaction
101
+ D, [2019-05-21T12:03:17.820742 #16267] DEBUG -- :  (0.0ms) begin transaction
102
+ D, [2019-05-21T12:03:17.821004 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'calcul-en-fran-aise' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
103
+ D, [2019-05-21T12:03:17.821190 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "calculé en française"], ["url_slug", "calcul-en-fran-aise"]]
104
+ D, [2019-05-21T12:03:17.821301 #16267] DEBUG -- :  (0.0ms) commit transaction
105
+ D, [2019-05-21T12:03:17.821521 #16267] DEBUG -- :  (0.0ms) begin transaction
106
+ D, [2019-05-21T12:03:17.821780 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'new-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
107
+ D, [2019-05-21T12:03:17.821972 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "New Page"], ["url_slug", "new-page"]]
108
+ D, [2019-05-21T12:03:17.822082 #16267] DEBUG -- :  (0.0ms) commit transaction
109
+ D, [2019-05-21T12:03:17.822289 #16267] DEBUG -- :  (0.0ms) begin transaction
110
+ D, [2019-05-21T12:03:17.822500 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Test override"], ["url_slug", "something-different"]]
111
+ D, [2019-05-21T12:03:17.822611 #16267] DEBUG -- :  (0.0ms) commit transaction
112
+ D, [2019-05-21T12:03:17.822879 #16267] DEBUG -- :  (0.0ms) begin transaction
113
+ D, [2019-05-21T12:03:17.828097 #16267] DEBUG -- :  (0.1ms) rollback transaction
114
+ D, [2019-05-21T12:03:17.828745 #16267] DEBUG -- :  (0.0ms) begin transaction
115
+ D, [2019-05-21T12:03:17.829182 #16267] DEBUG -- :  (0.0ms) rollback transaction
116
+ D, [2019-05-21T12:03:17.829865 #16267] DEBUG -- :  (0.0ms) begin transaction
117
+ D, [2019-05-21T12:03:17.830234 #16267] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
118
+ D, [2019-05-21T12:03:17.830543 #16267] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 1], ["url_slug", "unique-scoped-title"]]
119
+ D, [2019-05-21T12:03:17.830689 #16267] DEBUG -- :  (0.0ms) commit transaction
120
+ D, [2019-05-21T12:03:17.830846 #16267] DEBUG -- :  (0.0ms) begin transaction
121
+ D, [2019-05-21T12:03:17.831083 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 2) ORDER BY "pages"."id" ASC LIMIT 1
122
+ D, [2019-05-21T12:03:17.831285 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 2], ["url_slug", "unique-scoped-title"]]
123
+ D, [2019-05-21T12:03:17.831398 #16267] DEBUG -- :  (0.0ms) commit transaction
124
+ D, [2019-05-21T12:03:17.831668 #16267] DEBUG -- :  (0.0ms) begin transaction
125
+ D, [2019-05-21T12:03:17.831894 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
126
+ D, [2019-05-21T12:03:17.832092 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title"]]
127
+ D, [2019-05-21T12:03:17.832208 #16267] DEBUG -- :  (0.0ms) commit transaction
128
+ D, [2019-05-21T12:03:17.832355 #16267] DEBUG -- :  (0.0ms) begin transaction
129
+ D, [2019-05-21T12:03:17.832583 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
130
+ D, [2019-05-21T12:03:17.833052 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title-0' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
131
+ D, [2019-05-21T12:03:17.833269 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title-0"]]
132
+ D, [2019-05-21T12:03:17.833387 #16267] DEBUG -- :  (0.0ms) commit transaction
133
+ D, [2019-05-21T12:03:17.833647 #16267] DEBUG -- :  (0.0ms) begin transaction
134
+ D, [2019-05-21T12:03:17.833875 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'original-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
135
+ D, [2019-05-21T12:03:17.834062 #16267] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Original Page"], ["url_slug", "original-page"]]
136
+ D, [2019-05-21T12:03:17.834174 #16267] DEBUG -- :  (0.0ms) commit transaction
137
+ D, [2019-05-21T12:03:17.834297 #16267] DEBUG -- :  (0.0ms) begin transaction
138
+ D, [2019-05-21T12:03:17.835621 #16267] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ? WHERE "pages"."id" = ? [["title", "Updated title only"], ["id", 13]]
139
+ D, [2019-05-21T12:03:17.835730 #16267] DEBUG -- :  (0.0ms) commit transaction
140
+ D, [2019-05-21T12:03:17.835804 #16267] DEBUG -- :  (0.0ms) begin transaction
141
+ D, [2019-05-21T12:03:17.836145 #16267] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-nil' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
142
+ D, [2019-05-21T12:03:17.836422 #16267] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to nil"], ["url_slug", "updated-title-and-slug-to-nil"], ["id", 13]]
143
+ D, [2019-05-21T12:03:17.836518 #16267] DEBUG -- :  (0.0ms) commit transaction
144
+ D, [2019-05-21T12:03:17.836589 #16267] DEBUG -- :  (0.0ms) begin transaction
145
+ D, [2019-05-21T12:03:17.836854 #16267] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-empty' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
146
+ D, [2019-05-21T12:03:17.837099 #16267] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to empty"], ["url_slug", "updated-title-and-slug-to-empty"], ["id", 13]]
147
+ D, [2019-05-21T12:03:17.837192 #16267] DEBUG -- :  (0.0ms) commit transaction
148
+ D, [2019-05-21T12:03:55.278853 #16440] DEBUG -- :  (0.1ms) CREATE TABLE "pages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "parent_id" integer, "title" varchar NOT NULL, "url_slug" varchar NOT NULL) 
149
+ D, [2019-05-21T12:03:55.291052 #16440] DEBUG -- :  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
150
+ D, [2019-05-21T12:03:55.291191 #16440] DEBUG -- :  (0.0ms) select sqlite_version(*)
151
+ D, [2019-05-21T12:03:55.291406 #16440] DEBUG -- :  (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
152
+ D, [2019-05-21T12:03:55.291515 #16440] DEBUG -- :  (0.0ms) SELECT version FROM "schema_migrations"
153
+ D, [2019-05-21T12:03:55.291598 #16440] DEBUG -- :  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
154
+ D, [2019-05-21T12:03:55.297567 #16440] DEBUG -- :  (0.0ms) begin transaction
155
+ D, [2019-05-21T12:03:55.298899 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'new-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
156
+ D, [2019-05-21T12:03:55.299772 #16440] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "New Page"], ["url_slug", "new-page"]]
157
+ D, [2019-05-21T12:03:55.299925 #16440] DEBUG -- :  (0.0ms) commit transaction
158
+ D, [2019-05-21T12:03:55.300251 #16440] DEBUG -- :  (0.0ms) begin transaction
159
+ D, [2019-05-21T12:03:55.300450 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Test override"], ["url_slug", "something-different"]]
160
+ D, [2019-05-21T12:03:55.300562 #16440] DEBUG -- :  (0.0ms) commit transaction
161
+ D, [2019-05-21T12:03:55.300782 #16440] DEBUG -- :  (0.0ms) begin transaction
162
+ D, [2019-05-21T12:03:55.301038 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
163
+ D, [2019-05-21T12:03:55.301256 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 1], ["url_slug", "unique-scoped-title"]]
164
+ D, [2019-05-21T12:03:55.301383 #16440] DEBUG -- :  (0.0ms) commit transaction
165
+ D, [2019-05-21T12:03:55.301529 #16440] DEBUG -- :  (0.0ms) begin transaction
166
+ D, [2019-05-21T12:03:55.301750 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 2) ORDER BY "pages"."id" ASC LIMIT 1
167
+ D, [2019-05-21T12:03:55.301945 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 2], ["url_slug", "unique-scoped-title"]]
168
+ D, [2019-05-21T12:03:55.302058 #16440] DEBUG -- :  (0.0ms) commit transaction
169
+ D, [2019-05-21T12:03:55.302247 #16440] DEBUG -- :  (0.0ms) begin transaction
170
+ D, [2019-05-21T12:03:55.302465 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
171
+ D, [2019-05-21T12:03:55.302718 #16440] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title"]]
172
+ D, [2019-05-21T12:03:55.302833 #16440] DEBUG -- :  (0.0ms) commit transaction
173
+ D, [2019-05-21T12:03:55.302979 #16440] DEBUG -- :  (0.0ms) begin transaction
174
+ D, [2019-05-21T12:03:55.303200 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
175
+ D, [2019-05-21T12:03:55.303649 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title-0' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
176
+ D, [2019-05-21T12:03:55.303861 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title-0"]]
177
+ D, [2019-05-21T12:03:55.303975 #16440] DEBUG -- :  (0.0ms) commit transaction
178
+ D, [2019-05-21T12:03:55.304160 #16440] DEBUG -- :  (0.0ms) begin transaction
179
+ D, [2019-05-21T12:03:55.304377 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
180
+ D, [2019-05-21T12:03:55.304560 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title"], ["url_slug", "title"]]
181
+ D, [2019-05-21T12:03:55.304670 #16440] DEBUG -- :  (0.0ms) commit transaction
182
+ D, [2019-05-21T12:03:55.304810 #16440] DEBUG -- :  (0.0ms) begin transaction
183
+ D, [2019-05-21T12:03:55.305029 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-and-some-spaces' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
184
+ D, [2019-05-21T12:03:55.305212 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title and some spaces"], ["url_slug", "title-and-some-spaces"]]
185
+ D, [2019-05-21T12:03:55.305321 #16440] DEBUG -- :  (0.0ms) commit transaction
186
+ D, [2019-05-21T12:03:55.305458 #16440] DEBUG -- :  (0.0ms) begin transaction
187
+ D, [2019-05-21T12:03:55.305675 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-dashes' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
188
+ D, [2019-05-21T12:03:55.305855 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with-dashes"], ["url_slug", "title-with-dashes"]]
189
+ D, [2019-05-21T12:03:55.305964 #16440] DEBUG -- :  (0.0ms) commit transaction
190
+ D, [2019-05-21T12:03:55.306110 #16440] DEBUG -- :  (0.0ms) begin transaction
191
+ D, [2019-05-21T12:03:55.306328 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-symbols' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
192
+ D, [2019-05-21T12:03:55.306510 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with'-$#)(*%symbols"], ["url_slug", "title-with-symbols"]]
193
+ D, [2019-05-21T12:03:55.306619 #16440] DEBUG -- :  (0.0ms) commit transaction
194
+ D, [2019-05-21T12:03:55.306761 #16440] DEBUG -- :  (0.0ms) begin transaction
195
+ D, [2019-05-21T12:03:55.306977 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = '-urltitle-' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
196
+ D, [2019-05-21T12:03:55.307158 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "/urltitle/"], ["url_slug", "-urltitle-"]]
197
+ D, [2019-05-21T12:03:55.307266 #16440] DEBUG -- :  (0.0ms) commit transaction
198
+ D, [2019-05-21T12:03:55.307401 #16440] DEBUG -- :  (0.0ms) begin transaction
199
+ D, [2019-05-21T12:03:55.307648 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'calcul-en-fran-aise' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
200
+ D, [2019-05-21T12:03:55.307829 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "calculé en française"], ["url_slug", "calcul-en-fran-aise"]]
201
+ D, [2019-05-21T12:03:55.307937 #16440] DEBUG -- :  (0.0ms) commit transaction
202
+ D, [2019-05-21T12:03:55.308117 #16440] DEBUG -- :  (0.0ms) begin transaction
203
+ D, [2019-05-21T12:03:55.308547 #16440] DEBUG -- : Page Load (0.2ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'original-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
204
+ D, [2019-05-21T12:03:55.308742 #16440] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Original Page"], ["url_slug", "original-page"]]
205
+ D, [2019-05-21T12:03:55.308855 #16440] DEBUG -- :  (0.0ms) commit transaction
206
+ D, [2019-05-21T12:03:55.308979 #16440] DEBUG -- :  (0.0ms) begin transaction
207
+ D, [2019-05-21T12:03:55.310393 #16440] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ? WHERE "pages"."id" = ? [["title", "Updated title only"], ["id", 13]]
208
+ D, [2019-05-21T12:03:55.310501 #16440] DEBUG -- :  (0.0ms) commit transaction
209
+ D, [2019-05-21T12:03:55.310577 #16440] DEBUG -- :  (0.0ms) begin transaction
210
+ D, [2019-05-21T12:03:55.310891 #16440] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-nil' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
211
+ D, [2019-05-21T12:03:55.311164 #16440] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to nil"], ["url_slug", "updated-title-and-slug-to-nil"], ["id", 13]]
212
+ D, [2019-05-21T12:03:55.311259 #16440] DEBUG -- :  (0.0ms) commit transaction
213
+ D, [2019-05-21T12:03:55.311327 #16440] DEBUG -- :  (0.0ms) begin transaction
214
+ D, [2019-05-21T12:03:55.311664 #16440] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-empty' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
215
+ D, [2019-05-21T12:03:55.311911 #16440] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to empty"], ["url_slug", "updated-title-and-slug-to-empty"], ["id", 13]]
216
+ D, [2019-05-21T12:03:55.312022 #16440] DEBUG -- :  (0.0ms) commit transaction
217
+ D, [2019-05-21T12:03:55.312314 #16440] DEBUG -- :  (0.0ms) begin transaction
218
+ D, [2019-05-21T12:03:55.317584 #16440] DEBUG -- :  (0.0ms) rollback transaction
219
+ D, [2019-05-21T12:03:55.318272 #16440] DEBUG -- :  (0.0ms) begin transaction
220
+ D, [2019-05-21T12:03:55.318887 #16440] DEBUG -- :  (0.0ms) rollback transaction
221
+ D, [2019-11-12T09:48:22.354500 #25223] DEBUG -- :  (0.1ms) CREATE TABLE "pages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "parent_id" integer, "title" varchar NOT NULL, "url_slug" varchar NOT NULL) 
222
+ D, [2019-11-12T09:48:22.367430 #25223] DEBUG -- :  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
223
+ D, [2019-11-12T09:48:22.367551 #25223] DEBUG -- :  (0.0ms) select sqlite_version(*)
224
+ D, [2019-11-12T09:48:22.367793 #25223] DEBUG -- :  (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
225
+ D, [2019-11-12T09:48:22.367896 #25223] DEBUG -- :  (0.0ms) SELECT version FROM "schema_migrations"
226
+ D, [2019-11-12T09:48:22.367973 #25223] DEBUG -- :  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
227
+ D, [2019-11-12T09:48:22.374085 #25223] DEBUG -- :  (0.0ms) begin transaction
228
+ D, [2019-11-12T09:48:22.386888 #25223] DEBUG -- :  (0.0ms) rollback transaction
229
+ D, [2019-11-12T09:48:22.387525 #25223] DEBUG -- :  (0.0ms) begin transaction
230
+ D, [2019-11-12T09:48:22.387980 #25223] DEBUG -- :  (0.0ms) rollback transaction
231
+ D, [2019-11-12T09:48:22.388562 #25223] DEBUG -- :  (0.0ms) begin transaction
232
+ D, [2019-11-12T09:48:22.389104 #25223] DEBUG -- : Page Load (0.1ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
233
+ D, [2019-11-12T09:48:22.390667 #25223] DEBUG -- : SQL (0.1ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 1], ["url_slug", "unique-scoped-title"]]
234
+ D, [2019-11-12T09:48:22.390810 #25223] DEBUG -- :  (0.0ms) commit transaction
235
+ D, [2019-11-12T09:48:22.390970 #25223] DEBUG -- :  (0.0ms) begin transaction
236
+ D, [2019-11-12T09:48:22.391214 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-scoped-title' and parent_id = 2) ORDER BY "pages"."id" ASC LIMIT 1
237
+ D, [2019-11-12T09:48:22.391413 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique scoped title"], ["parent_id", 2], ["url_slug", "unique-scoped-title"]]
238
+ D, [2019-11-12T09:48:22.391521 #25223] DEBUG -- :  (0.0ms) commit transaction
239
+ D, [2019-11-12T09:48:22.391761 #25223] DEBUG -- :  (0.0ms) begin transaction
240
+ D, [2019-11-12T09:48:22.391983 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
241
+ D, [2019-11-12T09:48:22.392178 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title"]]
242
+ D, [2019-11-12T09:48:22.392284 #25223] DEBUG -- :  (0.0ms) commit transaction
243
+ D, [2019-11-12T09:48:22.392426 #25223] DEBUG -- :  (0.0ms) begin transaction
244
+ D, [2019-11-12T09:48:22.392643 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
245
+ D, [2019-11-12T09:48:22.394030 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'unique-title-0' and parent_id = 1) ORDER BY "pages"."id" ASC LIMIT 1
246
+ D, [2019-11-12T09:48:22.394245 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "parent_id", "url_slug") VALUES (?, ?, ?) [["title", "Unique title"], ["parent_id", 1], ["url_slug", "unique-title-0"]]
247
+ D, [2019-11-12T09:48:22.394357 #25223] DEBUG -- :  (0.0ms) commit transaction
248
+ D, [2019-11-12T09:48:22.394570 #25223] DEBUG -- :  (0.0ms) begin transaction
249
+ D, [2019-11-12T09:48:22.394792 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'original-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
250
+ D, [2019-11-12T09:48:22.394993 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Original Page"], ["url_slug", "original-page"]]
251
+ D, [2019-11-12T09:48:22.395101 #25223] DEBUG -- :  (0.0ms) commit transaction
252
+ D, [2019-11-12T09:48:22.395217 #25223] DEBUG -- :  (0.0ms) begin transaction
253
+ D, [2019-11-12T09:48:22.397155 #25223] DEBUG -- : SQL (0.1ms) UPDATE "pages" SET "title" = ? WHERE "pages"."id" = ? [["title", "Updated title only"], ["id", 5]]
254
+ D, [2019-11-12T09:48:22.397265 #25223] DEBUG -- :  (0.0ms) commit transaction
255
+ D, [2019-11-12T09:48:22.397338 #25223] DEBUG -- :  (0.0ms) begin transaction
256
+ D, [2019-11-12T09:48:22.397644 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-nil' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
257
+ D, [2019-11-12T09:48:22.397914 #25223] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to nil"], ["url_slug", "updated-title-and-slug-to-nil"], ["id", 5]]
258
+ D, [2019-11-12T09:48:22.398004 #25223] DEBUG -- :  (0.0ms) commit transaction
259
+ D, [2019-11-12T09:48:22.398068 #25223] DEBUG -- :  (0.0ms) begin transaction
260
+ D, [2019-11-12T09:48:22.398328 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'updated-title-and-slug-to-empty' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
261
+ D, [2019-11-12T09:48:22.398560 #25223] DEBUG -- : SQL (0.0ms) UPDATE "pages" SET "title" = ?, "url_slug" = ? WHERE "pages"."id" = ? [["title", "Updated title and slug to empty"], ["url_slug", "updated-title-and-slug-to-empty"], ["id", 5]]
262
+ D, [2019-11-12T09:48:22.398648 #25223] DEBUG -- :  (0.0ms) commit transaction
263
+ D, [2019-11-12T09:48:22.398822 #25223] DEBUG -- :  (0.0ms) begin transaction
264
+ D, [2019-11-12T09:48:22.399045 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'new-page' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
265
+ D, [2019-11-12T09:48:22.399237 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "New Page"], ["url_slug", "new-page"]]
266
+ D, [2019-11-12T09:48:22.399345 #25223] DEBUG -- :  (0.0ms) commit transaction
267
+ D, [2019-11-12T09:48:22.399504 #25223] DEBUG -- :  (0.0ms) begin transaction
268
+ D, [2019-11-12T09:48:22.399726 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Test override"], ["url_slug", "something-different"]]
269
+ D, [2019-11-12T09:48:22.399835 #25223] DEBUG -- :  (0.0ms) commit transaction
270
+ D, [2019-11-12T09:48:22.400006 #25223] DEBUG -- :  (0.0ms) begin transaction
271
+ D, [2019-11-12T09:48:22.400227 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
272
+ D, [2019-11-12T09:48:22.400412 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title"], ["url_slug", "title"]]
273
+ D, [2019-11-12T09:48:22.400518 #25223] DEBUG -- :  (0.0ms) commit transaction
274
+ D, [2019-11-12T09:48:22.400652 #25223] DEBUG -- :  (0.0ms) begin transaction
275
+ D, [2019-11-12T09:48:22.400871 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-and-some-spaces' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
276
+ D, [2019-11-12T09:48:22.401049 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title and some spaces"], ["url_slug", "title-and-some-spaces"]]
277
+ D, [2019-11-12T09:48:22.401154 #25223] DEBUG -- :  (0.0ms) commit transaction
278
+ D, [2019-11-12T09:48:22.401284 #25223] DEBUG -- :  (0.0ms) begin transaction
279
+ D, [2019-11-12T09:48:22.401501 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-dashes' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
280
+ D, [2019-11-12T09:48:22.401678 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with-dashes"], ["url_slug", "title-with-dashes"]]
281
+ D, [2019-11-12T09:48:22.401783 #25223] DEBUG -- :  (0.0ms) commit transaction
282
+ D, [2019-11-12T09:48:22.401912 #25223] DEBUG -- :  (0.0ms) begin transaction
283
+ D, [2019-11-12T09:48:22.402130 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'title-with-symbols' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
284
+ D, [2019-11-12T09:48:22.402309 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "Title-with'-$#)(*%symbols"], ["url_slug", "title-with-symbols"]]
285
+ D, [2019-11-12T09:48:22.402413 #25223] DEBUG -- :  (0.0ms) commit transaction
286
+ D, [2019-11-12T09:48:22.402542 #25223] DEBUG -- :  (0.0ms) begin transaction
287
+ D, [2019-11-12T09:48:22.402756 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = '-urltitle-' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
288
+ D, [2019-11-12T09:48:22.402934 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "/urltitle/"], ["url_slug", "-urltitle-"]]
289
+ D, [2019-11-12T09:48:22.403039 #25223] DEBUG -- :  (0.0ms) commit transaction
290
+ D, [2019-11-12T09:48:22.403169 #25223] DEBUG -- :  (0.0ms) begin transaction
291
+ D, [2019-11-12T09:48:22.403420 #25223] DEBUG -- : Page Load (0.0ms) SELECT "pages".* FROM "pages" WHERE (url_slug = 'calcul-en-fran-aise' and parent_id IS NULL) ORDER BY "pages"."id" ASC LIMIT 1
292
+ D, [2019-11-12T09:48:22.403599 #25223] DEBUG -- : SQL (0.0ms) INSERT INTO "pages" ("title", "url_slug") VALUES (?, ?) [["title", "calculé en française"], ["url_slug", "calcul-en-fran-aise"]]
293
+ D, [2019-11-12T09:48:22.403710 #25223] DEBUG -- :  (0.0ms) commit transaction
@@ -0,0 +1,4 @@
1
+ class Page < ActiveRecord::Base
2
+ validates :title, presence: true, length: { minimum: 2}
3
+ acts_as_slugable source_column: :title, slug_column: :url_slug, scope: :parent
4
+ end
@@ -0,0 +1,7 @@
1
+ ActiveRecord::Schema.define(version: 0) do
2
+ create_table :pages, force: true do |t|
3
+ t.integer :parent_id
4
+ t.string :title, null: false
5
+ t.string :url_slug, null: false
6
+ end
7
+ end
@@ -0,0 +1,101 @@
1
+ require 'test_helper'
2
+ require 'fixtures/page'
3
+
4
+ class ActsAsSlugableTest < ActiveSupport::TestCase
5
+ # Initialize the TestSuit and run all steps required to configure
6
+ # the environment properly.
7
+ setup do
8
+ @allowable_characters = Regexp.new('^[A-Za-z0-9_-]+$')
9
+ end
10
+
11
+ # after_validation callback hooks should exist.
12
+ test 'hooks_presence' do
13
+ assert Page._validation_callbacks.select{ |cb| cb.kind.eql?(:after)}.collect(&:filter).include?(:create_slug)
14
+ assert Page._validation_callbacks.select{ |cb| cb.kind.eql?(:after)}.collect(&:filter).include?(:create_slug)
15
+ end
16
+
17
+ # Test whether the creation of the slug columns functions
18
+ test 'create' do
19
+ pg = Page.create(title: 'New Page')
20
+ assert pg.valid?
21
+ assert_equal 'new-page', pg.url_slug
22
+
23
+
24
+ pg = Page.create(title: 'Test override', parent_id: nil, url_slug: 'something-different')
25
+ assert pg.valid?
26
+ assert_equal 'something-different', pg.url_slug
27
+ end
28
+
29
+ # Test whether the model still runs validations
30
+ test 'model_still_runs_validations' do
31
+ pg = Page.create(title: nil)
32
+ assert !pg.valid?
33
+ assert pg.errors.get(:title)
34
+
35
+ pg = Page.create(title: '')
36
+ assert !pg.valid?
37
+ assert pg.errors.get(:title)
38
+ end
39
+
40
+ # Test the update method
41
+ test 'update' do
42
+ pg = Page.create(title: 'Original Page')
43
+ assert pg.valid?
44
+ assert_equal 'original-page', pg.url_slug
45
+
46
+ # update, with title
47
+ pg.update_attribute(:title, 'Updated title only')
48
+ assert_equal 'original-page', pg.url_slug
49
+
50
+ # update, with title and nil slug
51
+ pg.update_attributes(title: 'Updated title and slug to nil', url_slug: nil)
52
+ assert_equal 'updated-title-and-slug-to-nil', pg.url_slug
53
+
54
+ # update, with empty slug
55
+ pg.update_attributes(title: 'Updated title and slug to empty', url_slug: '')
56
+ assert_equal 'updated-title-and-slug-to-empty', pg.url_slug
57
+ end
58
+
59
+ # Test the uniqueness
60
+ test 'uniqueness' do
61
+ t = 'Unique title'
62
+
63
+ pg1 = Page.create(title: t, parent_id: 1)
64
+ assert pg1.valid?
65
+
66
+ pg2 = Page.create(title: t, parent_id: 1)
67
+ assert pg2.valid?
68
+
69
+ assert_not_equal pg1.url_slug, pg2.url_slug
70
+ end
71
+
72
+ # Test the Scope
73
+ test 'scope' do
74
+ t = 'Unique scoped title'
75
+
76
+ pg1 = Page.create(title: t, parent_id: 1)
77
+ assert pg1.valid?
78
+
79
+ pg2 = Page.create(title: t, parent_id: 2)
80
+ assert pg2.valid?
81
+
82
+ assert_equal pg1.url_slug, pg2.url_slug
83
+ end
84
+
85
+ # Test Character replacement
86
+ test 'characters' do
87
+ check_for_allowable_characters 'Title'
88
+ check_for_allowable_characters 'Title and some spaces'
89
+ check_for_allowable_characters 'Title-with-dashes'
90
+ check_for_allowable_characters "Title-with'-$#)(*%symbols"
91
+ check_for_allowable_characters '/urltitle/'
92
+ check_for_allowable_characters 'calculé en française'
93
+ end
94
+
95
+ private
96
+ def check_for_allowable_characters(title)
97
+ pg = Page.create(title: title)
98
+ assert pg.valid?
99
+ assert_match @allowable_characters, pg.url_slug
100
+ end
101
+ end
@@ -0,0 +1,31 @@
1
+ # Configure Rails Environment
2
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
3
+ ENV['RAILS_ENV'] = 'test'
4
+
5
+ require 'rails'
6
+ require 'rails/test_help'
7
+ require 'sqlite3'
8
+ require 'active_record'
9
+ require 'active_support'
10
+ require 'yaml'
11
+ require 'acts_as_slugable'
12
+
13
+ Rails.backtrace_cleaner.remove_silencers!
14
+
15
+ # Load support files
16
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
17
+
18
+ ActiveSupport::TestCase.test_order = :random
19
+
20
+ # Load fixtures from the engine
21
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
22
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
23
+ end
24
+
25
+ # run the database migrations
26
+ config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
27
+
28
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/debug.log')
29
+ ActiveRecord::Base.establish_connection(config[ENV['RAILS_ENV']])
30
+ load(File.dirname(__FILE__) + '/schema.rb')
31
+
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_slugable
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Arne De Herdt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-11-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: This gem is an attempt at converting an old Rails 2 plugin into a new
56
+ Gem.
57
+ email:
58
+ - arne.de.herdt@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - MIT-LICENSE
64
+ - README.rdoc
65
+ - Rakefile
66
+ - lib/acts_as_slugable.rb
67
+ - lib/acts_as_slugable/version.rb
68
+ - lib/tasks/slugable_tasks.rake
69
+ - test/database.yml
70
+ - test/debug.log
71
+ - test/fixtures/page.rb
72
+ - test/schema.rb
73
+ - test/slugable_test.rb
74
+ - test/test_helper.rb
75
+ homepage: ''
76
+ licenses:
77
+ - MIT
78
+ metadata: {}
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '2.1'
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ requirements: []
94
+ rubygems_version: 3.0.3
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: Gem that implements the old behavior of acts_as_slugable Rails Plugin.
98
+ test_files:
99
+ - test/test_helper.rb
100
+ - test/debug.log
101
+ - test/database.yml
102
+ - test/schema.rb
103
+ - test/fixtures/page.rb
104
+ - test/slugable_test.rb