slugs 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/Rakefile +5 -0
- data/lib/slugs.rb +36 -4
- data/lib/slugs/concern.rb +50 -0
- data/lib/slugs/configuration.rb +7 -0
- data/lib/slugs/extensions/action_dispatch/generator.rb +24 -0
- data/lib/slugs/extensions/action_dispatch/optimized_url_helper.rb +20 -0
- data/lib/slugs/extensions/active_record/base.rb +19 -0
- data/lib/slugs/railtie.rb +9 -1
- data/lib/slugs/version.rb +1 -1
- data/test/dummy/Rakefile +1 -2
- data/test/dummy/app/assets/javascripts/application.js +2 -2
- data/test/dummy/app/assets/stylesheets/application.css +6 -4
- data/test/dummy/app/models/category.rb +7 -0
- data/test/dummy/app/models/product.rb +8 -0
- data/test/dummy/app/models/shop.rb +5 -0
- data/test/dummy/app/models/user.rb +5 -0
- data/test/dummy/app/views/layouts/application.html.erb +9 -11
- data/test/dummy/bin/bundle +0 -0
- data/test/dummy/bin/rails +1 -1
- data/test/dummy/bin/rake +0 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +1 -1
- data/test/dummy/config/application.rb +3 -1
- data/test/dummy/config/boot.rb +1 -1
- data/test/dummy/config/database.yml +4 -22
- data/test/dummy/config/database.yml.travis +12 -0
- data/test/dummy/config/environment.rb +1 -1
- data/test/dummy/config/environments/development.rb +14 -2
- data/test/dummy/config/environments/production.rb +20 -25
- data/test/dummy/config/environments/test.rb +8 -10
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/mime_types.rb +1 -2
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/dummy/config/initializers/slugs.rb +5 -0
- data/test/dummy/config/routes.rb +2 -53
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/migrate/20161016174020_create_users.rb +9 -0
- data/test/dummy/db/migrate/20161016174126_create_shops.rb +8 -0
- data/test/dummy/db/migrate/20161016174202_create_products.rb +10 -0
- data/test/dummy/db/migrate/20161016174225_create_categories.rb +9 -0
- data/test/dummy/db/schema.rb +21 -26
- data/test/dummy/log/development.log +144 -0
- data/test/dummy/log/test.log +4190 -0
- data/test/dummy/public/404.html +20 -11
- data/test/dummy/public/422.html +20 -11
- data/test/dummy/public/500.html +19 -10
- data/test/records_test.rb +15 -103
- data/test/routes_test.rb +17 -0
- data/test/test_helper.rb +4 -12
- metadata +49 -54
- data/lib/slugs/active_record/base.rb +0 -82
- data/lib/slugs/active_record/finders.rb +0 -24
- data/lib/slugs/active_record/non_translatable.rb +0 -26
- data/lib/slugs/active_record/translatable.rb +0 -49
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/app/models/simple.rb +0 -5
- data/test/dummy/app/models/translatable.rb +0 -7
- data/test/dummy/app/models/translatable_translation.rb +0 -8
- data/test/dummy/app/models/without.rb +0 -2
- data/test/dummy/config/initializers/secret_token.rb +0 -13
- data/test/dummy/db/migrate/20130819183013_create_simples.rb +0 -11
- data/test/dummy/db/migrate/20130819183047_create_withouts.rb +0 -9
- data/test/dummy/db/migrate/20130819183119_create_translatables.rb +0 -8
- data/test/dummy/db/migrate/20130819183257_create_translatable_translations.rb +0 -15
data/test/dummy/public/404.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,9 +57,11 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/404.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
54
|
-
|
60
|
+
<div>
|
61
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
62
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
55
65
|
</div>
|
56
|
-
<p>If you are the application owner check the logs for more information.</p>
|
57
66
|
</body>
|
58
67
|
</html>
|
data/test/dummy/public/422.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,9 +57,11 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/422.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
54
|
-
|
60
|
+
<div>
|
61
|
+
<h1>The change you wanted was rejected.</h1>
|
62
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
55
65
|
</div>
|
56
|
-
<p>If you are the application owner check the logs for more information.</p>
|
57
66
|
</body>
|
58
67
|
</html>
|
data/test/dummy/public/500.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,8 +57,10 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/500.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
60
|
+
<div>
|
61
|
+
<h1>We're sorry, but something went wrong.</h1>
|
62
|
+
</div>
|
63
|
+
<p>If you are the application owner check the logs for more information.</p>
|
54
64
|
</div>
|
55
|
-
<p>If you are the application owner check the logs for more information.</p>
|
56
65
|
</body>
|
57
66
|
</html>
|
data/test/records_test.rb
CHANGED
@@ -2,114 +2,26 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class RecordsTest < ActiveSupport::TestCase
|
4
4
|
|
5
|
-
test '
|
6
|
-
|
7
|
-
|
8
|
-
assert Translatable.new.valid?
|
9
|
-
end
|
10
|
-
|
11
|
-
test 'models' do
|
12
|
-
assert_equal 'name', without.name
|
13
|
-
assert_equal without, Without.find('1')
|
14
|
-
assert_equal without, Without.find(1)
|
15
|
-
end
|
16
|
-
|
17
|
-
test 'slug creation' do
|
18
|
-
assert_equal 'name', simple.slug
|
19
|
-
assert_equal simple, Simple.slugged.find('name')
|
20
|
-
|
21
|
-
assert_equal 'translatable-name', translatable.slug
|
22
|
-
assert_equal translatable, Translatable.slugged.find('translatable-name')
|
23
|
-
end
|
24
|
-
|
25
|
-
test 'slug edition' do
|
26
|
-
simple.name = 'new name'
|
27
|
-
simple.save!
|
28
|
-
assert_equal 'new-name', simple.slug
|
29
|
-
assert_equal simple, Simple.slugged.find('new-name')
|
30
|
-
|
31
|
-
translatable.name = 'new translatable name'
|
32
|
-
translatable.save!
|
33
|
-
assert_equal 'new-translatable-name', translatable.slug
|
34
|
-
assert_equal translatable, Translatable.slugged.find('new-translatable-name')
|
35
|
-
end
|
36
|
-
|
37
|
-
test 'direct assigned slug' do
|
38
|
-
simple.slug = 'direct slug'
|
39
|
-
simple.save!
|
40
|
-
assert_equal 'direct slug', simple.slug
|
41
|
-
assert_equal simple, Simple.slugged.find('direct slug')
|
42
|
-
|
43
|
-
translatable.slug = 'translatable direct slug'
|
44
|
-
translatable.save!
|
45
|
-
assert_equal 'translatable direct slug', translatable.slug
|
46
|
-
assert_equal translatable, Translatable.slugged.find('translatable direct slug')
|
47
|
-
end
|
48
|
-
|
49
|
-
test 'not readonly records' do
|
50
|
-
Simple.create! name: 'editable'
|
51
|
-
assert !Simple.slugged.find('editable').readonly?
|
5
|
+
test 'save' do
|
6
|
+
user = User.create(first_name: 'Zakk', last_name: 'Wylde')
|
7
|
+
assert_equal 'zakk-wylde', user.slug
|
52
8
|
|
53
|
-
|
54
|
-
|
9
|
+
user.update slug: 'yngwie-malmsteen'
|
10
|
+
assert_equal 'yngwie-malmsteen', user.slug
|
55
11
|
end
|
56
12
|
|
57
|
-
test '
|
58
|
-
|
59
|
-
|
13
|
+
test 'uniqueness' do
|
14
|
+
2.times { Shop.create(name: 'Guitar Shop') }
|
15
|
+
shop = Shop.last
|
16
|
+
assert_equal "guitar-shop-#{shop.id}", shop.slug
|
60
17
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
second = Simple.create!(name: 'same', age: 45)
|
65
|
-
assert_equal 'same-21', second.slug
|
66
|
-
third = Simple.create!(name: 'same', age: 234)
|
67
|
-
assert_equal 'same-22', third.slug
|
68
|
-
|
69
|
-
first.name = 'same'
|
70
|
-
first.save!
|
71
|
-
assert_equal 'same', first.slug
|
72
|
-
second.name = 'same'
|
73
|
-
second.save!
|
74
|
-
assert_equal 'same-23', second.slug
|
75
|
-
third.name = 'other'
|
76
|
-
third.save!
|
77
|
-
assert_equal 'other', third.slug
|
78
|
-
|
79
|
-
first = Translatable.create!(name: 'same', age: 34)
|
80
|
-
assert_equal 'same', first.slug
|
81
|
-
|
82
|
-
Translatable.create!(name: 'same-larger', age: 10)
|
83
|
-
20.times { Translatable.create!(name: 'same', age: 10) }
|
84
|
-
|
85
|
-
second = Translatable.create!(name: 'same', age: 45)
|
86
|
-
assert_equal 'same-21', second.slug
|
87
|
-
third = Translatable.create!(name: 'same', age: 234)
|
88
|
-
assert_equal 'same-22', third.slug
|
89
|
-
|
90
|
-
first.name = 'same'
|
91
|
-
first.save!
|
92
|
-
assert_equal 'same', first.slug
|
93
|
-
second.name = 'same'
|
94
|
-
second.save!
|
95
|
-
assert_equal 'same-23', second.slug
|
96
|
-
third.name = 'other'
|
97
|
-
third.save!
|
98
|
-
assert_equal 'other', third.slug
|
99
|
-
end
|
100
|
-
|
101
|
-
private
|
102
|
-
|
103
|
-
def simple
|
104
|
-
@simple ||= Simple.create!(name: 'name', age: 14)
|
105
|
-
end
|
106
|
-
|
107
|
-
def without
|
108
|
-
@without ||= Without.create!(name: 'name')
|
109
|
-
end
|
18
|
+
2.times { Category.create(name: 'Gibson', shop: shop) }
|
19
|
+
category = Category.last
|
20
|
+
assert_equal "gibson-#{category.id}", category.slug
|
110
21
|
|
111
|
-
|
112
|
-
|
22
|
+
2.times { Product.create(name: 'Les Paul', shop: shop, category: category) }
|
23
|
+
product = Product.last
|
24
|
+
assert_equal "les-paul-#{product.id}", product.slug
|
113
25
|
end
|
114
26
|
|
115
27
|
end
|
data/test/routes_test.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RoutesTest < ActionDispatch::IntegrationTest
|
4
|
+
|
5
|
+
setup do
|
6
|
+
@shop = Shop.create(name: 'Guitar Shop')
|
7
|
+
end
|
8
|
+
|
9
|
+
test 'generator' do
|
10
|
+
assert_equal '/shops/guitar-shop?page=3', shop_path(@shop, page: 3)
|
11
|
+
end
|
12
|
+
|
13
|
+
test 'optimized url helper' do
|
14
|
+
assert_equal '/shops/guitar-shop', shop_path(@shop)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -2,20 +2,12 @@
|
|
2
2
|
ENV['RAILS_ENV'] = 'test'
|
3
3
|
|
4
4
|
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
5
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path('../dummy/db/migrate', __FILE__)]
|
5
6
|
require 'rails/test_help'
|
6
7
|
|
7
|
-
|
8
|
+
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
9
|
+
# to be shown.
|
10
|
+
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
8
11
|
|
9
12
|
# Load support files
|
10
13
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
-
|
12
|
-
# Load fixtures from the engine
|
13
|
-
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
14
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Load database
|
18
|
-
config = YAML::load(File.read(File.expand_path('../dummy/config/database.yml', __FILE__)))
|
19
|
-
config['test']['adapter'] = 'jdbcsqlite3' if RUBY_PLATFORM == 'java'
|
20
|
-
ActiveRecord::Base.establish_connection(config['test'])
|
21
|
-
load(File.expand_path('../dummy/db/schema.rb', __FILE__))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slugs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmontossi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
19
|
+
version: 4.2.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.3.0
|
@@ -26,45 +26,25 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 4.
|
29
|
+
version: 4.2.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.3.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: pg
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 1.1.4
|
43
|
-
type: :development
|
44
|
-
prerelease: false
|
45
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '1.1'
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 1.1.4
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: sqlite3
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '1.3'
|
39
|
+
version: '0.18'
|
60
40
|
type: :development
|
61
41
|
prerelease: false
|
62
42
|
version_requirements: !ruby/object:Gem::Requirement
|
63
43
|
requirements:
|
64
44
|
- - "~>"
|
65
45
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
67
|
-
description:
|
46
|
+
version: '0.18'
|
47
|
+
description: Manages slugs for records with minimal efford in rails.
|
68
48
|
email:
|
69
49
|
- mmontossi@buyin.io
|
70
50
|
executables: []
|
@@ -75,53 +55,61 @@ files:
|
|
75
55
|
- README.md
|
76
56
|
- Rakefile
|
77
57
|
- lib/slugs.rb
|
78
|
-
- lib/slugs/
|
79
|
-
- lib/slugs/
|
80
|
-
- lib/slugs/
|
81
|
-
- lib/slugs/
|
58
|
+
- lib/slugs/concern.rb
|
59
|
+
- lib/slugs/configuration.rb
|
60
|
+
- lib/slugs/extensions/action_dispatch/generator.rb
|
61
|
+
- lib/slugs/extensions/action_dispatch/optimized_url_helper.rb
|
62
|
+
- lib/slugs/extensions/active_record/base.rb
|
82
63
|
- lib/slugs/railtie.rb
|
83
64
|
- lib/slugs/version.rb
|
84
|
-
- test/dummy/README.rdoc
|
85
65
|
- test/dummy/Rakefile
|
86
66
|
- test/dummy/app/assets/javascripts/application.js
|
87
67
|
- test/dummy/app/assets/stylesheets/application.css
|
88
68
|
- test/dummy/app/controllers/application_controller.rb
|
89
69
|
- test/dummy/app/helpers/application_helper.rb
|
90
|
-
- test/dummy/app/models/
|
91
|
-
- test/dummy/app/models/
|
92
|
-
- test/dummy/app/models/
|
93
|
-
- test/dummy/app/models/
|
70
|
+
- test/dummy/app/models/category.rb
|
71
|
+
- test/dummy/app/models/product.rb
|
72
|
+
- test/dummy/app/models/shop.rb
|
73
|
+
- test/dummy/app/models/user.rb
|
94
74
|
- test/dummy/app/views/layouts/application.html.erb
|
95
75
|
- test/dummy/bin/bundle
|
96
76
|
- test/dummy/bin/rails
|
97
77
|
- test/dummy/bin/rake
|
78
|
+
- test/dummy/bin/setup
|
98
79
|
- test/dummy/config.ru
|
99
80
|
- test/dummy/config/application.rb
|
100
81
|
- test/dummy/config/boot.rb
|
101
82
|
- test/dummy/config/database.yml
|
83
|
+
- test/dummy/config/database.yml.travis
|
102
84
|
- test/dummy/config/environment.rb
|
103
85
|
- test/dummy/config/environments/development.rb
|
104
86
|
- test/dummy/config/environments/production.rb
|
105
87
|
- test/dummy/config/environments/test.rb
|
88
|
+
- test/dummy/config/initializers/assets.rb
|
106
89
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
90
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
107
91
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
108
92
|
- test/dummy/config/initializers/inflections.rb
|
109
93
|
- test/dummy/config/initializers/mime_types.rb
|
110
|
-
- test/dummy/config/initializers/secret_token.rb
|
111
94
|
- test/dummy/config/initializers/session_store.rb
|
95
|
+
- test/dummy/config/initializers/slugs.rb
|
112
96
|
- test/dummy/config/initializers/wrap_parameters.rb
|
113
97
|
- test/dummy/config/locales/en.yml
|
114
98
|
- test/dummy/config/routes.rb
|
115
|
-
- test/dummy/
|
116
|
-
- test/dummy/db/migrate/
|
117
|
-
- test/dummy/db/migrate/
|
118
|
-
- test/dummy/db/migrate/
|
99
|
+
- test/dummy/config/secrets.yml
|
100
|
+
- test/dummy/db/migrate/20161016174020_create_users.rb
|
101
|
+
- test/dummy/db/migrate/20161016174126_create_shops.rb
|
102
|
+
- test/dummy/db/migrate/20161016174202_create_products.rb
|
103
|
+
- test/dummy/db/migrate/20161016174225_create_categories.rb
|
119
104
|
- test/dummy/db/schema.rb
|
105
|
+
- test/dummy/log/development.log
|
106
|
+
- test/dummy/log/test.log
|
120
107
|
- test/dummy/public/404.html
|
121
108
|
- test/dummy/public/422.html
|
122
109
|
- test/dummy/public/500.html
|
123
110
|
- test/dummy/public/favicon.ico
|
124
111
|
- test/records_test.rb
|
112
|
+
- test/routes_test.rb
|
125
113
|
- test/test_helper.rb
|
126
114
|
homepage: https://github.com/mmontossi/slugs
|
127
115
|
licenses:
|
@@ -135,7 +123,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
123
|
requirements:
|
136
124
|
- - ">="
|
137
125
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
126
|
+
version: 2.0.0
|
139
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
128
|
requirements:
|
141
129
|
- - ">="
|
@@ -143,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
131
|
version: '0'
|
144
132
|
requirements: []
|
145
133
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
134
|
+
rubygems_version: 2.5.1
|
147
135
|
signing_key:
|
148
136
|
specification_version: 4
|
149
137
|
summary: Slugs for rails.
|
@@ -152,41 +140,48 @@ test_files:
|
|
152
140
|
- test/dummy/app/assets/stylesheets/application.css
|
153
141
|
- test/dummy/app/controllers/application_controller.rb
|
154
142
|
- test/dummy/app/helpers/application_helper.rb
|
155
|
-
- test/dummy/app/models/
|
156
|
-
- test/dummy/app/models/
|
157
|
-
- test/dummy/app/models/
|
158
|
-
- test/dummy/app/models/
|
143
|
+
- test/dummy/app/models/category.rb
|
144
|
+
- test/dummy/app/models/product.rb
|
145
|
+
- test/dummy/app/models/shop.rb
|
146
|
+
- test/dummy/app/models/user.rb
|
159
147
|
- test/dummy/app/views/layouts/application.html.erb
|
160
148
|
- test/dummy/bin/bundle
|
161
149
|
- test/dummy/bin/rails
|
162
150
|
- test/dummy/bin/rake
|
151
|
+
- test/dummy/bin/setup
|
163
152
|
- test/dummy/config/application.rb
|
164
153
|
- test/dummy/config/boot.rb
|
165
154
|
- test/dummy/config/database.yml
|
155
|
+
- test/dummy/config/database.yml.travis
|
166
156
|
- test/dummy/config/environment.rb
|
167
157
|
- test/dummy/config/environments/development.rb
|
168
158
|
- test/dummy/config/environments/production.rb
|
169
159
|
- test/dummy/config/environments/test.rb
|
160
|
+
- test/dummy/config/initializers/assets.rb
|
170
161
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
162
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
171
163
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
172
164
|
- test/dummy/config/initializers/inflections.rb
|
173
165
|
- test/dummy/config/initializers/mime_types.rb
|
174
|
-
- test/dummy/config/initializers/secret_token.rb
|
175
166
|
- test/dummy/config/initializers/session_store.rb
|
167
|
+
- test/dummy/config/initializers/slugs.rb
|
176
168
|
- test/dummy/config/initializers/wrap_parameters.rb
|
177
169
|
- test/dummy/config/locales/en.yml
|
178
170
|
- test/dummy/config/routes.rb
|
171
|
+
- test/dummy/config/secrets.yml
|
179
172
|
- test/dummy/config.ru
|
180
|
-
- test/dummy/db/migrate/
|
181
|
-
- test/dummy/db/migrate/
|
182
|
-
- test/dummy/db/migrate/
|
183
|
-
- test/dummy/db/migrate/
|
173
|
+
- test/dummy/db/migrate/20161016174020_create_users.rb
|
174
|
+
- test/dummy/db/migrate/20161016174126_create_shops.rb
|
175
|
+
- test/dummy/db/migrate/20161016174202_create_products.rb
|
176
|
+
- test/dummy/db/migrate/20161016174225_create_categories.rb
|
184
177
|
- test/dummy/db/schema.rb
|
178
|
+
- test/dummy/log/development.log
|
179
|
+
- test/dummy/log/test.log
|
185
180
|
- test/dummy/public/404.html
|
186
181
|
- test/dummy/public/422.html
|
187
182
|
- test/dummy/public/500.html
|
188
183
|
- test/dummy/public/favicon.ico
|
189
184
|
- test/dummy/Rakefile
|
190
|
-
- test/dummy/README.rdoc
|
191
185
|
- test/records_test.rb
|
186
|
+
- test/routes_test.rb
|
192
187
|
- test/test_helper.rb
|