mongoid_slug 0.8.2 → 0.8.3

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.
data/README.md CHANGED
@@ -2,9 +2,10 @@ Mongoid Slug
2
2
  ============
3
3
 
4
4
  Mongoid Slug generates a URL slug or permalink based on one or more
5
- fields in a Mongoid model. It sits idly on top of [stringex](https://github.com/rsl/stringex) and works with non-Latin characters.
5
+ fields in a Mongoid model. It sits idly on top of [stringex] [1] and
6
+ works with non-Latin characters.
6
7
 
7
- [![travis](https://secure.travis-ci.org/papercavalier/mongoid-slug.png)](http://travis-ci.org/papercavalier/mongoid-slug)
8
+ [![travis](https://secure.travis-ci.org/hakanensari/mongoid-slug.png)](http://travis-ci.org/hakanensari/mongoid-slug)
8
9
 
9
10
  Quick Start
10
11
  -----------
@@ -49,7 +50,7 @@ author = Book.find_by_slug(params[:book_id]).
49
50
  find_by_name(params[:id])
50
51
  ```
51
52
 
52
- [Read here](https://github.com/papercavalier/mongoid-slug/blob/master/lib/mongoid/slug.rb)
53
+ [Read here] [2]
53
54
  for all available options.
54
55
 
55
56
  Scoping
@@ -79,3 +80,6 @@ Currently, if you have an irregular association name, you **must**
79
80
  specify the `:inverse_of` option on the other side of the assocation.
80
81
 
81
82
  Embedded objects are automatically scoped by their parent.
83
+
84
+ [1]: https://github.com/rsl/stringex/
85
+ [2]: https://github.com/papercavalier/mongoid-slug/blob/master/lib/mongoid/slug.rb
data/lib/mongoid/slug.rb CHANGED
@@ -98,7 +98,7 @@ module Mongoid #:nodoc:
98
98
 
99
99
  def self.find_by_#{slug_name}!(slug)
100
100
  where(slug_name => slug).first ||
101
- raise(Mongoid::Errors::DocumentNotFound.new(self.class, slug))
101
+ raise(Mongoid::Errors::DocumentNotFound.new(self, slug))
102
102
  end
103
103
  CODE
104
104
  end
@@ -118,18 +118,18 @@ module Mongoid #:nodoc:
118
118
  def find_unique_slug
119
119
  # TODO: An epic method which calls for refactoring.
120
120
  slug = slug_builder.call(self).to_url
121
-
121
+
122
122
  # Regular expression that matches slug, slug-1, slug-2, ... slug-n
123
123
  # If slug_name field was indexed, MongoDB will utilize that index to
124
124
  # match /^.../ pattern
125
125
  pattern = /^#{Regexp.escape(slug)}(?:-(\d+))?$/
126
-
126
+
127
127
  existing_slugs =
128
128
  uniqueness_scope.
129
129
  only(slug_name).
130
130
  where(slug_name => pattern, :_id.ne => _id).
131
- map {|obj| obj.try(:read_attribute, slug_name)}
132
-
131
+ map { |obj| obj.try(:read_attribute, slug_name) }
132
+
133
133
  if existing_slugs.count > 0
134
134
  # sort the existing_slugs in increasing order by comparing the suffix
135
135
  # numbers:
@@ -142,7 +142,7 @@ module Mongoid #:nodoc:
142
142
  # Use max_counter + 1 as unique counter
143
143
  slug += "-#{max_counter + 1}"
144
144
  end
145
-
145
+
146
146
  slug
147
147
  end
148
148
 
@@ -1,5 +1,5 @@
1
1
  module Mongoid #:nodoc:
2
2
  module Slug
3
- VERSION = '0.8.2'
3
+ VERSION = '0.8.3'
4
4
  end
5
5
  end
data/spec/models/book.rb CHANGED
@@ -6,3 +6,6 @@ class Book
6
6
  embeds_many :subjects
7
7
  references_many :authors
8
8
  end
9
+
10
+ class ComicBook < Book
11
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require "rubygems"
2
2
  require "bundler/setup"
3
3
 
4
- require "database_cleaner"
5
4
  require "rspec"
6
5
 
7
6
  require File.expand_path("../../lib/mongoid/slug", __FILE__)
@@ -14,6 +13,7 @@ end
14
13
  Dir["#{File.dirname(__FILE__)}/models/*.rb"].each { |f| require f }
15
14
 
16
15
  RSpec.configure do |c|
17
- c.before(:all) { DatabaseCleaner.strategy = :truncation }
18
- c.before(:each) { DatabaseCleaner.clean }
16
+ c.before(:each) do
17
+ Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:remove)
18
+ end
19
19
  end
metadata CHANGED
@@ -1,102 +1,68 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mongoid_slug
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 8
8
- - 2
9
- version: 0.8.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.3
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Paper Cavalier
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-07-20 00:00:00 +01:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: mongoid
22
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70160200453060 !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
18
+ requirements:
25
19
  - - ~>
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 2
29
- - 0
30
- version: "2.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
31
22
  type: :runtime
32
23
  prerelease: false
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70160200453060
25
+ - !ruby/object:Gem::Dependency
35
26
  name: stringex
36
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70160200452160 !ruby/object:Gem::Requirement
37
28
  none: false
38
- requirements:
29
+ requirements:
39
30
  - - ~>
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 1
43
- - 2
44
- version: "1.2"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
45
33
  type: :runtime
46
34
  prerelease: false
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: database_cleaner
50
- requirement: &id003 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - ~>
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- - 6
58
- version: "0.6"
59
- type: :development
60
- prerelease: false
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70160200452160
36
+ - !ruby/object:Gem::Dependency
63
37
  name: rake
64
- requirement: &id004 !ruby/object:Gem::Requirement
38
+ requirement: &70160200451400 !ruby/object:Gem::Requirement
65
39
  none: false
66
- requirements:
40
+ requirements:
67
41
  - - ~>
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- - 9
72
- version: "0.9"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.9'
73
44
  type: :development
74
45
  prerelease: false
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70160200451400
47
+ - !ruby/object:Gem::Dependency
77
48
  name: rspec
78
- requirement: &id005 !ruby/object:Gem::Requirement
49
+ requirement: &70160200450620 !ruby/object:Gem::Requirement
79
50
  none: false
80
- requirements:
51
+ requirements:
81
52
  - - ~>
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 2
85
- - 6
86
- version: "2.6"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.6'
87
55
  type: :development
88
56
  prerelease: false
89
- version_requirements: *id005
90
- description: Mongoid Slug generates a URL slug or permalink based on one or more fields in a Mongoid model.
91
- email:
57
+ version_requirements: *70160200450620
58
+ description: Mongoid Slug generates a URL slug or permalink based on one or more fields
59
+ in a Mongoid model.
60
+ email:
92
61
  - code@papercavalier.com
93
62
  executables: []
94
-
95
63
  extensions: []
96
-
97
64
  extra_rdoc_files: []
98
-
99
- files:
65
+ files:
100
66
  - lib/mongoid/slug/version.rb
101
67
  - lib/mongoid/slug.rb
102
68
  - lib/mongoid_slug.rb
@@ -106,7 +72,6 @@ files:
106
72
  - spec/models/author.rb
107
73
  - spec/models/book.rb
108
74
  - spec/models/caption.rb
109
- - spec/models/comic_book.rb
110
75
  - spec/models/page.rb
111
76
  - spec/models/partner.rb
112
77
  - spec/models/person.rb
@@ -114,46 +79,41 @@ files:
114
79
  - spec/models/subject.rb
115
80
  - spec/mongoid/slug_spec.rb
116
81
  - spec/spec_helper.rb
117
- has_rdoc: true
118
82
  homepage: http://github.com/papercavalier/mongoid-slug
119
83
  licenses: []
120
-
121
84
  post_install_message:
122
85
  rdoc_options: []
123
-
124
- require_paths:
86
+ require_paths:
125
87
  - lib
126
- required_ruby_version: !ruby/object:Gem::Requirement
88
+ required_ruby_version: !ruby/object:Gem::Requirement
127
89
  none: false
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: -1577337874357746648
132
- segments:
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ segments:
133
95
  - 0
134
- version: "0"
135
- required_rubygems_version: !ruby/object:Gem::Requirement
96
+ hash: -3230490500102343809
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
98
  none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- hash: -1577337874357746648
141
- segments:
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ segments:
142
104
  - 0
143
- version: "0"
105
+ hash: -3230490500102343809
144
106
  requirements: []
145
-
146
107
  rubyforge_project: mongoid_slug
147
- rubygems_version: 1.3.7
108
+ rubygems_version: 1.8.6
148
109
  signing_key:
149
110
  specification_version: 3
150
111
  summary: Generates a URL slug
151
- test_files:
112
+ test_files:
152
113
  - spec/models/article.rb
153
114
  - spec/models/author.rb
154
115
  - spec/models/book.rb
155
116
  - spec/models/caption.rb
156
- - spec/models/comic_book.rb
157
117
  - spec/models/page.rb
158
118
  - spec/models/partner.rb
159
119
  - spec/models/person.rb
@@ -1,2 +0,0 @@
1
- class ComicBook < Book
2
- end