slugged 1.1.0 → 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 826ed7e245a1ed41d94a1c222fcf413011e27902
4
+ data.tar.gz: 6af346bdc4f70b054a8867ff21cc21e176a14dea
5
+ SHA512:
6
+ metadata.gz: ee0bf448157c8c41a266692ca9a38c4f42d6f38f371fbf29b400ece5c7f1c4be0938c3c4cb9aac1d9ec50d2345b6f674a93da01bb4f7f94c5d50141e1c999c36
7
+ data.tar.gz: 6abeb15565c5b05c2ba6905e1bf13125ef8dda6ee735ba7d7d9c6d0b4f293e30edbbf26b77c1e4acc75a1eb18816c848ddb6bea4b2eab9ed3b3f83ee3d1bc35b
@@ -1,14 +1,11 @@
1
1
  ---
2
2
  language: ruby
3
3
  rvm:
4
- - 1.8.7
5
- - 1.9.2
6
4
  - 1.9.3
7
- # - jruby-18mode
8
- # - jruby-19mode
9
- - ree
5
+ - 2.0.0
10
6
  env:
11
7
  - RAILS_VERSION=""
8
+ - RAILS_VERSION="~>4.0.0"
12
9
  - RAILS_VERSION="~>3.2.0"
13
10
  - RAILS_VERSION="~>3.1.0"
14
11
  - RAILS_VERSION="~>3.0.0"
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :gemcutter
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Allow testing multiple versions with Travis.
4
4
  rails_version = ENV['RAILS_VERSION']
@@ -9,4 +9,4 @@ if rails_version && rails_version.length > 0
9
9
  gem 'activerecord', rails_version
10
10
  end
11
11
 
