rails_slugs 1.0.7

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 (53) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +38 -0
  3. data/Rakefile +38 -0
  4. data/lib/rails_slugs/active_record/base.rb +143 -0
  5. data/lib/rails_slugs/active_record/relation.rb +17 -0
  6. data/lib/rails_slugs/railtie.rb +10 -0
  7. data/lib/rails_slugs/version.rb +5 -0
  8. data/lib/rails_slugs.rb +7 -0
  9. data/test/dummy/README.rdoc +261 -0
  10. data/test/dummy/Rakefile +7 -0
  11. data/test/dummy/app/assets/javascripts/application.js +15 -0
  12. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  13. data/test/dummy/app/controllers/application_controller.rb +3 -0
  14. data/test/dummy/app/helpers/application_helper.rb +2 -0
  15. data/test/dummy/app/models/simple.rb +7 -0
  16. data/test/dummy/app/models/translatable.rb +8 -0
  17. data/test/dummy/app/models/translatable_translation.rb +13 -0
  18. data/test/dummy/app/models/without.rb +5 -0
  19. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  20. data/test/dummy/config/application.rb +59 -0
  21. data/test/dummy/config/boot.rb +10 -0
  22. data/test/dummy/config/database.yml +25 -0
  23. data/test/dummy/config/environment.rb +5 -0
  24. data/test/dummy/config/environments/development.rb +37 -0
  25. data/test/dummy/config/environments/production.rb +67 -0
  26. data/test/dummy/config/environments/test.rb +37 -0
  27. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  28. data/test/dummy/config/initializers/inflections.rb +15 -0
  29. data/test/dummy/config/initializers/mime_types.rb +5 -0
  30. data/test/dummy/config/initializers/secret_token.rb +7 -0
  31. data/test/dummy/config/initializers/session_store.rb +8 -0
  32. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  33. data/test/dummy/config/locales/en.yml +5 -0
  34. data/test/dummy/config/routes.rb +58 -0
  35. data/test/dummy/config.ru +4 -0
  36. data/test/dummy/db/development.sqlite3 +0 -0
  37. data/test/dummy/db/migrate/20120923194640_create_translatables.rb +9 -0
  38. data/test/dummy/db/migrate/20120923195534_create_translatables_i18n.rb +13 -0
  39. data/test/dummy/db/migrate/20120924010158_create_simples.rb +11 -0
  40. data/test/dummy/db/migrate/20130128234241_create_withouts.rb +9 -0
  41. data/test/dummy/db/schema.rb +38 -0
  42. data/test/dummy/db/test.sqlite3 +0 -0
  43. data/test/dummy/log/development.log +776 -0
  44. data/test/dummy/log/test.log +7768 -0
  45. data/test/dummy/public/404.html +26 -0
  46. data/test/dummy/public/422.html +26 -0
  47. data/test/dummy/public/500.html +25 -0
  48. data/test/dummy/public/favicon.ico +0 -0
  49. data/test/dummy/script/rails +6 -0
  50. data/test/rails_slugs_test.rb +9 -0
  51. data/test/records_test.rb +76 -0
  52. data/test/test_helper.rb +21 -0
  53. metadata +173 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class RailsSlugsTest < ActiveSupport::TestCase
