slugalicious 1.2.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -3,9 +3,17 @@ h1. Slugalicious -- Easy and powerful URL slugging for Rails 3
3
3
  _*(no monkey-patching required)*_
4
4
 
5
5
  | *Author* | Tim Morgan |
6
- | *Version* | 1.2.1 (Mar 2, 2012) |
6
+ | *Version* | 2.0 (Jun 5, 2012) |
7
7
  | *License* | Released under the MIT license. |
8
8
 
9
+ h3. Note about version 2.0
10
+
11
+ Version 2.0 is so-versioned because it breaks the API for previous versions.
12
+ Previously, where you would have used
13
+ {Slugalicious::ClassMethods#find_from_slug find_from_slug}, you would now use
14
+ {Slugalicious::ClassMethods#find_from_slug! find_from_slug!}. The old method now
15
+ returns @nil@ when an object is not found, rather than raising an exception.
16
+
9
17
  h2. About
10
18
 
11
19
  Slugalicious is an easy-to-use slugging library that helps you generate pretty
data/lib/slugalicious.rb CHANGED
@@ -26,18 +26,28 @@ module Slugalicious
26
26
 
27
27
  module ClassMethods
28
28
 
29
+ # Identical to {#find_from_slug}, but raises an exception if the object is
30
+ # not found.
31
+ #
32
+ # @raise [ActiveRecord::RecordNotFound] If no object with that slug is
33
+ # found.
34
+ # @see #find_from_slug
35
+
36
+ def find_from_slug!(*args)
37
+ find_from_slug(*args) || raise(ActiveRecord::RecordNotFound)
38
+ end
39
+
29
40
  # Locates a record matching a given slug.
30
41
  #
31
42
  # @param [String] slug The slug to locate.
32
43
  # @param [String] scope The scope to search in (for use with scoped-unique
33
44
  # slugs). This should be a string equal to the portion of the URL path
34
45
  # preceding the slug.
35
- # @return [ActiveRecord::Base] The object with that slug.
36
- # @raise [ActiveRecord::RecordNotFound] If no object with that slug is
37
- # found.
46
+ # @return [ActiveRecord::Base, nil] The object with that slug, or `nil` if
47
+ # not found.
38
48
 
39
49
  def find_from_slug(slug, scope=nil)
40
- Slug.from_slug(self, scope, slug).first.try(:sluggable) || raise(ActiveRecord::RecordNotFound)
50
+ Slug.from_slug(self, scope, slug).first.try(:sluggable)
41
51
  end
42
52
 
43
53
  # Locates a record from a given path, that consists of a slug and its scope,
data/slugalicious.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "slugalicious"
8
- s.version = "1.2.1"
8
+ s.version = "2.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tim Morgan"]
12
- s.date = "2012-03-02"
12
+ s.date = "2012-06-06"
13
13
  s.description = "Slugalicious adds simple and powerful slugging to your ActiveRecord models."
14
14
  s.email = "git@timothymorgan.info"
15
15
  s.extra_rdoc_files = [
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.homepage = "http://github.com/riscfuture/slugalicious"
29
29
  s.require_paths = ["lib"]
30
30
  s.required_ruby_version = Gem::Requirement.new(">= 1.9")
31
- s.rubygems_version = "1.8.17"
31
+ s.rubygems_version = "1.8.24"
32
32
  s.summary = "Easy-to-use and powerful slugging for Rails 3"
33
33
 
34
34
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slugalicious
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-02 00:00:00.000000000 Z
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70280246265900 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70280246265900
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: stringex
27
- requirement: &70280246265420 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70280246265420
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: jeweler
38
- requirement: &70280246264940 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70280246264940
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: yard
49
- requirement: &70280246264460 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70280246264460
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: RedCloth
60
- requirement: &70280246263980 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70280246263980
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: sqlite3
71
- requirement: &70280246263500 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70280246263500
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: rspec
82
- requirement: &70280246263020 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,7 +117,12 @@ dependencies:
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *70280246263020
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  description: Slugalicious adds simple and powerful slugging to your ActiveRecord models.
92
127
  email: git@timothymorgan.info
93
128
  executables: []
@@ -123,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
158
  version: '0'
124
159
  requirements: []
125
160
  rubyforge_project:
126
- rubygems_version: 1.8.17
161
+ rubygems_version: 1.8.24
127
162
  signing_key:
128
163
  specification_version: 3
129
164
  summary: Easy-to-use and powerful slugging for Rails 3