mongoid_slug 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
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