friendly_slug 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -10
  3. data/friendly_slug_gem_test/.gitignore +30 -0
  4. data/friendly_slug_gem_test/.ruby-version +1 -0
  5. data/friendly_slug_gem_test/Gemfile +32 -0
  6. data/friendly_slug_gem_test/Gemfile.lock +222 -0
  7. data/friendly_slug_gem_test/README.md +24 -0
  8. data/friendly_slug_gem_test/Rakefile +6 -0
  9. data/friendly_slug_gem_test/app/assets/config/manifest.js +3 -0
  10. data/friendly_slug_gem_test/app/assets/images/.keep +0 -0
  11. data/friendly_slug_gem_test/app/assets/javascripts/application.js +16 -0
  12. data/friendly_slug_gem_test/app/assets/javascripts/blogs.coffee +3 -0
  13. data/friendly_slug_gem_test/app/assets/javascripts/cable.js +13 -0
  14. data/friendly_slug_gem_test/app/assets/javascripts/channels/.keep +0 -0
  15. data/friendly_slug_gem_test/app/assets/stylesheets/application.css +15 -0
  16. data/friendly_slug_gem_test/app/assets/stylesheets/blogs.scss +3 -0
  17. data/friendly_slug_gem_test/app/assets/stylesheets/scaffolds.scss +84 -0
  18. data/friendly_slug_gem_test/app/channels/application_cable/channel.rb +4 -0
  19. data/friendly_slug_gem_test/app/channels/application_cable/connection.rb +4 -0
  20. data/friendly_slug_gem_test/app/controllers/application_controller.rb +2 -0
  21. data/friendly_slug_gem_test/app/controllers/blogs_controller.rb +60 -0
  22. data/friendly_slug_gem_test/app/controllers/concerns/.keep +0 -0
  23. data/friendly_slug_gem_test/app/helpers/application_helper.rb +2 -0
  24. data/friendly_slug_gem_test/app/helpers/blogs_helper.rb +2 -0
  25. data/friendly_slug_gem_test/app/jobs/application_job.rb +2 -0
  26. data/friendly_slug_gem_test/app/mailers/application_mailer.rb +4 -0
  27. data/friendly_slug_gem_test/app/models/application_record.rb +3 -0
  28. data/friendly_slug_gem_test/app/models/blog.rb +3 -0
  29. data/friendly_slug_gem_test/app/models/concerns/.keep +0 -0
  30. data/friendly_slug_gem_test/app/views/blogs/_blog.json.jbuilder +2 -0
  31. data/friendly_slug_gem_test/app/views/blogs/_form.html.erb +32 -0
  32. data/friendly_slug_gem_test/app/views/blogs/edit.html.erb +6 -0
  33. data/friendly_slug_gem_test/app/views/blogs/index.html.erb +31 -0
  34. data/friendly_slug_gem_test/app/views/blogs/index.json.jbuilder +1 -0
  35. data/friendly_slug_gem_test/app/views/blogs/new.html.erb +5 -0
  36. data/friendly_slug_gem_test/app/views/blogs/show.html.erb +19 -0
  37. data/friendly_slug_gem_test/app/views/blogs/show.json.jbuilder +1 -0
  38. data/friendly_slug_gem_test/app/views/layouts/application.html.erb +15 -0
  39. data/friendly_slug_gem_test/app/views/layouts/mailer.html.erb +13 -0
  40. data/friendly_slug_gem_test/app/views/layouts/mailer.text.erb +1 -0
  41. data/friendly_slug_gem_test/bin/bundle +3 -0
  42. data/friendly_slug_gem_test/bin/rails +9 -0
  43. data/friendly_slug_gem_test/bin/rake +9 -0
  44. data/friendly_slug_gem_test/bin/setup +36 -0
  45. data/friendly_slug_gem_test/bin/spring +17 -0
  46. data/friendly_slug_gem_test/bin/update +31 -0
  47. data/friendly_slug_gem_test/bin/yarn +11 -0
  48. data/friendly_slug_gem_test/config.ru +5 -0
  49. data/friendly_slug_gem_test/config/application.rb +20 -0
  50. data/friendly_slug_gem_test/config/boot.rb +4 -0
  51. data/friendly_slug_gem_test/config/cable.yml +10 -0
  52. data/friendly_slug_gem_test/config/credentials.yml.enc +1 -0
  53. data/friendly_slug_gem_test/config/database.yml +25 -0
  54. data/friendly_slug_gem_test/config/environment.rb +5 -0
  55. data/friendly_slug_gem_test/config/environments/development.rb +61 -0
  56. data/friendly_slug_gem_test/config/environments/production.rb +94 -0
  57. data/friendly_slug_gem_test/config/environments/test.rb +46 -0
  58. data/friendly_slug_gem_test/config/initializers/application_controller_renderer.rb +8 -0
  59. data/friendly_slug_gem_test/config/initializers/assets.rb +14 -0
  60. data/friendly_slug_gem_test/config/initializers/backtrace_silencers.rb +7 -0
  61. data/friendly_slug_gem_test/config/initializers/content_security_policy.rb +25 -0
  62. data/friendly_slug_gem_test/config/initializers/cookies_serializer.rb +5 -0
  63. data/friendly_slug_gem_test/config/initializers/filter_parameter_logging.rb +4 -0
  64. data/friendly_slug_gem_test/config/initializers/inflections.rb +16 -0
  65. data/friendly_slug_gem_test/config/initializers/mime_types.rb +4 -0
  66. data/friendly_slug_gem_test/config/initializers/wrap_parameters.rb +14 -0
  67. data/friendly_slug_gem_test/config/locales/en.yml +33 -0
  68. data/friendly_slug_gem_test/config/puma.rb +34 -0
  69. data/friendly_slug_gem_test/config/routes.rb +4 -0
  70. data/friendly_slug_gem_test/config/spring.rb +6 -0
  71. data/friendly_slug_gem_test/config/storage.yml +34 -0
  72. data/friendly_slug_gem_test/db/migrate/20180628233122_create_blogs.rb +11 -0
  73. data/friendly_slug_gem_test/db/schema.rb +23 -0
  74. data/friendly_slug_gem_test/db/seeds.rb +7 -0
  75. data/friendly_slug_gem_test/lib/assets/.keep +0 -0
  76. data/friendly_slug_gem_test/lib/tasks/.keep +0 -0
  77. data/friendly_slug_gem_test/log/.keep +0 -0
  78. data/friendly_slug_gem_test/package.json +5 -0
  79. data/friendly_slug_gem_test/public/404.html +67 -0
  80. data/friendly_slug_gem_test/public/422.html +67 -0
  81. data/friendly_slug_gem_test/public/500.html +66 -0
  82. data/friendly_slug_gem_test/public/apple-touch-icon-precomposed.png +0 -0
  83. data/friendly_slug_gem_test/public/apple-touch-icon.png +0 -0
  84. data/friendly_slug_gem_test/public/favicon.ico +0 -0
  85. data/friendly_slug_gem_test/public/robots.txt +1 -0
  86. data/friendly_slug_gem_test/test/application_system_test_case.rb +5 -0
  87. data/friendly_slug_gem_test/test/controllers/.keep +0 -0
  88. data/friendly_slug_gem_test/test/controllers/blogs_controller_test.rb +48 -0
  89. data/friendly_slug_gem_test/test/fixtures/.keep +0 -0
  90. data/friendly_slug_gem_test/test/fixtures/blogs.yml +17 -0
  91. data/friendly_slug_gem_test/test/fixtures/files/.keep +0 -0
  92. data/friendly_slug_gem_test/test/helpers/.keep +0 -0
  93. data/friendly_slug_gem_test/test/integration/.keep +0 -0
  94. data/friendly_slug_gem_test/test/integration/main_slug_test.rb +14 -0
  95. data/friendly_slug_gem_test/test/mailers/.keep +0 -0
  96. data/friendly_slug_gem_test/test/models/.keep +0 -0
  97. data/friendly_slug_gem_test/test/models/blog_test.rb +9 -0
  98. data/friendly_slug_gem_test/test/system/.keep +0 -0
  99. data/friendly_slug_gem_test/test/system/blogs_test.rb +47 -0
  100. data/friendly_slug_gem_test/test/test_helper.rb +22 -0
  101. data/friendly_slug_gem_test/tmp/.keep +0 -0
  102. data/friendly_slug_gem_test/vendor/.keep +0 -0
  103. data/lib/friendly_slug/active_record/base.rb +10 -1
  104. data/lib/friendly_slug/version.rb +1 -1
  105. metadata +102 -2
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class BlogTest < ActiveSupport::TestCase
4
+ Blog.all.each do |blog|
5
+ test "friendly slug filters out ##{blog.id} title" do
6
+ assert_equal(blog.to_param, TestAnswers::TEST_ANSWERS[blog.id])
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,47 @@
1
+ require "application_system_test_case"
2
+
3
+ class BlogsTest < ApplicationSystemTestCase
4
+ setup do
5
+ @blog = blogs(:one)
6
+ end
7
+
8
+ test "visiting the index" do
9
+ visit blogs_url
10
+ assert_selector "h1", text: "Blogs"
11
+ end
12
+
13
+ test "creating a Blog" do
14
+ visit blogs_url
15
+ click_on "New Blog"
16
+
17
+ fill_in "Body", with: @blog.body
18
+ fill_in "Title", with: @blog.title
19
+ fill_in "Views", with: @blog.views
20
+ click_on "Create Blog"
21
+
22
+ assert_text "Blog was successfully created"
23
+ click_on "Back"
24
+ end
25
+
26
+ test "updating a Blog" do
27
+ visit blogs_url
28
+ click_on "Edit", match: :first
29
+
30
+ fill_in "Body", with: @blog.body
31
+ fill_in "Title", with: @blog.title
32
+ fill_in "Views", with: @blog.views
33
+ click_on "Update Blog"
34
+
35
+ assert_text "Blog was successfully updated"
36
+ click_on "Back"
37
+ end
38
+
39
+ test "destroying a Blog" do
40
+ visit blogs_url
41
+ page.accept_confirm do
42
+ click_on "Destroy", match: :first
43
+ end
44
+
45
+ assert_text "Blog was successfully destroyed"
46
+ end
47
+ end
@@ -0,0 +1,22 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ require_relative '../config/environment'
3
+ require 'rails/test_help'
4
+ require 'database_cleaner'
5
+
6
+ class ActiveSupport::TestCase
7
+ ActiveRecord::Migration.check_pending!
8
+ fixtures :all
9
+ end
10
+
11
+ class ActionDispatch::IntegrationTest
12
+ DatabaseCleaner.strategy = :truncation
13
+ end
14
+
15
+ module TestAnswers
16
+ TEST_ANSWERS = [
17
+ "",
18
+ "this-is-the-greatest-post-23_-asf-1",
19
+ "just-a-normal-for-15-test-string-2",
20
+ "just-george-normal-for-15-test-string-3",
21
+ ]
22
+ end
File without changes
File without changes
@@ -1,9 +1,10 @@
1
1
  module FriendlySlug