4
+
5
+ test 'truth' do
6
+ assert_kind_of Module, RailsSlugs
7
+ end
8
+
9
+ end
@@ -0,0 +1,76 @@
1
+ require 'test_helper'
2
+
3
+ class RecordsTest < ActiveSupport::TestCase
4
+
5
+ setup :create_records
6
+
7
+ test 'should not break without models' do
8
+ assert_equal 'name', @without.name
9
+ assert_equal @without, Without.find('1')
10
+ assert_equal @without, Without.find(1)
11
+ end
12
+
13
+ test 'shoud create slug' do
14
+ assert_equal 'name', @simple.slug
15
+ assert_equal @simple, Simple.find('name')
16
+ assert_equal 'translatable-name', @translatable.slug
17
+ assert_equal @translatable, Translatable.find('translatable-name')
18
+ end
19
+
20
+ test 'should edit slug' do
21
+ @simple.update_attributes :name => 'new name'
22
+ assert_equal 'new-name', @simple.slug
23
+ assert_equal @simple, Simple.find('new-name')
24
+ @translatable.update_attributes :name => 'new translatable name'
25
+ assert_equal 'new-translatable-name', @translatable.slug
26
+ assert_equal @translatable, Translatable.find('new-translatable-name')
27
+ end
28
+
29
+ test 'should not alter direct assigned slug' do
30
+ @simple.update_attributes :slug => 'direct slug'
31
+ assert_equal 'direct slug', @simple.slug
32
+ assert_equal @simple, Simple.find('direct slug')
33
+ @translatable.update_attributes :slug => 'translatable direct slug'
34
+ assert_equal 'translatable direct slug', @translatable.slug
35
+ assert_equal @translatable, Translatable.find('translatable direct slug')
36
+ end
37
+
38
+ test 'should assign index for same slugs' do
39
+ first = Simple.create(:name => 'same', :age => 34)
40
+ assert_equal 'same', first.slug
41
+ second = Simple.create(:name => 'same', :age => 45)
42
+ assert_equal 'same-1', second.slug
43
+ third = Simple.create(:name => 'same', :age => 234)
44
+ assert_equal 'same-2', third.slug
45
+
46
+ first.update_attributes :name => 'other'
47
+ assert_equal 'other', first.slug
48
+ second.update_attributes :name => 'other'
49
+ assert_equal 'other-1', second.slug
50
+ third.update_attributes :name => 'other'
51
+ assert_equal 'other-2', third.slug
52
+
53
+ first = Translatable.create(:name => 'same', :age => 34)
54
+ assert_equal 'same', first.slug
55
+ second = Translatable.create(:name => 'same', :age => 45)
56
+ assert_equal 'same-1', second.slug
57
+ third = Translatable.create(:name => 'same', :age => 234)
58
+ assert_equal 'same-2', third.slug
59
+
60
+ first.update_attributes :name => 'other'
61
+ assert_equal 'other', first.slug
62
+ second.update_attributes :name => 'other'
63
+ assert_equal 'other-1', second.slug
64
+ third.update_attributes :name => 'other'
65
+ assert_equal 'other-2', third.slug
66
+ end
67
+
68
+ protected
69
+
70
+ def create_records
71
+ @without = Without.create(:name => 'name')
72
+ @simple = Simple.create(:name => 'name', :age => 14)
73
+ @translatable = Translatable.create(:name => 'translatable name', :age => 20)
74
+ end
75
+
76
+ end
@@ -0,0 +1,21 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+ require 'rails/test_help'
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ 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 ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_slugs
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.7
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mattways
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.8
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.8
30
+ - !ruby/object:Gem::Dependency
31
+ name: sqlite3
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Inspired in friendly_id but more minimalistic.
47
+ email:
48
+ - contact@mattways.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/rails_slugs/active_record/base.rb
54
+ - lib/rails_slugs/active_record/relation.rb
55
+ - lib/rails_slugs/railtie.rb
56
+ - lib/rails_slugs/version.rb
57
+ - lib/rails_slugs.rb
58
+ - MIT-LICENSE
59
+ - Rakefile
60
+ - README.rdoc
61
+ - test/dummy/app/assets/javascripts/application.js
62
+ - test/dummy/app/assets/stylesheets/application.css
63
+ - test/dummy/app/controllers/application_controller.rb
64
+ - test/dummy/app/helpers/application_helper.rb
65
+ - test/dummy/app/models/simple.rb
66
+ - test/dummy/app/models/translatable.rb
67
+ - test/dummy/app/models/translatable_translation.rb
68
+ - test/dummy/app/models/without.rb
69
+ - test/dummy/app/views/layouts/application.html.erb
70
+ - test/dummy/config/application.rb
71
+ - test/dummy/config/boot.rb
72
+ - test/dummy/config/database.yml
73
+ - test/dummy/config/environment.rb
74
+ - test/dummy/config/environments/development.rb
75
+ - test/dummy/config/environments/production.rb
76
+ - test/dummy/config/environments/test.rb
77
+ - test/dummy/config/initializers/backtrace_silencers.rb
78
+ - test/dummy/config/initializers/inflections.rb
79
+ - test/dummy/config/initializers/mime_types.rb
80
+ - test/dummy/config/initializers/secret_token.rb
81
+ - test/dummy/config/initializers/session_store.rb
82
+ - test/dummy/config/initializers/wrap_parameters.rb
83
+ - test/dummy/config/locales/en.yml
84
+ - test/dummy/config/routes.rb
85
+ - test/dummy/config.ru
86
+ - test/dummy/db/development.sqlite3
87
+ - test/dummy/db/migrate/20120923194640_create_translatables.rb
88
+ - test/dummy/db/migrate/20120923195534_create_translatables_i18n.rb
89
+ - test/dummy/db/migrate/20120924010158_create_simples.rb
90
+ - test/dummy/db/migrate/20130128234241_create_withouts.rb
91
+ - test/dummy/db/schema.rb
92
+ - test/dummy/db/test.sqlite3
93
+ - test/dummy/log/development.log
94
+ - test/dummy/log/test.log
95
+ - test/dummy/public/404.html
96
+ - test/dummy/public/422.html
97
+ - test/dummy/public/500.html
98
+ - test/dummy/public/favicon.ico
99
+ - test/dummy/Rakefile
100
+ - test/dummy/README.rdoc
101
+ - test/dummy/script/rails
102
+ - test/rails_slugs_test.rb
103
+ - test/records_test.rb
104
+ - test/test_helper.rb
105
+ homepage: https://github.com/mattways/rails_slugs
106
+ licenses: []
107
+ post_install_message:
108
+ rdoc_options: []
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ requirements: []
124
+ rubyforge_project:
125
+ rubygems_version: 1.8.23
126
+ signing_key:
127
+ specification_version: 3
128
+ summary: Toolkit for Rails slugs.
129
+ test_files:
130
+ - test/dummy/app/assets/javascripts/application.js
131
+ - test/dummy/app/assets/stylesheets/application.css
132
+ - test/dummy/app/controllers/application_controller.rb
133
+ - test/dummy/app/helpers/application_helper.rb
134
+ - test/dummy/app/models/simple.rb
135
+ - test/dummy/app/models/translatable.rb
136
+ - test/dummy/app/models/translatable_translation.rb
137
+ - test/dummy/app/models/without.rb
138
+ - test/dummy/app/views/layouts/application.html.erb
139
+ - test/dummy/config/application.rb
140
+ - test/dummy/config/boot.rb
141
+ - test/dummy/config/database.yml
142
+ - test/dummy/config/environment.rb
143
+ - test/dummy/config/environments/development.rb
144
+ - test/dummy/config/environments/production.rb
145
+ - test/dummy/config/environments/test.rb
146
+ - test/dummy/config/initializers/backtrace_silencers.rb
147
+ - test/dummy/config/initializers/inflections.rb
148
+ - test/dummy/config/initializers/mime_types.rb
149
+ - test/dummy/config/initializers/secret_token.rb
150
+ - test/dummy/config/initializers/session_store.rb
151
+ - test/dummy/config/initializers/wrap_parameters.rb
152
+ - test/dummy/config/locales/en.yml
153
+ - test/dummy/config/routes.rb
154
+ - test/dummy/config.ru
155
+ - test/dummy/db/development.sqlite3
156
+ - test/dummy/db/migrate/20120923194640_create_translatables.rb
157
+ - test/dummy/db/migrate/20120923195534_create_translatables_i18n.rb
158
+ - test/dummy/db/migrate/20120924010158_create_simples.rb
159
+ - test/dummy/db/migrate/20130128234241_create_withouts.rb
160
+ - test/dummy/db/schema.rb
161
+ - test/dummy/db/test.sqlite3
162
+ - test/dummy/log/development.log
163
+ - test/dummy/log/test.log
164
+ - test/dummy/public/404.html
165
+ - test/dummy/public/422.html
166
+ - test/dummy/public/500.html
167
+ - test/dummy/public/favicon.ico
168
+ - test/dummy/Rakefile
169
+ - test/dummy/README.rdoc
170
+ - test/dummy/script/rails
171
+ - test/rails_slugs_test.rb
172
+ - test/records_test.rb
173
+ - test/test_helper.rb