12
- gemspec
12
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Slugged [![Build Status](https://secure.travis-ci.org/sutto/slugged.png?branch=master)](http://travis-ci.org/sutto/slugged)
1
+ # Slugged [![Build Status](https://secure.travis-ci.org/Sutto/slugged.png?branch=master)](http://travis-ci.org/Sutto/slugged)
2
2
 
3
3
  ## About ###
4
4
 
@@ -30,7 +30,7 @@ and built to work on Rails 3 from the start.
30
30
 
31
31
  Using Slugged is simple. In Rails, simply drop this in your Gemfile:
32
32
 
33
- gem 'slugged'
33
+ gem 'slugged', '~> 2.0'
34
34
 
35
35
  Optionally restricting the version.
36
36
 
@@ -121,6 +121,10 @@ Thanks to the following who contributed functionality / bug fixes:
121
121
  * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
122
122
  * Send me a pull request. Bonus points for topic branches.
123
123
 
124
+ ## Changes
125
+
126
+ * __2.0.0__ - Support Rails 4.
127
+
124
128
  ## Copyright
125
129
 
126
130
  Copyright (c) 2010 Darcy Laycock. See LICENSE for details.
@@ -85,7 +85,7 @@ module Slugged
85
85
  end
86
86
 
87
87
  def slug_scope_relation(record)
88
- has_slug_scope? ? where(slug_scope => record.send(slug_scope)) : scoped
88
+ has_slug_scope? ? where(slug_scope => record.send(slug_scope)) : where(nil)
89
89
  end
90
90
 
91
91
  def slug_value_for(value)
@@ -125,4 +125,4 @@ module Slugged
125
125
  end
126
126
  end
127
127
  end
128
- end
128
+ end
@@ -37,10 +37,10 @@ module Slugged
37
37
  module ClassMethods
38
38
 
39
39
  # Wraps find_using_slug to look in the cache.
40
- def find_using_slug(slug, options = {})
40
+ def find_using_slug(slug)
41
41
  # First, attempt to load an id and then record from the cache.
42
42
  if (cached_id = lookup_cached_id_from_slug(slug)).present?
43
- return find(cached_id, options).tap { |r| r.found_via_slug = slug }
43
+ return find(cached_id).tap { |r| r.found_via_slug = slug }
44
44
  end
45
45
  # Otherwise, fallback to the normal approach.
46
46
  super.tap do |record|
@@ -1,19 +1,19 @@
1
1
  module Slugged
2
2
  module Finders
3
3
 
4
- def find_using_slug(slug, options = {})
4
+ def find_using_slug(slug)
5
5
  slug = slug.to_s
6
6
  value = nil
7
- value ||= find_by_id(slug.to_i, options) if slug =~ /\A\d+\Z/
8
- value ||= with_cached_slug(slug).first(options)
9
- value ||= find_using_slug_history(slug, options) if use_slug_history
7
+ value ||= find_by_id(slug.to_i) if slug =~ /\A\d+\Z/
8
+ value ||= with_cached_slug(slug).first
9
+ value ||= find_using_slug_history(slug) if use_slug_history
10
10
  value.found_via_slug = slug if value.present?
11
11
  value
12
12
  end
13
13
 
14
- def find_using_slug!(slug, options = {})
15
- find_using_slug(slug, options) or raise ActiveRecord::RecordNotFound
14
+ def find_using_slug!(slug)
15
+ find_using_slug(slug) or raise ActiveRecord::RecordNotFound
16
16
  end
17
17
 
18
18
  end
19
- end
19
+ end
@@ -6,8 +6,8 @@ module Slugged
6
6
  end
7
7
 
8
8
  def other_than(record)
9
- record.new_record? ? scoped : where("#{quoted_table_name}.#{connection.quote_column_name(:id)} != ?", record.id)
9
+ record.new_record? ? where(nil) : where("#{quoted_table_name}.#{connection.quote_column_name(:id)} != ?", record.id)
10
10
  end
11
11
 
12
12
  end
13
- end
13
+ end
@@ -4,8 +4,8 @@ module Slugged
4
4
 
5
5
  validates_presence_of :record_id, :slug, :scope
6
6
 
7
- scope :ordered, order('created_at DESC')
8
- scope :only_slug, select(:slug)
7
+ scope :ordered, lambda { order('created_at DESC') }
8
+ scope :only_slug, lambda { select(:slug) }
9
9
  scope :for_record, lambda { |r| where(:record_id => r.id, :scope => Slugged.key_for_scope(r)) }
10
10
  scope :for_slug, lambda { |scope, slug| where(:scope=> scope.to_s, :slug => slug.to_s)}
11
11
 
@@ -48,4 +48,4 @@ module Slugged
48
48
  end
49
49
 
50
50
  end
51
- end
51
+ end
@@ -26,12 +26,12 @@ module Slugged
26
26
 
27
27
  module ClassMethods
28
28
 
29
- def find_using_slug_history(slug, options = {})
29
+ def find_using_slug_history(slug)
30
30
  id = Slugged.last_known_slug_id(self, slug)
31
- id.present? ? find_by_id(id, options) : nil
31
+ id.present? ? find_by_id(id) : nil
32
32
  end
33
33
 
34
34
  end
35
35
 
36
36
  end
37
- end
37
+ end
@@ -1,7 +1,7 @@
1
1
  module Slugged
2
2
  module Version
3
- MAJOR = 1
4
- MINOR = 1
3
+ MAJOR = 2
4
+ MINOR = 0
5
5
  PATCH = 0
6
6
  STRING = [MAJOR, MINOR, PATCH].join(".")
7
7
  end
@@ -19,13 +19,13 @@ Gem::Specification.new do |s|
19
19
  s.rdoc_options = ["--charset=UTF-8"]
20
20
  s.summary = %q{Super simple slugs for ActiveRecord 3.0 and higher, with support for slug history}
21
21
 
22
- s.add_runtime_dependency "activerecord", "~> 3.0"
23
- s.add_runtime_dependency "activesupport", "~> 3.0"
22
+ s.add_runtime_dependency "activerecord", ">= 3.0"
23
+ s.add_runtime_dependency "activesupport", ">= 3.0"
24
24
  s.add_runtime_dependency "uuid"
25
25
 
26
26
  s.add_development_dependency "shoulda"
27
27
  s.add_development_dependency "reversible_data"
28
- s.add_development_dependency "sqlite3-ruby"
28
+ s.add_development_dependency "sqlite3"
29
29
  s.add_development_dependency "redgreen"
30
30
  s.add_development_dependency "rake"
31
31
  s.add_development_dependency "rdoc"
@@ -1,4 +1,5 @@
1
- $KCODE = 'UTF8'
1
+ # encoding: utf-8
2
+ $KCODE = 'UTF8' if RUBY_VERSION < '1.9'
2
3
 
3
4
  require 'rubygems'
4
5
  require 'bundler'
@@ -27,13 +28,13 @@ class Test::Unit::TestCase
27
28
  User.is_sluggable field, options
28
29
  end
29
30
 
30
- def assert_same_as_slug(user, slug, options = {})
31
- found_user = User.find_using_slug(slug, options)
31
+ def assert_same_as_slug(user, slug)
32
+ found_user = User.find_using_slug(slug)
32
33
  assert_equal user, found_user, "#{slug.inspect} should return #{user.inspect}, got #{found_user.inspect}"
33
34
  end
34
35
 
35
- def assert_different_to_slug(user, slug, options = {})
36
- found_user = User.find_using_slug(slug, options)
36
+ def assert_different_to_slug(user, slug)
37
+ found_user = User.find_using_slug(slug)
37
38
  assert_not_equal user, found_user, "#{slug.inspect} should not return #{user.inspect}, got same record."
38
39
  end
39
40
 
metadata CHANGED
@@ -1,160 +1,150 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: slugged
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 0
10
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Darcy Laycock
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2011-01-01 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2011-01-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: activerecord
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 7
29
- segments:
30
- - 3
31
- - 0
32
- version: "3.0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
33
20
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: activesupport
37
21
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 7
44
- segments:
45
- - 3
46
- - 0
47
- version: "3.0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
48
34
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: uuid
52
35
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: uuid
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
62
48
  type: :runtime
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: shoulda
66
49
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: shoulda
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
76
62
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: reversible_data
80
63
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: reversible_data
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
90
76
  type: :development
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: sqlite3-ruby
94
77
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
104
90
  type: :development
105
- version_requirements: *id006
106
- - !ruby/object:Gem::Dependency
107
- name: redgreen
108
91
  prerelease: false
109
- requirement: &id007 !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: redgreen
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
118
104
  type: :development
119
- version_requirements: *id007
120
- - !ruby/object:Gem::Dependency
121
- name: rake
122
105
  prerelease: false
123
- requirement: &id008 !ruby/object:Gem::Requirement
124
- none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
132
118
  type: :development
133
- version_requirements: *id008
134
- - !ruby/object:Gem::Dependency
135
- name: rdoc
136
119
  prerelease: false
137
- requirement: &id009 !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- hash: 3
143
- segments:
144
- - 0
145
- version: "0"
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rdoc
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
146
132
  type: :development
147
- version_requirements: *id009
148
- description: Super simple slugs for ActiveRecord 3.0 and higher, with support for slug history
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: Super simple slugs for ActiveRecord 3.0 and higher, with support for
140
+ slug history
149
141
  email: sutto@sutto.net
150
142
  executables: []
151
-
152
143
  extensions: []
153
-
154
- extra_rdoc_files:
144
+ extra_rdoc_files:
155
145
  - LICENSE
156
146
  - README.md
157
- files:
147
+ files:
158
148
  - .document
159
149
  - .gitignore
160
150
  - .rvmrc
@@ -188,38 +178,30 @@ files:
188
178
  - test/slugged_test.rb
189
179
  homepage: http://github.com/Sutto/slugged
190
180
  licenses: []
191
-
181
+ metadata: {}
192
182
  post_install_message:
193
- rdoc_options:
183
+ rdoc_options:
194
184
  - --charset=UTF-8
195
- require_paths:
185
+ require_paths:
196
186
  - lib
197
- required_ruby_version: !ruby/object:Gem::Requirement
198
- none: false
199
- requirements:
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- hash: 3
203
- segments:
204
- - 0
205
- version: "0"
206
- required_rubygems_version: !ruby/object:Gem::Requirement
207
- none: false
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- hash: 3
212
- segments:
213
- - 0
214
- version: "0"
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - '>='
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
215
197
  requirements: []
216
-
217
198
  rubyforge_project:
218
- rubygems_version: 1.8.21
199
+ rubygems_version: 2.0.3
219
200
  signing_key:
220
- specification_version: 3
221
- summary: Super simple slugs for ActiveRecord 3.0 and higher, with support for slug history
222
- test_files:
201
+ specification_version: 4
202
+ summary: Super simple slugs for ActiveRecord 3.0 and higher, with support for slug
203
+ history
204
+ test_files:
223
205
  - test/caching_test.rb
224
206
  - test/editable_test.rb
225
207
  - test/helper.rb