2
2
  module ActiveRecord
3
3
  module Base
4
- def build_friendly_slug(first_attribute_key, second_attribute_key)
4
+ def build_friendly_slug(first_attribute_key, second_attribute_key, use: nil)
5
5
  instance_variable_set("@first_attribute_key", first_attribute_key)
6
6
  instance_variable_set("@second_attribute_key", second_attribute_key)
7
+ instance_variable_set("@use_key", use)
7
8
 
8
9
  instance_eval do
9
10
  def first_attribute_key
@@ -13,6 +14,14 @@ module FriendlySlug
13
14
  def second_attribute_key
14
15
  @second_attribute_key
15
16
  end
17
+
18
+ def use_key
19
+ @use_key
20
+ end
21
+
22
+ def find_slugged(id)
23
+ find(id.split("-").send(use_key))
24
+ end
16
25
  end
17
26
 
18
27
  class_eval do
@@ -1,3 +1,3 @@
1
1
  module FriendlySlug
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friendly_slug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Holst
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-28 00:00:00.000000000 Z
11
+ date: 2018-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -75,6 +75,106 @@ files:
75
75
  - bin/console
76
76
  - bin/setup
77
77
  - friendly_slug.gemspec
78
+ - friendly_slug_gem_test/.gitignore
79
+ - friendly_slug_gem_test/.ruby-version
80
+ - friendly_slug_gem_test/Gemfile
81
+ - friendly_slug_gem_test/Gemfile.lock
82
+ - friendly_slug_gem_test/README.md
83
+ - friendly_slug_gem_test/Rakefile
84
+ - friendly_slug_gem_test/app/assets/config/manifest.js
85
+ - friendly_slug_gem_test/app/assets/images/.keep
86
+ - friendly_slug_gem_test/app/assets/javascripts/application.js
87
+ - friendly_slug_gem_test/app/assets/javascripts/blogs.coffee
88
+ - friendly_slug_gem_test/app/assets/javascripts/cable.js
89
+ - friendly_slug_gem_test/app/assets/javascripts/channels/.keep
90
+ - friendly_slug_gem_test/app/assets/stylesheets/application.css
91
+ - friendly_slug_gem_test/app/assets/stylesheets/blogs.scss
92
+ - friendly_slug_gem_test/app/assets/stylesheets/scaffolds.scss
93
+ - friendly_slug_gem_test/app/channels/application_cable/channel.rb
94
+ - friendly_slug_gem_test/app/channels/application_cable/connection.rb
95
+ - friendly_slug_gem_test/app/controllers/application_controller.rb
96
+ - friendly_slug_gem_test/app/controllers/blogs_controller.rb
97
+ - friendly_slug_gem_test/app/controllers/concerns/.keep
98
+ - friendly_slug_gem_test/app/helpers/application_helper.rb
99
+ - friendly_slug_gem_test/app/helpers/blogs_helper.rb
100
+ - friendly_slug_gem_test/app/jobs/application_job.rb
101
+ - friendly_slug_gem_test/app/mailers/application_mailer.rb
102
+ - friendly_slug_gem_test/app/models/application_record.rb
103
+ - friendly_slug_gem_test/app/models/blog.rb
104
+ - friendly_slug_gem_test/app/models/concerns/.keep
105
+ - friendly_slug_gem_test/app/views/blogs/_blog.json.jbuilder
106
+ - friendly_slug_gem_test/app/views/blogs/_form.html.erb
107
+ - friendly_slug_gem_test/app/views/blogs/edit.html.erb
108
+ - friendly_slug_gem_test/app/views/blogs/index.html.erb
109
+ - friendly_slug_gem_test/app/views/blogs/index.json.jbuilder
110
+ - friendly_slug_gem_test/app/views/blogs/new.html.erb
111
+ - friendly_slug_gem_test/app/views/blogs/show.html.erb
112
+ - friendly_slug_gem_test/app/views/blogs/show.json.jbuilder
113
+ - friendly_slug_gem_test/app/views/layouts/application.html.erb
114
+ - friendly_slug_gem_test/app/views/layouts/mailer.html.erb
115
+ - friendly_slug_gem_test/app/views/layouts/mailer.text.erb
116
+ - friendly_slug_gem_test/bin/bundle
117
+ - friendly_slug_gem_test/bin/rails
118
+ - friendly_slug_gem_test/bin/rake
119
+ - friendly_slug_gem_test/bin/setup
120
+ - friendly_slug_gem_test/bin/spring
121
+ - friendly_slug_gem_test/bin/update
122
+ - friendly_slug_gem_test/bin/yarn
123
+ - friendly_slug_gem_test/config.ru
124
+ - friendly_slug_gem_test/config/application.rb
125
+ - friendly_slug_gem_test/config/boot.rb
126
+ - friendly_slug_gem_test/config/cable.yml
127
+ - friendly_slug_gem_test/config/credentials.yml.enc
128
+ - friendly_slug_gem_test/config/database.yml
129
+ - friendly_slug_gem_test/config/environment.rb
130
+ - friendly_slug_gem_test/config/environments/development.rb
131
+ - friendly_slug_gem_test/config/environments/production.rb
132
+ - friendly_slug_gem_test/config/environments/test.rb
133
+ - friendly_slug_gem_test/config/initializers/application_controller_renderer.rb
134
+ - friendly_slug_gem_test/config/initializers/assets.rb
135
+ - friendly_slug_gem_test/config/initializers/backtrace_silencers.rb
136
+ - friendly_slug_gem_test/config/initializers/content_security_policy.rb
137
+ - friendly_slug_gem_test/config/initializers/cookies_serializer.rb
138
+ - friendly_slug_gem_test/config/initializers/filter_parameter_logging.rb
139
+ - friendly_slug_gem_test/config/initializers/inflections.rb
140
+ - friendly_slug_gem_test/config/initializers/mime_types.rb
141
+ - friendly_slug_gem_test/config/initializers/wrap_parameters.rb
142
+ - friendly_slug_gem_test/config/locales/en.yml
143
+ - friendly_slug_gem_test/config/puma.rb
144
+ - friendly_slug_gem_test/config/routes.rb
145
+ - friendly_slug_gem_test/config/spring.rb
146
+ - friendly_slug_gem_test/config/storage.yml
147
+ - friendly_slug_gem_test/db/migrate/20180628233122_create_blogs.rb
148
+ - friendly_slug_gem_test/db/schema.rb
149
+ - friendly_slug_gem_test/db/seeds.rb
150
+ - friendly_slug_gem_test/lib/assets/.keep
151
+ - friendly_slug_gem_test/lib/tasks/.keep
152
+ - friendly_slug_gem_test/log/.keep
153
+ - friendly_slug_gem_test/package.json
154
+ - friendly_slug_gem_test/public/404.html
155
+ - friendly_slug_gem_test/public/422.html
156
+ - friendly_slug_gem_test/public/500.html
157
+ - friendly_slug_gem_test/public/apple-touch-icon-precomposed.png
158
+ - friendly_slug_gem_test/public/apple-touch-icon.png
159
+ - friendly_slug_gem_test/public/favicon.ico
160
+ - friendly_slug_gem_test/public/robots.txt
161
+ - friendly_slug_gem_test/test/application_system_test_case.rb
162
+ - friendly_slug_gem_test/test/controllers/.keep
163
+ - friendly_slug_gem_test/test/controllers/blogs_controller_test.rb
164
+ - friendly_slug_gem_test/test/fixtures/.keep
165
+ - friendly_slug_gem_test/test/fixtures/blogs.yml
166
+ - friendly_slug_gem_test/test/fixtures/files/.keep
167
+ - friendly_slug_gem_test/test/helpers/.keep
168
+ - friendly_slug_gem_test/test/integration/.keep
169
+ - friendly_slug_gem_test/test/integration/main_slug_test.rb
170
+ - friendly_slug_gem_test/test/mailers/.keep
171
+ - friendly_slug_gem_test/test/models/.keep
172
+ - friendly_slug_gem_test/test/models/blog_test.rb
173
+ - friendly_slug_gem_test/test/system/.keep
174
+ - friendly_slug_gem_test/test/system/blogs_test.rb
175
+ - friendly_slug_gem_test/test/test_helper.rb
176
+ - friendly_slug_gem_test/tmp/.keep
177
+ - friendly_slug_gem_test/vendor/.keep
78
178
  - lib/friendly_slug.rb
79
179
  - lib/friendly_slug/active_record/base.rb
80
180
  - lib/friendly_slug/version.rb