acts_as_slugable 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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